def test_clean_orcid(self): orcid = '0000-0003-1527-0030' # Test with orcid.org prefix. self.assertEqual(clean_orcid('orcid.org/' + orcid), orcid) # Test without prefix. self.assertEqual(clean_orcid(orcid), orcid)
def test_clean_orcid(self): orcid = '0000-0003-1527-0030' # Test with orcid.org prefix. self.assertEqual(clean_orcid('orcid.org/' + orcid), orcid) # Test with http://orcid.org prefix. self.assertEqual(clean_orcid('http://orcid.org/' + orcid), orcid) # Test without prefix. self.assertEqual(clean_orcid(orcid), orcid)
def fetch_orcid_profile(orcid_id): orcid = clean_orcid(orcid_id) r = requests.get('https://pub.orcid.org/v2.0/%s' % orcid, headers={"Accept": "application/json"}) if r: return r.json() else: raise Exception("Request to fetch ORCID profile for %s returned %s" % (orcid, r.status_code))
def fetch_orcid_profile(orcid_id): orcid = clean_orcid(orcid_id) # curl -H "Accept: application/orcid+json" 'http://pub.orcid.org/v1.2/0000-0003-3441-946X/orcid-profile' -L -i r = requests.get("http://pub.orcid.org/v1.2/%s/orcid-profile" % orcid, headers={"Accept": "application/orcid+json"}) if r: return r.json() else: raise Exception("Request to fetch ORCID profile for %s returned %s" % (orcid, r.status_code))
def crosswalk(self, orcid_id, person_uri, person_class=None, confirmed_orcid_id=False): # Create an RDFLib Graph graph = Graph(namespace_manager=ns.ns_manager) # 0000-0003-3441-946X clean_orcid_id = clean_orcid(orcid_id) orcid_profile = fetch_orcid_profile(clean_orcid_id) # Determine the class to use for the person person_clazz = FOAF.Person if person_class: person_clazz = getattr(VIVO, person_class) # ORCID PersonCrosswalk._add_orcid_id(person_uri, clean_orcid_id, graph, confirmed_orcid_id) self.bio_crosswalker.crosswalk(orcid_profile, person_uri, graph, person_class=person_clazz) self.works_crosswalker.crosswalk(orcid_profile, person_uri, graph) self.affiliations_crosswalker.crosswalk(orcid_profile, person_uri, graph) self.funding_crosswalker.crosswalk(orcid_profile, person_uri, graph) return graph, orcid_profile, person_uri