matej_suchanek closed this task as "Invalid".
matej_suchanek added a comment.

The problem is you are still working with the same pywikibot.Claim instance (source_claim). The resulting source_claims is just a list of the same object. You should create a new object for each source like:

p_stated_in = 'P248'
article_qid = ['Q45846010', 'Q45851113']
source_map = {p_stated_in: ['item',   article_qid]}
create_source_claim(new_claim, source_map)

def create_source_claim(claim, source_map):
    source_claims = []
    for src_prop in source_map.keys():
        target_type, source_values = source_map[src_prop]
        print('target: {0} , source: {1}, prop: {2}').format(target_type, source_value,src_prop)

        if target_type == 'item':
            for qid in source_values:
                source_claim = pywikibot.Claim(repo, src_prop, isReference=True)
                source_page = pywikibot.ItemPage(repo, qid)
                source_claim.setTarget(source_page)
                source_claims.append(source_claim)
        else:
            source_claim = pywikibot.Claim(repo, src_prop, isReference=True)
            source_claim.setTarget(source_value)
            source_claims.append(source_claim)
    claim.addSources(source_claims, bot=True)
    return True

TASK DETAIL
https://phabricator.wikimedia.org/T183492

EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: matej_suchanek
Cc: matej_suchanek, Tobias1984, Aklapper, Pamputt, pywikibot-bugs-list, Magul, Tbscho, rafidaslam, MayS, Mdupont, JJMC89, Avicennasis, jayvdb, Ricordisamoa, Dalba, Masti, Alchimista, Rxy
_______________________________________________
pywikibot-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-bugs

Reply via email to