backend.orcid module

class backend.orcid.ORCIDDataPaper(orcid_id)[source]

Bases: object

as_dict()[source]
classmethod from_orcid_metadata(ref_name, orcid_id, pub, stop_if_dois_exists=False, overrides=None)[source]
initialize()[source]
is_skipped()[source]
splash_url
throw_skipped()[source]
class backend.orcid.ORCIDMetadataExtractor(pub)[source]

Bases: object

authors_from_bibtex(bibtex)[source]
authors_from_contributors(contributors)[source]
bibtex()[source]
citation_format()[source]
contributors()[source]
convert_authors(authors, orcids)[source]
dois()[source]
internal_identifier()[source]
j(path, default=None)[source]
orcids(orcid_id, ref_name, authors, initial_orcids)[source]
pubdate()[source]
title()[source]
type()[source]
class backend.orcid.OrcidPaperSource(max_results=None)[source]

Bases: backend.papersource.PaperSource

bulk_import(directory, fetch_papers=True, use_doi=False)[source]

Bulk-imports ORCID profiles from a dmup (warning: this still uses our DOI cache). The directory should contain json versions of orcid profiles, as in the official ORCID dump.

create_paper(data_paper)[source]
fetch_crossref_incrementally(cr_api, orcid_id)[source]
fetch_metadata_from_dois(cr_api, ref_name, orcid_id, dois)[source]
fetch_orcid_records(orcid_identifier, profile=None, use_doi=True)[source]

Queries ORCiD to retrieve the publications associated with a given ORCiD. It also fetches such papers from the CrossRef search interface.

Parameters:
  • profile – The ORCID profile if it has already been fetched before (format: parsed JSON).
  • use_doi – Fetch the publications by DOI when we find one (recommended, but slow)
Returns:

a generator, where all the papers found are yielded. (some of them could be in free form, hence not imported)

fetch_papers(researcher)[source]
reconcile_paper(ref_name, orcid_id, metadata, overrides=None)[source]
warn_user_of_ignored_papers(ignored_papers)[source]
exception backend.orcid.SkippedPaper[source]

Bases: exceptions.Exception

backend.orcid.affiliate_author_with_orcid(ref_name, orcid, authors, initial_orcids=None)[source]

Given a reference name and an ORCiD for a researcher, find out which author in the list is the most likely to be that author. This function is run on author lists of papers listed in the ORCiD record so we expect that one of the authors should be the same person as the ORCiD holder. This just finds the most similar name and returns the appropriate orcids list (None everywhere except for the most similar name where it is the ORCiD).

backend.orcid.orcid_oai_source()[source]
backend.orcid.orcid_to_doctype(typ)[source]