commonmeta-py 0.63__py3-none-any.whl → 0.65__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.63"
13
+ __version__ = "0.65"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
@@ -94,4 +94,5 @@ from .doi_utils import (
94
94
  normalize_doi,
95
95
  validate_doi,
96
96
  validate_prefix,
97
+ is_rogue_scholar_doi,
97
98
  )
commonmeta/utils.py CHANGED
@@ -1096,22 +1096,48 @@ def from_curie(id: Optional[str]) -> Optional[str]:
1096
1096
  if id is None:
1097
1097
  return None
1098
1098
  _type = id.split(":")[0]
1099
- if _type == "DOI":
1099
+ if _type.upper() == "DOI":
1100
1100
  return doi_as_url(id.split(":")[1])
1101
- elif _type == "ROR":
1101
+ elif _type.upper() == "ROR":
1102
1102
  return "https://ror.org/" + id.split(":")[1]
1103
- elif _type == "ISNI":
1103
+ elif _type.upper() == "ISNI":
1104
1104
  return "https://isni.org/isni/" + id.split(":")[1]
1105
- elif _type == "ORCID":
1105
+ elif _type.upper() == "ORCID":
1106
1106
  return normalize_orcid(id.split(":")[1])
1107
- elif _type == "URL":
1107
+ elif _type.upper() == "URL":
1108
1108
  return normalize_url(id.split(":")[1])
1109
- elif _type == "JDP":
1109
+ elif _type.upper() == "JDP":
1110
1110
  return id.split(":")[1]
1111
1111
  # TODO: resolvable url for other identifier types
1112
1112
  return None
1113
1113
 
1114
1114
 
1115
+ def extract_curie(string: Optional[str]) -> Optional[str]:
1116
+ """Extract CURIE"""
1117
+ if string is None:
1118
+ return None
1119
+ match = re.search(r"((?:doi|DOI):\s?([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-]))", string)
1120
+ if match is None:
1121
+ return None
1122
+ return doi_as_url(match.group(2))
1123
+
1124
+
1125
+ def extract_url(string: str) -> list:
1126
+ """Extract urls from string, including markdown and html."""
1127
+
1128
+ match = re.search(r"((?:http|https):\/\/(?:[\w_-]+(?:(?:\.[\w_-]+)+))(?:[\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-]))", string)
1129
+ if match is None:
1130
+ return None
1131
+ return normalize_url(match.group(1))
1132
+
1133
+
1134
+ def extract_urls(string: str) -> list:
1135
+ """Extract urls from string, including markdown and html."""
1136
+
1137
+ urls = re.findall(r"((?:http|https):\/\/(?:[\w_-]+(?:(?:\.[\w_-]+)+))(?:[\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-]))", string)
1138
+ return py_.uniq(urls)
1139
+
1140
+
1115
1141
  def issn_as_url(issn: str) -> Optional[str]:
1116
1142
  """ISSN as URL"""
1117
1143
  if normalize_issn(issn) is None:
@@ -257,7 +257,8 @@ def to_inveniordm_reference(reference: dict) -> dict:
257
257
  identifier = reference.get("id", None)
258
258
  scheme = "url"
259
259
  else:
260
- return None
260
+ identifier = None
261
+ scheme = None
261
262
 
262
263
  if reference.get("unstructured", None) is None:
263
264
  # use title as unstructured reference
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: commonmeta-py
3
- Version: 0.63
3
+ Version: 0.65
4
4
  Summary: Library for conversions to/from the Commonmeta scholarly metadata format
5
5
  Home-page: https://python.commonmeta.org
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- commonmeta/__init__.py,sha256=Vn41OSNVhIRsKaPeFCbK6z9ms3fO0VD2e_p8lSoBe90,1795
1
+ commonmeta/__init__.py,sha256=LqrBGNgQuAGQiRF9HrhX5iHHu14t44M7nTTOYmg4Rmc,1821
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=AsUElA5kT2fw_Osy7Uaj2F6MKeq9yB7d5f2V-h2lh7c,3750
@@ -58,7 +58,7 @@ commonmeta/resources/styles/modern-language-association.csl,sha256=HI2iU4krze1aH
58
58
  commonmeta/resources/styles/vancouver.csl,sha256=lun3_i2oTilgsANk4LjFao2UDPQlGj_hgFgKAWC_DF8,12878
59
59
  commonmeta/schema_utils.py,sha256=gg3l1jd_lFtRkQlO1DYGMVbC10nEmVTN4AWacxC4AAE,915
60
60
  commonmeta/translators.py,sha256=RpGJtKNLjmz41VREZDY7KyyE2eXOi8j7m-da4jHmknI,1362
61
- commonmeta/utils.py,sha256=0ky8xyDQWVND5nJWApPgyVhbjXdPPzfpx4fJpX9ivyw,43674
61
+ commonmeta/utils.py,sha256=lIH7VejIn_gReLsuXsAZxE-RiMCRGECA_6aPrhGsBFc,44596
62
62
  commonmeta/writers/__init__.py,sha256=47-snms6xBHkoEXKYV1DBtH1npAtlVtvY29Z4Zr45qI,45
63
63
  commonmeta/writers/bibtex_writer.py,sha256=s3hIJIgWvSG7TAriZMRQEAyuitw6ebwWSI1YcYFQ-do,4971
64
64
  commonmeta/writers/citation_writer.py,sha256=RjaNh9EALxq6gfODLRWVJxGxPArGd6ZiHUlkYnCT6MA,2355
@@ -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=6N-93R1emcOsZrUTIhPBVd_Fv1C8Z5EAFYI0mYjoYaY,2797
68
68
  commonmeta/writers/datacite_writer.py,sha256=G7Lr0aZ4sAEdbfXe3dG4Y6AyGUKA9UWr_iiaQRDnV24,6233
69
- commonmeta/writers/inveniordm_writer.py,sha256=oVcXdHYtuugbfDgKO8JwTRXmP7AK2U96uK4YF0eKXAY,11399
69
+ commonmeta/writers/inveniordm_writer.py,sha256=YXLfiMkWDMMd7ZlOzhp0zNieQFfHKZ4m5FQLIl_XuWI,11427
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.63.dist-info/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
73
- commonmeta_py-0.63.dist-info/METADATA,sha256=RQXKld5RnUdijPEzxt4KFE8qoZ9i0MkWTB3hmk2f12k,8279
74
- commonmeta_py-0.63.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
75
- commonmeta_py-0.63.dist-info/entry_points.txt,sha256=vbcDw3_2lMTKdcAL2VUF4DRYRpKuzXVYLMCdgKVf88U,49
76
- commonmeta_py-0.63.dist-info/RECORD,,
72
+ commonmeta_py-0.65.dist-info/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
73
+ commonmeta_py-0.65.dist-info/METADATA,sha256=th0VmBY3Kk5evcQrUOk55lTyqjeZ6CEuXnvumG_Duvc,8279
74
+ commonmeta_py-0.65.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
75
+ commonmeta_py-0.65.dist-info/entry_points.txt,sha256=vbcDw3_2lMTKdcAL2VUF4DRYRpKuzXVYLMCdgKVf88U,49
76
+ commonmeta_py-0.65.dist-info/RECORD,,