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 +2 -1
- commonmeta/utils.py +32 -6
- commonmeta/writers/inveniordm_writer.py +2 -1
- {commonmeta_py-0.63.dist-info → commonmeta_py-0.65.dist-info}/METADATA +1 -1
- {commonmeta_py-0.63.dist-info → commonmeta_py-0.65.dist-info}/RECORD +8 -8
- {commonmeta_py-0.63.dist-info → commonmeta_py-0.65.dist-info}/LICENSE +0 -0
- {commonmeta_py-0.63.dist-info → commonmeta_py-0.65.dist-info}/WHEEL +0 -0
- {commonmeta_py-0.63.dist-info → commonmeta_py-0.65.dist-info}/entry_points.txt +0 -0
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.
|
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
|
-
|
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,4 +1,4 @@
|
|
1
|
-
commonmeta/__init__.py,sha256=
|
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=
|
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=
|
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.
|
73
|
-
commonmeta_py-0.
|
74
|
-
commonmeta_py-0.
|
75
|
-
commonmeta_py-0.
|
76
|
-
commonmeta_py-0.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|