def lookupLabels(changes):
pids = set(s.pid for s in changes)
qids = set(s.qid for s in changes)
values = set(s.value for s in changes if s.value and PROP_TYPE.get(s.pid) == "WikibaseItem")
ref_qids = set(chain(*[
[s['value'] for s in change.ref_list if s['value'] and PROP_TYPE.get(s['prop']) == "WikibaseItem"]
for change in changes]))
ref_pids = set(chain(*[[s['prop'] for s in change.ref_list] for change in changes]))
labels = dict()
x = pids | qids | values | ref_qids | ref_pids
x = set(y for y in x if y)
for chunk in tqdm(chunks(x, 500), total=len(x) / 500):
l = getConceptLabels(tuple(chunk))
labels.update(l)
for c in changes:
if c.pid and c.pid in labels:
c.pid_label = labels[c.pid]
if c.qid and c.qid in labels:
c.qid_label = labels[c.qid]
if c.value and c.value in labels:
c.value_label = labels[c.value]
for ref in c.ref_list:
ref['value_label'] = labels.get(ref['value'], '')
ref['prop_label'] = labels.get(ref['prop'], '')
评论列表
文章目录