commonmeta-py 0.39__py3-none-any.whl → 0.40__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- commonmeta/__init__.py +1 -1
- commonmeta/constants.py +10 -0
- commonmeta/crossref_utils.py +7 -2
- commonmeta/readers/json_feed_reader.py +17 -21
- commonmeta/writers/inveniordm_writer.py +1 -1
- {commonmeta_py-0.39.dist-info → commonmeta_py-0.40.dist-info}/METADATA +1 -1
- {commonmeta_py-0.39.dist-info → commonmeta_py-0.40.dist-info}/RECORD +10 -10
- {commonmeta_py-0.39.dist-info → commonmeta_py-0.40.dist-info}/LICENSE +0 -0
- {commonmeta_py-0.39.dist-info → commonmeta_py-0.40.dist-info}/WHEEL +0 -0
- {commonmeta_py-0.39.dist-info → commonmeta_py-0.40.dist-info}/entry_points.txt +0 -0
commonmeta/__init__.py
CHANGED
commonmeta/constants.py
CHANGED
@@ -623,3 +623,13 @@ CROSSREF_FUNDER_ID_TO_ROR_TRANSLATIONS = {
|
|
623
623
|
"https://doi.org/10.13039/501100001711": "https://ror.org/00yjd3n13",
|
624
624
|
"https://doi.org/10.13039/501100003043": "https://ror.org/04wfr2810",
|
625
625
|
}
|
626
|
+
|
627
|
+
|
628
|
+
ROR_TO_CROSSREF_FUNDER_ID_TRANSLATIONS = {
|
629
|
+
"https://ror.org/021nxhr62": "https://doi.org/10.13039/100000001",
|
630
|
+
"https://ror.org/00k4n6c32": "https://doi.org/10.13039/501100000780",
|
631
|
+
"https://ror.org/018mejw64": "https://doi.org/10.13039/501100001659",
|
632
|
+
"https://ror.org/019whta54": "https://doi.org/10.13039/501100006390",
|
633
|
+
"https://ror.org/00yjd3n13": "https://doi.org/10.13039/501100001711",
|
634
|
+
"https://ror.org/04wfr2810": "https://doi.org/10.13039/501100003043",
|
635
|
+
}
|
commonmeta/crossref_utils.py
CHANGED
@@ -8,7 +8,7 @@ import uuid
|
|
8
8
|
import pydash as py_
|
9
9
|
from furl import furl
|
10
10
|
|
11
|
-
from .constants import Commonmeta
|
11
|
+
from .constants import Commonmeta, ROR_TO_CROSSREF_FUNDER_ID_TRANSLATIONS
|
12
12
|
from .utils import wrap, compact, normalize_orcid, normalize_id, validate_url
|
13
13
|
from .doi_utils import doi_from_url, validate_doi
|
14
14
|
|
@@ -362,11 +362,16 @@ def insert_funding_references(metadata, xml):
|
|
362
362
|
{"name": "funder_name"},
|
363
363
|
)
|
364
364
|
if funding_reference.get("funderIdentifier", None) is not None:
|
365
|
+
funder_identifier = funding_reference.get("funderIdentifier", None)
|
366
|
+
|
367
|
+
# translate ROR to Crossref funder ID until Crossref supports ROR
|
368
|
+
funder_identifier = ROR_TO_CROSSREF_FUNDER_ID_TRANSLATIONS.get(funder_identifier, funder_identifier)
|
369
|
+
|
365
370
|
etree.SubElement(
|
366
371
|
funder_name,
|
367
372
|
"assertion",
|
368
373
|
{"name": "funder_identifier"},
|
369
|
-
).text =
|
374
|
+
).text = funder_identifier
|
370
375
|
if funding_reference.get("awardNumber", None) is not None:
|
371
376
|
etree.SubElement(
|
372
377
|
assertion,
|
@@ -214,13 +214,15 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
|
|
214
214
|
or furl(urls[0]).host == "cordis.europa.eu"
|
215
215
|
):
|
216
216
|
return [
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
217
|
+
compact(
|
218
|
+
{
|
219
|
+
"funderName": "European Commission",
|
220
|
+
"funderIdentifier": "https://ror.org/00k4n6c32",
|
221
|
+
"funderIdentifierType": "ROR",
|
222
|
+
"awardUri": urls[0],
|
223
|
+
"awardNumber": urls[0].split("/")[-1],
|
224
|
+
}
|
225
|
+
)
|
224
226
|
]
|
225
227
|
# Prefix 10.13039 means funder ID from Open Funder registry.
|
226
228
|
elif len(urls) == 2 and validate_prefix(urls[0]) == "10.13039":
|
@@ -235,29 +237,24 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
|
|
235
237
|
else:
|
236
238
|
award_number = f.path.segments[-1]
|
237
239
|
return [
|
238
|
-
{
|
240
|
+
compact({
|
239
241
|
"funderName": funder_name,
|
240
242
|
"funderIdentifier": urls[0],
|
241
243
|
"funderIdentifierType": "Crossref Funder ID",
|
242
244
|
"awardUri": urls[1],
|
243
245
|
"awardNumber": award_number,
|
244
|
-
}
|
246
|
+
})
|
245
247
|
]
|
246
|
-
# URL is ROR ID for funder.
|
247
|
-
# until Crossref production service supports ROR IDs.
|
248
|
+
# URL is ROR ID for funder.
|
248
249
|
elif len(urls) == 2 and validate_ror(urls[0]):
|
249
250
|
f = furl(urls[0])
|
250
251
|
_id = f.path.segments[-1]
|
251
252
|
response = httpx.get(f"https://api.ror.org/organizations/{_id}", timeout=10)
|
252
253
|
ror = response.json()
|
253
254
|
funder_name = ror.get("name", None)
|
254
|
-
funder_identifier =
|
255
|
-
|
256
|
-
|
257
|
-
funder_identifier_type = "Crossref Funder ID"
|
258
|
-
else:
|
259
|
-
funder_identifier = urls[0]
|
260
|
-
funder_identifier_type = "ROR"
|
255
|
+
funder_identifier = urls[0]
|
256
|
+
funder_identifier_type = "ROR"
|
257
|
+
|
261
258
|
f = furl(urls[1])
|
262
259
|
# url is for NSF grant
|
263
260
|
if f.args["awd_id"] is not None:
|
@@ -266,13 +263,13 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
|
|
266
263
|
award_number = f.path.segments[-1]
|
267
264
|
return [
|
268
265
|
compact(
|
269
|
-
{
|
266
|
+
compact({
|
270
267
|
"funderName": funder_name,
|
271
268
|
"funderIdentifier": funder_identifier,
|
272
269
|
"funderIdentifierType": funder_identifier_type,
|
273
270
|
"awardUri": urls[1],
|
274
271
|
"awardNumber": award_number,
|
275
|
-
}
|
272
|
+
})
|
276
273
|
)
|
277
274
|
]
|
278
275
|
|
@@ -290,7 +287,6 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
|
|
290
287
|
"funderName": funding.get("funder_name", None),
|
291
288
|
"funderIdentifier": funding.get("funder_id", None),
|
292
289
|
"funderIdentifierType": "Crossref Funder ID",
|
293
|
-
"awardTitle": funding.get("award", None),
|
294
290
|
"awardNumber": funding.get("award_number", None),
|
295
291
|
}
|
296
292
|
]
|
@@ -243,7 +243,7 @@ def to_inveniordm_related_identifier(relation: dict) -> dict:
|
|
243
243
|
def to_inveniordm_funding(funding: dict) -> Optional[dict]:
|
244
244
|
"""Convert funding to inveniordm funding"""
|
245
245
|
if funding.get("funderIdentifierType", None) == "ROR":
|
246
|
-
funder_identifier = id_from_url(
|
246
|
+
funder_identifier = id_from_url(funding.get("funderIdentifier", None))
|
247
247
|
elif funding.get("funderIdentifierType", None) == "Crossref Funder ID":
|
248
248
|
# convert to ROR
|
249
249
|
funder_identifier = id_from_url(
|
@@ -1,10 +1,10 @@
|
|
1
|
-
commonmeta/__init__.py,sha256=
|
1
|
+
commonmeta/__init__.py,sha256=Xc4MVM80sSD7NZdUZZB6CqIuzR5xxY7Fy-dFmKTeNqI,1779
|
2
2
|
commonmeta/api_utils.py,sha256=-ZHGVZZhJqnjnsLtp4-PoeHYbDqL0cQme7W70BEjo4U,2677
|
3
3
|
commonmeta/author_utils.py,sha256=zBIPTgP5n7Zx57xomJ2h7x0dvC0AV8gJ2gPoYeDy5Lo,8348
|
4
4
|
commonmeta/base_utils.py,sha256=0t6fr9XGeeTBoMlKSAMI7p_EmKsA6wYRW0roEBXVcc8,3722
|
5
5
|
commonmeta/cli.py,sha256=0IJF1SQ1sKPg7M0Gb8fpX2nBps-G0L13o01__M6c5Z0,6104
|
6
|
-
commonmeta/constants.py,sha256=
|
7
|
-
commonmeta/crossref_utils.py,sha256=
|
6
|
+
commonmeta/constants.py,sha256=cank4niDCO-VvjjRIgCxOAqFEnV1R8xyGC6xEL1iDsw,17461
|
7
|
+
commonmeta/crossref_utils.py,sha256=LBYfmhIldYryaBUYohfLnv870aWGMDm043Ny8Wav6Bg,22370
|
8
8
|
commonmeta/date_utils.py,sha256=amF3E0ZJlh8yY5eY3aVXQyAO1x2WuZHJXw-ajOEcdUQ,5808
|
9
9
|
commonmeta/doi_utils.py,sha256=Dt6K9ADD2ga2WNsOzfX9f29gnubhn7xqeKL7U5pEpBs,8209
|
10
10
|
commonmeta/metadata.py,sha256=dqqk4IW-_OwtS_PVs0i7AuxrkNqOYjJCqhQJ2X-I1DQ,12398
|
@@ -19,7 +19,7 @@ commonmeta/readers/csl_reader.py,sha256=5V_sHSJwcAWJmhB8SYk199nB96BWYX1Sq9vkQ3iE
|
|
19
19
|
commonmeta/readers/datacite_reader.py,sha256=CdOtxhthrakBoQMsLTdPx6sUCmqtEWo5ICYE6ZsWDdo,12026
|
20
20
|
commonmeta/readers/datacite_xml_reader.py,sha256=nhnO92fZihr1HZlbXjyem-HJXc9_DWLgJ2zeltuPMIg,13041
|
21
21
|
commonmeta/readers/inveniordm_reader.py,sha256=jzv0rXzT8OCdPD_MShBXTnlwD-F9tpTX7OKZGn8smzs,7480
|
22
|
-
commonmeta/readers/json_feed_reader.py,sha256=
|
22
|
+
commonmeta/readers/json_feed_reader.py,sha256=y-sX_l9AD0I71pSZSZWr2x2tLTlD4mxoB2eF0vf0rWk,13034
|
23
23
|
commonmeta/readers/kbase_reader.py,sha256=ehKXQsJyPCtaq2FmBxNb2Jb5Nktpx8pNscpmEM6N0A4,6763
|
24
24
|
commonmeta/readers/ris_reader.py,sha256=v6qOd-i2OcMTEFy5RGd3MlYthJcYSU6yzmZ5yHDzmII,3677
|
25
25
|
commonmeta/readers/schema_org_reader.py,sha256=xyWzO2XAWlI2pYVl2EbVRsUmfiWXEwP64CHRBQNRN-M,16835
|
@@ -66,11 +66,11 @@ commonmeta/writers/commonmeta_writer.py,sha256=2qlttCfYpGhfVjrYkjzbIra7AywssRLT3
|
|
66
66
|
commonmeta/writers/crossref_xml_writer.py,sha256=0Ds494RnXfdfjWw5CLX1kwV2zP7gqffdVqO-X74Uc6c,492
|
67
67
|
commonmeta/writers/csl_writer.py,sha256=rlCeShkvC6ui9By0yVfNCMay_JfaZ4AooUPOPg-g-2M,2819
|
68
68
|
commonmeta/writers/datacite_writer.py,sha256=G7Lr0aZ4sAEdbfXe3dG4Y6AyGUKA9UWr_iiaQRDnV24,6233
|
69
|
-
commonmeta/writers/inveniordm_writer.py,sha256=
|
69
|
+
commonmeta/writers/inveniordm_writer.py,sha256=sCDmPC4DEOWjuKtA14dZhjrr--IiO0rgeTXL2O2hre4,9642
|
70
70
|
commonmeta/writers/ris_writer.py,sha256=AcnCszS3WY9lF594NbFBtLylsA8ownnYp_XLQJ84Ios,2093
|
71
71
|
commonmeta/writers/schema_org_writer.py,sha256=5j002uCNLdlScZMNQmPjodcVWqaBh2z38zL1H4lo2hY,5741
|
72
|
-
commonmeta_py-0.
|
73
|
-
commonmeta_py-0.
|
74
|
-
commonmeta_py-0.
|
75
|
-
commonmeta_py-0.
|
76
|
-
commonmeta_py-0.
|
72
|
+
commonmeta_py-0.40.dist-info/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
|
73
|
+
commonmeta_py-0.40.dist-info/METADATA,sha256=bB20Im9gNUUGJIt7TnMLFpGouHdnpmV7GkC_fiZmk7I,8331
|
74
|
+
commonmeta_py-0.40.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
75
|
+
commonmeta_py-0.40.dist-info/entry_points.txt,sha256=vbcDw3_2lMTKdcAL2VUF4DRYRpKuzXVYLMCdgKVf88U,49
|
76
|
+
commonmeta_py-0.40.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|