commonmeta-py 0.90__py3-none-any.whl → 0.92__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 CHANGED
@@ -10,7 +10,7 @@ commonmeta-py is a Python library to convert scholarly metadata
10
10
  """
11
11
 
12
12
  __title__ = "commonmeta-py"
13
- __version__ = "0.90"
13
+ __version__ = "0.92"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
commonmeta/constants.py CHANGED
@@ -563,8 +563,8 @@ COMMONMETA_RELATION_TYPES = [
563
563
  "IsOriginalFormOf",
564
564
  "IsIdenticalTo",
565
565
  "IsTranslationOf",
566
- "IsReviewedBy",
567
- "Reviews",
566
+ "HasReview",
567
+ "IsReviewOf",
568
568
  "IsPreprintOf",
569
569
  "HasPreprint",
570
570
  "IsSupplementTo",
@@ -235,8 +235,7 @@ def get_relations(relations: list) -> list:
235
235
  "IsOriginalFormOf",
236
236
  "IsIdenticalTo",
237
237
  "IsTranslationOf",
238
- "IsReviewedBy",
239
- "Reviews",
238
+ "IsReviewOf",
240
239
  "HasReview",
241
240
  "IsPreprintOf",
242
241
  "HasPreprint",
@@ -13,6 +13,7 @@ from ..utils import (
13
13
  dict_to_spdx,
14
14
  name_to_fos,
15
15
  validate_ror,
16
+ validate_url,
16
17
  issn_as_url,
17
18
  )
18
19
  from ..author_utils import get_authors
@@ -230,6 +231,7 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
230
231
  elif len(urls) == 2 and validate_prefix(urls[0]) == "10.13039":
231
232
  if urls[0] == "https://doi.org/10.13039/100000001":
232
233
  funder_name = "National Science Foundation"
234
+ funder_identifier = "https://ror.org/021nxhr62"
233
235
  else:
234
236
  funder_name = None
235
237
  f = furl(urls[1])
@@ -242,8 +244,8 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
242
244
  compact(
243
245
  {
244
246
  "funderName": funder_name,
245
- "funderIdentifier": urls[0],
246
- "funderIdentifierType": "Crossref Funder ID",
247
+ "funderIdentifier": funder_identifier,
248
+ "funderIdentifierType": "ROR",
247
249
  "awardUri": urls[1],
248
250
  "awardNumber": award_number,
249
251
  }
@@ -286,9 +288,32 @@ def get_funding_references(meta: Optional[dict]) -> Optional[list]:
286
288
  if i.get("type", None) == "HasAward"
287
289
  ]
288
290
  )
291
+ def format_funding_reference(funding: dict) -> dict:
292
+ """format funding reference. Make sure award URI is either a DOI or URL"""
293
+
294
+ award_uri = funding.get("awardUri", None)
295
+ if validate_url(funding.get("awardUri", None)) not in ["DOI", "URL"]:
296
+ award_uri = None
297
+ funder_identifier = funding.get("funderIdentifier", None)
298
+ funder_identifier_type = funding.get("funderIdentifierType", None)
299
+ if not funder_identifier_type and validate_ror(
300
+ funding.get("funderIdentifier", None)
301
+ ):
302
+ funder_identifier_type = "ROR"
303
+
304
+ return compact(
305
+ {
306
+ "funderName": funding.get("funderName", None),
307
+ "funderIdentifier": funder_identifier,
308
+ "funderIdentifierType": funder_identifier_type,
309
+ "awardTitle": funding.get("awardTitle", None),
310
+ "awardNumber": funding.get("awardNumber", None),
311
+ "awardUri": award_uri,
312
+ }
313
+ )
289
314
  funding_references = py_.get(meta, "funding_references")
290
315
  if funding_references is not None:
291
- awards += [compact(i) for i in funding_references]
316
+ awards += [format_funding_reference(i) for i in funding_references if i.get("funderName", None)]
292
317
 
293
318
  awards += wrap(py_.get(meta, "blog.funding"))
294
319
  return py_.uniq(awards)
@@ -308,8 +333,8 @@ def get_relations(relations: Optional[list]) -> Optional[list]:
308
333
  "IsOriginalFormOf",
309
334
  "IsIdenticalTo",
310
335
  "IsTranslationOf",
311
- "IsReviewedBy",
312
- "Reviews",
336
+ "IsReviewOf",
337
+ "HasReview",
313
338
  "IsPreprintOf",
314
339
  "HasPreprint",
315
340
  "IsSupplementTo",
@@ -356,8 +356,7 @@
356
356
  "IsIdenticalTo",
357
357
  "IsTranslationOf",
358
358
  "HasTranslation",
359
- "IsReviewedBy",
360
- "Reviews",
359
+ "IsReviewOf",
361
360
  "HasReview",
362
361
  "IsPreprintOf",
363
362
  "HasPreprint",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonmeta-py
3
- Version: 0.90
3
+ Version: 0.92
4
4
  Summary: Library for conversions to/from the Commonmeta scholarly metadata format
5
5
  Project-URL: Homepage, https://python.commonmeta.org
6
6
  Project-URL: Repository, https://github.com/front-matter/commonmeta-py
@@ -1,9 +1,9 @@
1
- commonmeta/__init__.py,sha256=ywUHwDbqP_6koJ1bVCBxdElkbuDqlucZ44AVpxYXBQU,1911
1
+ commonmeta/__init__.py,sha256=StkH-mBlI5JKqsppeu-jy712T9SyL6NGqwlGaoqulAw,1911
2
2
  commonmeta/api_utils.py,sha256=-ZHGVZZhJqnjnsLtp4-PoeHYbDqL0cQme7W70BEjo4U,2677
3
3
  commonmeta/author_utils.py,sha256=1oQQfxaq7aMQI3rLt8XMufksuBeC8Zht96aJ8vz09Ug,8459
4
4
  commonmeta/base_utils.py,sha256=AsUElA5kT2fw_Osy7Uaj2F6MKeq9yB7d5f2V-h2lh7c,3750
5
5
  commonmeta/cli.py,sha256=sOI9BJTePnljVcXcZ95N7TKXDT283XpjUaak7bMnbr0,6076
6
- commonmeta/constants.py,sha256=50ubqc34mqDPXp_bI--rEOoXFiNF4mz_V66lk8FsxL4,18348
6
+ commonmeta/constants.py,sha256=aZ7v-5bomVUQ1D79ubeSGHvlHhQvtVOcTvjLy-Wagvw,18348
7
7
  commonmeta/crossref_utils.py,sha256=ijcdAdV2HHUXP2twIKIQP9Ln2xsysU3n9nwQDg-ZAxU,22224
8
8
  commonmeta/date_utils.py,sha256=rJRV4YmWKQWU__iAV8www3cqwaefC0iRKyHwvxrr_XY,6316
9
9
  commonmeta/doi_utils.py,sha256=s2J95V9rWPbGsh5oNXht3yJkJ0NmVLRlOXDPXjnN-Ck,9152
@@ -16,13 +16,13 @@ commonmeta/readers/bibtex_reader.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
16
16
  commonmeta/readers/cff_reader.py,sha256=5HMFUvjE1zb-zfpQSNM8vtB0YunD0reom99hn8N0xKc,6144
17
17
  commonmeta/readers/codemeta_reader.py,sha256=efv2V1WPfdrKLQNxgSvoripdWqS2M6CwXWSGiRuzRtU,3658
18
18
  commonmeta/readers/commonmeta_reader.py,sha256=gNjdsJ-671-pXmBdzy1NybkQ29q9_qtorFoK2D-zStA,302
19
- commonmeta/readers/crossref_reader.py,sha256=msx127UIcu6ksFd8Wiay4YXK6dEKFO0kOFJS8_r9Nw0,12560
19
+ commonmeta/readers/crossref_reader.py,sha256=mzPNvxtcFJyVmA-zKjdEzk4L1VU5NJfokiA4dzrWues,12539
20
20
  commonmeta/readers/crossref_xml_reader.py,sha256=yZOh66_4tVS5i0TdEyOa48ckpl7_cj69hfZnaA9pjM8,18723
21
21
  commonmeta/readers/csl_reader.py,sha256=ynqJeqK9TlHFsmgMREPmKGlcj6tVycpnqDN0N0LjIpw,3201
22
22
  commonmeta/readers/datacite_reader.py,sha256=CdOtxhthrakBoQMsLTdPx6sUCmqtEWo5ICYE6ZsWDdo,12026
23
23
  commonmeta/readers/datacite_xml_reader.py,sha256=nhnO92fZihr1HZlbXjyem-HJXc9_DWLgJ2zeltuPMIg,13041
24
24
  commonmeta/readers/inveniordm_reader.py,sha256=F0syoLZ3amzkrEk8efb9WxwhMDY8QM8ctOH32E3fGqM,8358
25
- commonmeta/readers/json_feed_reader.py,sha256=1re1uI88y2VHZ3EsgnnrviLcLZJnqp-CIhZJPmvFZ2U,13275
25
+ commonmeta/readers/json_feed_reader.py,sha256=TBc0ETl6VyetEB1j32RMDng8li5GMBQiWz1ZecAt--0,14409
26
26
  commonmeta/readers/kbase_reader.py,sha256=ehKXQsJyPCtaq2FmBxNb2Jb5Nktpx8pNscpmEM6N0A4,6763
27
27
  commonmeta/readers/ris_reader.py,sha256=v6qOd-i2OcMTEFy5RGd3MlYthJcYSU6yzmZ5yHDzmII,3677
28
28
  commonmeta/readers/schema_org_reader.py,sha256=78vYWCZqrYevZsSbx7oVVLm3mlNzi323WNW5E_PL9o0,17234
@@ -31,7 +31,7 @@ commonmeta/resources/commonmeta_v0.12.json,sha256=HUSNReXh2JN3Q6YWSt7CE69js8dh50
31
31
  commonmeta/resources/commonmeta_v0.13.json,sha256=2-WSZGijR13zVu97S_YHXr-cyeLW7hzHXYMlr6nIjdw,15787
32
32
  commonmeta/resources/commonmeta_v0.14.json,sha256=nACmkTe4IrZkygd5AeJnAv9P4EWfzCwW9oL5AhubvnE,17657
33
33
  commonmeta/resources/commonmeta_v0.15.json,sha256=kC9xmtIwrGpl7V1vcXKWthWejYvtKfqOqenBCRSjANc,17753
34
- commonmeta/resources/commonmeta_v0.16.json,sha256=uncnHMlGfMozKOixHjII4WTOqcU_wxbbKEwRTnjL2vY,18737
34
+ commonmeta/resources/commonmeta_v0.16.json,sha256=kgeGjIGUXzVK4E2H6eKBZdI0-gnFQYthR9WIkyAZp5o,18706
35
35
  commonmeta/resources/crossref-v0.2.json,sha256=THbFem4IDSE-TFNOtP1-NOmZhED2dlLBso9RdGMbGIY,1431
36
36
  commonmeta/resources/csl-data.json,sha256=I7LAYtdSYGD0YxuwS0s7ojfkiEhCU-MnvQD6aRhhuBE,12222
37
37
  commonmeta/resources/datacite-v4.5.json,sha256=ocpQNSbORPJf5Ogidy6M6EHundgv7DSgIqRco02KgM4,18970
@@ -70,8 +70,8 @@ commonmeta/writers/datacite_writer.py,sha256=UpDp4Brg5xrmS5T3QYoNi6PPXKdRxAo254e
70
70
  commonmeta/writers/inveniordm_writer.py,sha256=-GsTcVMPlbbB9kSTmHP00ZJ1aHIbA21K0LkcuPWBMm8,11429
71
71
  commonmeta/writers/ris_writer.py,sha256=AcnCszS3WY9lF594NbFBtLylsA8ownnYp_XLQJ84Ios,2093
72
72
  commonmeta/writers/schema_org_writer.py,sha256=5j002uCNLdlScZMNQmPjodcVWqaBh2z38zL1H4lo2hY,5741
73
- commonmeta_py-0.90.dist-info/METADATA,sha256=VHOpxlL0e5XQ9aybUWIeUSXlDmhM0GP7gu-FeKFBm7Y,7429
74
- commonmeta_py-0.90.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
75
- commonmeta_py-0.90.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
76
- commonmeta_py-0.90.dist-info/licenses/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
77
- commonmeta_py-0.90.dist-info/RECORD,,
73
+ commonmeta_py-0.92.dist-info/METADATA,sha256=0aKI2o_80OtU4WRixJrIC5nQdTT6-or128sDR3UFQD4,7429
74
+ commonmeta_py-0.92.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
75
+ commonmeta_py-0.92.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
76
+ commonmeta_py-0.92.dist-info/licenses/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
77
+ commonmeta_py-0.92.dist-info/RECORD,,