| 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
EMAIL PREFERENCES
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
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
