Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
for n, author in enumerate(self.meta['authors'], 1):
if ordinals is not None and n in ordinals:
continue
series_ordinal = wdi_core.WDString(str(n), self.PROPS['series ordinal'], is_qualifier=True)
if author in self.meta['author_orcid']:
if self.meta['author_qid'][author]:
s.append(wdi_core.WDItemID(self.meta['author_qid'][author], self.PROPS['author'],
references=[self.reference], qualifiers=[series_ordinal]))
else:
msg = "No Author found for author: {}, orcid: {}".format(author, self.meta['author_orcid'][author])
self.warnings.append(msg)
print(msg)
s.append(wdi_core.WDString(author, self.PROPS['author name string'],
references=[self.reference], qualifiers=[series_ordinal]))
elif author:
s.append(wdi_core.WDString(author, self.PROPS['author name string'],
references=[self.reference], qualifiers=[series_ordinal]))
return s
:return:
"""
s = []
for n, author in enumerate(self.meta['authors'], 1):
if ordinals is not None and n in ordinals:
continue
series_ordinal = wdi_core.WDString(str(n), self.PROPS['series ordinal'], is_qualifier=True)
if author in self.meta['author_orcid']:
if self.meta['author_qid'][author]:
s.append(wdi_core.WDItemID(self.meta['author_qid'][author], self.PROPS['author'],
references=[self.reference], qualifiers=[series_ordinal]))
else:
msg = "No Author found for author: {}, orcid: {}".format(author, self.meta['author_orcid'][author])
self.warnings.append(msg)
print(msg)
s.append(wdi_core.WDString(author, self.PROPS['author name string'],
references=[self.reference], qualifiers=[series_ordinal]))
elif author:
s.append(wdi_core.WDString(author, self.PROPS['author name string'],
references=[self.reference], qualifiers=[series_ordinal]))
return s
def set_value(self, value):
assert isinstance(value, str) or value is None, "Expected str, found {} ({})".format(type(value), value)
self.value = value
self.json_representation['datavalue'] = {
'value': self.value,
'type': 'string'
}
super(WDString, self).set_value(value=value)
def make_statements(self):
s = []
helper = self.helper
# instance of edition
s.append(wdi_core.WDItemID(helper.get_qid('Q3331189'), helper.get_pid("P31")))
# edition or translation of
s.append(wdi_core.WDItemID(self.edition_of_qid, helper.get_pid("P629")))
# edition number
s.append(wdi_core.WDString(self.edition, helper.get_pid("P393")))
if self.archive_url:
s.append(wdi_core.WDUrl(self.archive_url, helper.get_pid('P1065')))
if self.pub_date:
s.append(wdi_core.WDTime(self.pub_date, helper.get_pid('P577'), precision=self.date_precision))
self.statements = s
self.make_reference()
s = []
### Required statements
for pubtype in self.meta['pubtype_qid']:
s.append(wdi_core.WDItemID(pubtype, self.PROPS['instance of'], references=[self.reference]))
s.append(wdi_core.WDMonolingualText(self.meta['title'], self.PROPS['title'], references=[self.reference]))
s.append(wdi_core.WDTime(self.meta['date'], self.PROPS['publication date'], references=[self.reference]))
s.append(wdi_core.WDItemID(self.meta['journal_wdid'], self.PROPS['published in'], references=[self.reference]))
s.extend(self.make_author_statements(ordinals=ordinals))
### Optional statements
if self.meta['pmid']:
s.append(wdi_core.WDExternalID(self.meta['pmid'], self.PROPS['PubMed ID'], references=[self.reference]))
if self.meta['volume']:
s.append(wdi_core.WDString(self.meta['volume'], self.PROPS['volume'], references=[self.reference]))
if self.meta['pages']:
s.append(wdi_core.WDString(self.meta['pages'], self.PROPS['page(s)'], references=[self.reference]))
if self.meta['issue']:
s.append(wdi_core.WDString(self.meta['issue'], self.PROPS['issue'], references=[self.reference]))
if self.meta['doi']:
s.append(wdi_core.WDExternalID(self.meta['doi'].upper(), self.PROPS['DOI'], references=[self.reference]))
if self.meta['pmcid']:
s.append(wdi_core.WDExternalID(self.meta['pmcid'].replace("PMC", ""), self.PROPS['PMCID'],
references=[self.reference]))
self.statements = s
def make_statements(self):
self.statements.append(
wdi_core.WDItemID(self.instance_of_qid, PROPS['instance of'], references=[self.reference]))
self.statements.append(wdi_core.WDMonolingualText(self.title, PROPS['title'], references=[self.reference]))
if self.publication_date:
date = self.publication_date.strftime("+%Y-%m-%dT00:00:00Z")
self.statements.append(
wdi_core.WDTime(date, PROPS['publication date'], references=[self.reference]))
if self.published_in_qid:
self.statements.append(
wdi_core.WDItemID(self.published_in_qid, PROPS['published in'], references=[self.reference]))
if self.volume:
self.statements.append(wdi_core.WDString(self.volume, PROPS['volume'], references=[self.reference]))
if self.pages:
self.statements.append(wdi_core.WDString(self.pages, PROPS['page(s)'], references=[self.reference]))
if self.issue:
self.statements.append(wdi_core.WDString(self.issue, PROPS['issue'], references=[self.reference]))
wdi_core.WDItemID(self.instance_of_qid, PROPS['instance of'], references=[self.reference]))
self.statements.append(wdi_core.WDMonolingualText(self.title, PROPS['title'], references=[self.reference]))
if self.publication_date:
date = self.publication_date.strftime("+%Y-%m-%dT00:00:00Z")
self.statements.append(
wdi_core.WDTime(date, PROPS['publication date'], references=[self.reference]))
if self.published_in_qid:
self.statements.append(
wdi_core.WDItemID(self.published_in_qid, PROPS['published in'], references=[self.reference]))
if self.volume:
self.statements.append(wdi_core.WDString(self.volume, PROPS['volume'], references=[self.reference]))
if self.pages:
self.statements.append(wdi_core.WDString(self.pages, PROPS['page(s)'], references=[self.reference]))
if self.issue:
self.statements.append(wdi_core.WDString(self.issue, PROPS['issue'], references=[self.reference]))
for pubtype in self.meta['pubtype_qid']:
s.append(wdi_core.WDItemID(pubtype, self.PROPS['instance of'], references=[self.reference]))
s.append(wdi_core.WDMonolingualText(self.meta['title'], self.PROPS['title'], references=[self.reference]))
s.append(wdi_core.WDTime(self.meta['date'], self.PROPS['publication date'], references=[self.reference]))
s.append(wdi_core.WDItemID(self.meta['journal_wdid'], self.PROPS['published in'], references=[self.reference]))
s.extend(self.make_author_statements(ordinals=ordinals))
### Optional statements
if self.meta['pmid']:
s.append(wdi_core.WDExternalID(self.meta['pmid'], self.PROPS['PubMed ID'], references=[self.reference]))
if self.meta['volume']:
s.append(wdi_core.WDString(self.meta['volume'], self.PROPS['volume'], references=[self.reference]))
if self.meta['pages']:
s.append(wdi_core.WDString(self.meta['pages'], self.PROPS['page(s)'], references=[self.reference]))
if self.meta['issue']:
s.append(wdi_core.WDString(self.meta['issue'], self.PROPS['issue'], references=[self.reference]))
if self.meta['doi']:
s.append(wdi_core.WDExternalID(self.meta['doi'].upper(), self.PROPS['DOI'], references=[self.reference]))
if self.meta['pmcid']:
s.append(wdi_core.WDExternalID(self.meta['pmcid'].replace("PMC", ""), self.PROPS['PMCID'],
references=[self.reference]))
self.statements = s
def make_reference(self):
if not self.meta['parsed']:
self.parse_metadata()
if 'pmcid' in self.meta and self.meta['pmcid']:
extid = wdi_core.WDString(value=self.meta['pmcid'], prop_nr=self.PROPS['PMCID'], is_reference=True)
ref_url = wdi_core.WDUrl("http://europepmc.org/abstract/{}/{}".format("PMC", self.meta['pmcid']),
self.PROPS['reference URL'], is_reference=True)
elif 'pmid' in self.meta and self.meta['pmid']:
extid = wdi_core.WDString(value=self.meta['pmid'], prop_nr=self.PROPS['PubMed ID'], is_reference=True)
ref_url = wdi_core.WDUrl("http://europepmc.org/abstract/{}/{}".format("MED", self.meta['pmid']),
self.PROPS['reference URL'], is_reference=True)
elif 'doi' in self.meta and self.meta['doi']:
extid = wdi_core.WDString(value=self.meta['doi'], prop_nr=self.PROPS['DOI'], is_reference=True)
ref_url = None
else:
raise ValueError("ref needs a pmcid, pmid, or doi")
stated_in = wdi_core.WDItemID(value='Q5412157', prop_nr='P248', is_reference=True)
retrieved = wdi_core.WDTime(strftime("+%Y-%m-%dT00:00:00Z", gmtime()), prop_nr='P813', is_reference=True)
self.reference = [stated_in, extid, retrieved]
if ref_url:
self.reference.append(ref_url)
def make_author_statements(self):
# this function exists separately because if the item already exists, we don't want to touch the authors
s = []
for n, author in enumerate(self.authors, 1):
series_ordinal = wdi_core.WDString(str(n), PROPS['series ordinal'], is_qualifier=True)
if author.get("qid"):
s.append(wdi_core.WDItemID(author['qid'], PROPS['author'],
references=[self.reference], qualifiers=[series_ordinal]))
elif author['full_name']:
s.append(wdi_core.WDString(author['full_name'], PROPS['author name string'],
references=[self.reference], qualifiers=[series_ordinal]))
self.statements.extend(s)