commonmeta-py 0.105__py3-none-any.whl → 0.107__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 +13 -1
- commonmeta/api_utils.py +7 -6
- commonmeta/author_utils.py +10 -10
- commonmeta/base_utils.py +3 -2
- commonmeta/crossref_utils.py +80 -1
- commonmeta/date_utils.py +3 -2
- commonmeta/doi_utils.py +4 -4
- commonmeta/readers/cff_reader.py +9 -8
- commonmeta/readers/codemeta_reader.py +14 -13
- commonmeta/readers/crossref_reader.py +6 -5
- commonmeta/readers/crossref_xml_reader.py +20 -19
- commonmeta/readers/datacite_reader.py +6 -5
- commonmeta/readers/datacite_xml_reader.py +7 -6
- commonmeta/readers/inveniordm_reader.py +15 -16
- commonmeta/readers/json_feed_reader.py +25 -22
- commonmeta/readers/openalex_reader.py +10 -9
- commonmeta/readers/schema_org_reader.py +31 -29
- commonmeta/schema_utils.py +1 -0
- commonmeta/translators.py +2 -1
- commonmeta/utils.py +70 -11
- commonmeta/writers/citation_writer.py +10 -5
- commonmeta/writers/commonmeta_writer.py +1 -0
- commonmeta/writers/crossref_xml_writer.py +1 -0
- commonmeta/writers/csl_writer.py +5 -4
- commonmeta/writers/datacite_writer.py +5 -4
- commonmeta/writers/inveniordm_writer.py +9 -8
- {commonmeta_py-0.105.dist-info → commonmeta_py-0.107.dist-info}/METADATA +17 -15
- {commonmeta_py-0.105.dist-info → commonmeta_py-0.107.dist-info}/RECORD +31 -33
- commonmeta/resources/ietf-bcp-47.json +0 -3025
- commonmeta/resources/iso-8601.json +0 -3182
- {commonmeta_py-0.105.dist-info → commonmeta_py-0.107.dist-info}/WHEEL +0 -0
- {commonmeta_py-0.105.dist-info → commonmeta_py-0.107.dist-info}/entry_points.txt +0 -0
- {commonmeta_py-0.105.dist-info → commonmeta_py-0.107.dist-info}/licenses/LICENSE +0 -0
@@ -2,8 +2,9 @@
|
|
2
2
|
|
3
3
|
from typing import Optional
|
4
4
|
|
5
|
-
import
|
5
|
+
import requests
|
6
6
|
from pydash import py_
|
7
|
+
from requests.exceptions import ConnectionError, ReadTimeout
|
7
8
|
|
8
9
|
from ..author_utils import get_authors
|
9
10
|
from ..base_utils import compact, presence, sanitize, wrap
|
@@ -40,7 +41,7 @@ OA_IDENTIFIER_TYPES = {
|
|
40
41
|
def get_openalex_list(query: dict, **kwargs) -> list[dict]:
|
41
42
|
"""get_openalex list from OpenAlex API."""
|
42
43
|
url = openalex_api_query_url(query, **kwargs)
|
43
|
-
response =
|
44
|
+
response = requests.get(url, timeout=30, **kwargs)
|
44
45
|
if response.status_code != 200:
|
45
46
|
return []
|
46
47
|
return response.json().get("results", [])
|
@@ -52,7 +53,7 @@ def get_openalex(pid: str, **kwargs) -> dict:
|
|
52
53
|
if identifier_type not in ["DOI", "MAG", "OpenAlex", "PMID", "PMCID"]:
|
53
54
|
return {"state": "not_found"}
|
54
55
|
url = openalex_api_url(id, identifier_type, **kwargs)
|
55
|
-
response =
|
56
|
+
response = requests.get(url, timeout=10, **kwargs)
|
56
57
|
if response.status_code != 200:
|
57
58
|
return {"state": "not_found"}
|
58
59
|
# OpenAlex returns record as list
|
@@ -212,7 +213,7 @@ def get_references(pids: list, **kwargs) -> list:
|
|
212
213
|
|
213
214
|
|
214
215
|
def get_citations(citation_url: str, **kwargs) -> list:
|
215
|
-
response =
|
216
|
+
response = requests.get(citation_url, timeout=10, **kwargs)
|
216
217
|
if response.status_code != 200:
|
217
218
|
return {"state": "not_found"}
|
218
219
|
response = response.json()
|
@@ -248,7 +249,7 @@ def get_openalex_works(pids: list, **kwargs) -> list:
|
|
248
249
|
for pid_batch in pid_batches:
|
249
250
|
ids = "|".join(pid_batch)
|
250
251
|
url = f"https://api.openalex.org/works?filter=ids.openalex:{ids}"
|
251
|
-
response =
|
252
|
+
response = requests.get(url, timeout=10, **kwargs)
|
252
253
|
if response.status_code != 200:
|
253
254
|
return {"state": "not_found"}
|
254
255
|
response = response.json()
|
@@ -268,7 +269,7 @@ def get_openalex_funders(pids: list, **kwargs) -> list:
|
|
268
269
|
for pid_batch in pid_batches:
|
269
270
|
ids = "|".join(pid_batch)
|
270
271
|
url = f"https://api.openalex.org/funders?filter=ids.openalex:{ids}"
|
271
|
-
response =
|
272
|
+
response = requests.get(url, timeout=10, **kwargs)
|
272
273
|
if response.status_code != 200:
|
273
274
|
return {"state": "not_found"}
|
274
275
|
response = response.json()
|
@@ -297,7 +298,7 @@ def get_openalex_source(str: Optional[str], **kwargs) -> Optional[dict]:
|
|
297
298
|
return None
|
298
299
|
|
299
300
|
url = f"https://api.openalex.org/sources/{id}"
|
300
|
-
response =
|
301
|
+
response = requests.get(url, timeout=10, **kwargs)
|
301
302
|
if response.status_code != 200:
|
302
303
|
return {"state": "not_found"}
|
303
304
|
response = response.json()
|
@@ -381,11 +382,11 @@ def get_random_openalex_id(number: int = 1, **kwargs) -> list:
|
|
381
382
|
number = min(number, 20)
|
382
383
|
url = openalex_api_sample_url(number, **kwargs)
|
383
384
|
try:
|
384
|
-
response =
|
385
|
+
response = requests.get(url, timeout=10)
|
385
386
|
if response.status_code != 200:
|
386
387
|
return []
|
387
388
|
|
388
389
|
items = py_.get(response.json(), "results")
|
389
390
|
return items
|
390
|
-
except (
|
391
|
+
except (ReadTimeout, ConnectionError):
|
391
392
|
return []
|
@@ -1,43 +1,45 @@
|
|
1
1
|
"""schema_org reader for commonmeta-py"""
|
2
2
|
|
3
|
-
from typing import Optional
|
4
3
|
import io
|
5
|
-
import orjson as json
|
6
|
-
from datetime import datetime
|
7
4
|
from collections import defaultdict
|
8
|
-
import
|
9
|
-
from
|
10
|
-
|
5
|
+
from datetime import datetime
|
6
|
+
from typing import Optional
|
7
|
+
|
8
|
+
import orjson as json
|
11
9
|
import pikepdf
|
10
|
+
import requests
|
11
|
+
from bs4 import BeautifulSoup
|
12
|
+
from pydash import py_
|
13
|
+
from requests.exceptions import ConnectionError
|
12
14
|
|
13
|
-
from ..utils import (
|
14
|
-
dict_to_spdx,
|
15
|
-
normalize_cc_url,
|
16
|
-
from_schema_org,
|
17
|
-
from_schema_org_creators,
|
18
|
-
normalize_id,
|
19
|
-
normalize_ids,
|
20
|
-
normalize_url,
|
21
|
-
name_to_fos,
|
22
|
-
get_language,
|
23
|
-
)
|
24
|
-
from ..readers.crossref_reader import get_crossref
|
25
|
-
from ..readers.datacite_reader import get_datacite
|
26
|
-
from ..base_utils import wrap, compact, presence, parse_attributes, sanitize
|
27
15
|
from ..author_utils import get_authors
|
16
|
+
from ..base_utils import compact, parse_attributes, presence, sanitize, wrap
|
17
|
+
from ..constants import (
|
18
|
+
OG_TO_SO_TRANSLATIONS,
|
19
|
+
SO_TO_CM_TRANSLATIONS,
|
20
|
+
SO_TO_DC_RELATION_TYPES,
|
21
|
+
SO_TO_DC_REVERSE_RELATION_TYPES,
|
22
|
+
Commonmeta,
|
23
|
+
)
|
28
24
|
from ..date_utils import (
|
25
|
+
get_datetime_from_pdf_time,
|
29
26
|
get_iso8601_date,
|
30
27
|
strip_milliseconds,
|
31
|
-
get_datetime_from_pdf_time,
|
32
28
|
)
|
33
29
|
from ..doi_utils import doi_from_url, get_doi_ra, validate_doi
|
30
|
+
from ..readers.crossref_reader import get_crossref
|
31
|
+
from ..readers.datacite_reader import get_datacite
|
34
32
|
from ..translators import web_translator
|
35
|
-
from ..
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
33
|
+
from ..utils import (
|
34
|
+
dict_to_spdx,
|
35
|
+
from_schema_org,
|
36
|
+
from_schema_org_creators,
|
37
|
+
get_language,
|
38
|
+
name_to_fos,
|
39
|
+
normalize_cc_url,
|
40
|
+
normalize_id,
|
41
|
+
normalize_ids,
|
42
|
+
normalize_url,
|
41
43
|
)
|
42
44
|
|
43
45
|
|
@@ -51,8 +53,8 @@ def get_schema_org(pid: str, **kwargs) -> dict:
|
|
51
53
|
if doi_from_url(pid):
|
52
54
|
return get_doi_meta(doi_from_url(pid))
|
53
55
|
try:
|
54
|
-
response =
|
55
|
-
except
|
56
|
+
response = requests.get(url, timeout=10, allow_redirects=True, **kwargs)
|
57
|
+
except ConnectionError as error:
|
56
58
|
return {
|
57
59
|
"@id": url,
|
58
60
|
"@type": "WebPage",
|
commonmeta/schema_utils.py
CHANGED
commonmeta/translators.py
CHANGED
commonmeta/utils.py
CHANGED
@@ -408,14 +408,36 @@ def openalex_api_url(id: str, identifier_type: str, **kwargs) -> str:
|
|
408
408
|
|
409
409
|
def openalex_api_query_url(query: dict) -> str:
|
410
410
|
"""Return the OpenAlex API query URL"""
|
411
|
+
# Define allowed types
|
412
|
+
types = [
|
413
|
+
"article", "book-chapter", "dataset", "preprint", "dissertation",
|
414
|
+
"book", "review", "paratext", "libguides", "letter", "other",
|
415
|
+
"reference-entry", "report", "editorial", "peer-review", "erratum",
|
416
|
+
"standard", "grant", "supplementary-materials", "retraction",
|
417
|
+
]
|
418
|
+
|
411
419
|
url = "https://api.openalex.org/works"
|
412
420
|
f = furl(url)
|
413
|
-
|
414
|
-
|
421
|
+
|
422
|
+
# Handle pagination and sample parameters
|
423
|
+
number = max(1, min(1000, int(query.get("number", query.get("rows", 10)))))
|
424
|
+
page = max(1, int(query.get("page", 1)))
|
425
|
+
|
426
|
+
sample = query.get("sample", False)
|
427
|
+
if sample:
|
428
|
+
f.args["sample"] = str(number)
|
429
|
+
else:
|
430
|
+
f.args["per-page"] = str(number)
|
431
|
+
f.args["page"] = str(page)
|
432
|
+
# Sort results by published date in descending order
|
433
|
+
f.args["sort"] = "publication_date:desc"
|
434
|
+
|
435
|
+
# Build filters
|
415
436
|
filters = []
|
437
|
+
queries = []
|
416
438
|
_query = None
|
417
|
-
_filter = None
|
418
439
|
|
440
|
+
# Handle query parameters
|
419
441
|
if query.get("query", None) is not None:
|
420
442
|
queries += [query.get("query")]
|
421
443
|
for key, value in query.items():
|
@@ -428,23 +450,60 @@ def openalex_api_query_url(query: dict) -> str:
|
|
428
450
|
queries += [f"{key}:{value}"]
|
429
451
|
if queries:
|
430
452
|
_query = ",".join(queries)
|
453
|
+
f.args["query"] = _query
|
454
|
+
|
455
|
+
# Member/IDs filter
|
456
|
+
ids = query.get("ids", query.get("member", ""))
|
457
|
+
if ids:
|
458
|
+
filters.append(f"member:{ids}")
|
459
|
+
|
460
|
+
# Type filter
|
461
|
+
type_ = query.get("type_", query.get("type", ""))
|
462
|
+
if type_ and type_ in types:
|
463
|
+
filters.append(f"type:{type_}")
|
431
464
|
|
465
|
+
# ROR filter
|
466
|
+
ror = query.get("ror", "")
|
467
|
+
if ror:
|
468
|
+
r = validate_ror(ror)
|
469
|
+
if r:
|
470
|
+
filters.append(f"authorships.institutions.ror:{r}")
|
471
|
+
|
472
|
+
# ORCID filter
|
473
|
+
orcid = query.get("orcid", "")
|
474
|
+
if orcid:
|
475
|
+
o = validate_orcid(orcid)
|
476
|
+
if o:
|
477
|
+
filters.append(f"authorships.author.id:{o}")
|
478
|
+
|
479
|
+
# Year filter
|
480
|
+
year = query.get("year", query.get("publication_year", ""))
|
481
|
+
if year:
|
482
|
+
filters.append(f"publication_year:{year}")
|
483
|
+
|
484
|
+
# Other filters from the original function
|
432
485
|
for key, value in query.items():
|
433
486
|
if key in [
|
434
487
|
"prefix",
|
435
|
-
"member",
|
436
|
-
"type",
|
437
488
|
"has-full-text",
|
438
|
-
"has-references",
|
439
|
-
"has-orcid",
|
440
489
|
"has-funder",
|
441
490
|
"has-license",
|
442
491
|
]:
|
443
|
-
filters
|
444
|
-
|
445
|
-
|
492
|
+
filters.append(f"{key}:{value}")
|
493
|
+
|
494
|
+
# Boolean filters
|
495
|
+
# if query.get("hasORCID", query.get("has-orcid", False)):
|
496
|
+
# filters.append("has-orcid:true")
|
497
|
+
|
498
|
+
# if query.get("hasReferences", query.get("has-references", False)):
|
499
|
+
# filters.append("has-references:true")
|
446
500
|
|
447
|
-
|
501
|
+
# if query.get("hasAbstract", query.get("has-abstract", False)):
|
502
|
+
# filters.append("has-abstract:true")
|
503
|
+
|
504
|
+
# Add filters to params if any exist
|
505
|
+
if filters:
|
506
|
+
f.args["filter"] = ",".join(filters)
|
448
507
|
|
449
508
|
return f.url
|
450
509
|
|
@@ -1,13 +1,18 @@
|
|
1
1
|
"""Citation writer for commonmeta-py"""
|
2
2
|
|
3
|
-
import orjson as json
|
4
3
|
import re
|
5
|
-
|
6
|
-
|
7
|
-
from citeproc import
|
8
|
-
|
4
|
+
|
5
|
+
import orjson as json
|
6
|
+
from citeproc import (
|
7
|
+
Citation,
|
8
|
+
CitationItem,
|
9
|
+
CitationStylesBibliography,
|
10
|
+
CitationStylesStyle,
|
11
|
+
formatter,
|
12
|
+
)
|
9
13
|
from citeproc.source.json import CiteProcJSON
|
10
14
|
from citeproc_styles import get_style_filepath
|
15
|
+
from pydash import py_
|
11
16
|
|
12
17
|
|
13
18
|
def write_citation(metadata):
|
commonmeta/writers/csl_writer.py
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
"""CSL-JSON writer for commonmeta-py"""
|
2
2
|
|
3
|
-
import orjson as json
|
4
3
|
from typing import Optional
|
5
4
|
|
6
|
-
|
7
|
-
|
5
|
+
import orjson as json
|
6
|
+
|
7
|
+
from ..base_utils import compact, parse_attributes, presence, wrap
|
8
|
+
from ..constants import CM_TO_CSL_TRANSLATIONS, Commonmeta
|
8
9
|
from ..date_utils import get_date_parts
|
9
10
|
from ..doi_utils import doi_from_url
|
10
|
-
from ..
|
11
|
+
from ..utils import pages_as_string, to_csl
|
11
12
|
|
12
13
|
|
13
14
|
def write_csl(metadata: Commonmeta) -> Optional[str]:
|
@@ -1,19 +1,20 @@
|
|
1
1
|
"""DataCite writer for commonmeta-py"""
|
2
2
|
|
3
|
-
import orjson as json
|
4
3
|
from typing import Optional, Union
|
5
4
|
|
6
|
-
|
7
|
-
|
5
|
+
import orjson as json
|
6
|
+
|
7
|
+
from ..base_utils import compact, wrap
|
8
8
|
from ..constants import (
|
9
9
|
CM_TO_BIB_TRANSLATIONS,
|
10
|
-
CM_TO_CSL_TRANSLATIONS,
|
11
10
|
CM_TO_CR_TRANSLATIONS,
|
11
|
+
CM_TO_CSL_TRANSLATIONS,
|
12
12
|
CM_TO_DC_TRANSLATIONS,
|
13
13
|
CM_TO_RIS_TRANSLATIONS,
|
14
14
|
CM_TO_SO_TRANSLATIONS,
|
15
15
|
Commonmeta,
|
16
16
|
)
|
17
|
+
from ..doi_utils import doi_from_url, normalize_doi
|
17
18
|
|
18
19
|
|
19
20
|
def write_datacite(metadata: Commonmeta) -> Optional[Union[str, dict]]:
|
@@ -1,23 +1,24 @@
|
|
1
1
|
"""InvenioRDM writer for commonmeta-py"""
|
2
2
|
|
3
|
-
import orjson as json
|
4
3
|
from typing import Optional
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
from ..
|
5
|
+
import orjson as json
|
6
|
+
|
7
|
+
from ..base_utils import compact, parse_attributes, presence, wrap
|
9
8
|
from ..constants import (
|
10
9
|
CM_TO_INVENIORDM_TRANSLATIONS,
|
11
|
-
INVENIORDM_IDENTIFIER_TYPES,
|
12
10
|
CROSSREF_FUNDER_ID_TO_ROR_TRANSLATIONS,
|
11
|
+
INVENIORDM_IDENTIFIER_TYPES,
|
13
12
|
)
|
13
|
+
from ..date_utils import get_iso8601_date
|
14
|
+
from ..doi_utils import doi_from_url, normalize_doi
|
14
15
|
from ..utils import (
|
16
|
+
FOS_MAPPINGS,
|
15
17
|
get_language,
|
16
|
-
validate_orcid,
|
17
|
-
validate_ror,
|
18
18
|
id_from_url,
|
19
19
|
normalize_url,
|
20
|
-
|
20
|
+
validate_orcid,
|
21
|
+
validate_ror,
|
21
22
|
)
|
22
23
|
|
23
24
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: commonmeta-py
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.107
|
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
|
@@ -8,37 +8,39 @@ Project-URL: Documentation, https://python.commonmeta.org
|
|
8
8
|
Author-email: Martin Fenner <martin@front-matter.io>
|
9
9
|
License-Expression: MIT
|
10
10
|
License-File: LICENSE
|
11
|
-
Keywords: bibtex,commonmeta,crossref,csl,datacite,metadata,science
|
11
|
+
Keywords: bibtex,commonmeta,crossref,csl,datacite,inveniordm,metadata,openalex,schemaorg,science
|
12
12
|
Requires-Python: <4.0,>=3.9
|
13
13
|
Requires-Dist: base32-lib~=1.0
|
14
|
-
Requires-Dist: beautifulsoup4
|
14
|
+
Requires-Dist: beautifulsoup4<5,>=4.11
|
15
15
|
Requires-Dist: bibtexparser~=1.4
|
16
|
-
Requires-Dist: citeproc-py-styles
|
17
|
-
Requires-Dist: citeproc-py<
|
16
|
+
Requires-Dist: citeproc-py-styles<1,>=0.1.2
|
17
|
+
Requires-Dist: citeproc-py<1,>=0.6
|
18
18
|
Requires-Dist: click<9,>=8.1.7
|
19
|
-
Requires-Dist: datacite
|
19
|
+
Requires-Dist: datacite<2,>=1.1.1
|
20
20
|
Requires-Dist: dateparser<2,>=1.1.7
|
21
21
|
Requires-Dist: edtf<6,>=5.0.0
|
22
22
|
Requires-Dist: furl<3,>=2.1.3
|
23
|
-
Requires-Dist: httpx<0.29,>=0.28
|
24
23
|
Requires-Dist: jsonschema~=4.21
|
25
24
|
Requires-Dist: lxml>=4.8
|
26
|
-
Requires-Dist:
|
25
|
+
Requires-Dist: marshmallow-utils>=0.10.0
|
26
|
+
Requires-Dist: nameparser<2,>=1.1.1
|
27
27
|
Requires-Dist: nh3<0.3,>=0.2.14
|
28
28
|
Requires-Dist: orjson<4,>=3.9.14
|
29
29
|
Requires-Dist: orjsonl<2,>=1.0.0
|
30
30
|
Requires-Dist: pikepdf<10.0,>=8.14
|
31
|
-
Requires-Dist: pycountry
|
32
|
-
Requires-Dist: pydash<9,>=
|
31
|
+
Requires-Dist: pycountry>=22.3.5
|
32
|
+
Requires-Dist: pydash<9,>=6
|
33
33
|
Requires-Dist: pyjwt<3,>=2.8.0
|
34
34
|
Requires-Dist: python-dateutil<3,>=2.8.2
|
35
|
-
Requires-Dist: pyyaml
|
35
|
+
Requires-Dist: pyyaml>=5.4
|
36
|
+
Requires-Dist: requests>=2.31.0
|
37
|
+
Requires-Dist: requests>=2.32.3
|
36
38
|
Requires-Dist: simplejson~=3.18
|
37
|
-
Requires-Dist: types-beautifulsoup4
|
39
|
+
Requires-Dist: types-beautifulsoup4<5,>=4.11
|
38
40
|
Requires-Dist: types-dateparser~=1.1
|
39
|
-
Requires-Dist: types-pyyaml
|
40
|
-
Requires-Dist: types-xmltodict<0.
|
41
|
-
Requires-Dist: xmltodict<0.
|
41
|
+
Requires-Dist: types-pyyaml>=5.4
|
42
|
+
Requires-Dist: types-xmltodict<0.20,>=0.13
|
43
|
+
Requires-Dist: xmltodict<0.20,>=0.12
|
42
44
|
Description-Content-Type: text/markdown
|
43
45
|
|
44
46
|
[](https://zenodo.org/doi/10.5281/zenodo.8340374)
|
@@ -1,32 +1,32 @@
|
|
1
|
-
commonmeta/__init__.py,sha256
|
2
|
-
commonmeta/api_utils.py,sha256
|
3
|
-
commonmeta/author_utils.py,sha256=
|
4
|
-
commonmeta/base_utils.py,sha256
|
1
|
+
commonmeta/__init__.py,sha256=Vz7vv934Mmzs1qxlSSx2bkuMVYtdkFJvvikHMihyzAA,2220
|
2
|
+
commonmeta/api_utils.py,sha256=jkM1d4jgvdZ5k0gkLeg8NDXsizPEesiHNB9sF7P-gFA,2687
|
3
|
+
commonmeta/author_utils.py,sha256=3lYW5s1rOUWNTKs1FP6XLfEUY3yCLOe_3L_VdJTDMp0,8585
|
4
|
+
commonmeta/base_utils.py,sha256=TCaMENjyySStUxFowg6R08Vt5eLkHfW7WjdEHVcAZWo,3752
|
5
5
|
commonmeta/cli.py,sha256=_sMYNzfiEgQ1qx6tZPMbOp1GZ9BBiWe0fYF3jJlamKU,6251
|
6
6
|
commonmeta/constants.py,sha256=NuugDPtaAlYx7d-0WKPHNO-qnjt4rzcj-EbzL2vSi2Q,19259
|
7
|
-
commonmeta/crossref_utils.py,sha256=
|
8
|
-
commonmeta/date_utils.py,sha256=
|
9
|
-
commonmeta/doi_utils.py,sha256=
|
7
|
+
commonmeta/crossref_utils.py,sha256=odkcP_Ivk0Fs_BvUzxdPQ4F2098RIsKQT_NbZGQXo4A,24354
|
8
|
+
commonmeta/date_utils.py,sha256=H2cCobX0JREIUOT_cCigGd3MG7prGiQpXk1m4ZNrFwU,6318
|
9
|
+
commonmeta/doi_utils.py,sha256=ZztajfOLtnASk1BbQ1Y2Q4B_xxlnbujn7Opx5a1U5vY,9582
|
10
10
|
commonmeta/metadata.py,sha256=qgqbrvxPEbYn0pKIArhpaGjIeiHeuubc6nF37QgWp2Y,16702
|
11
|
-
commonmeta/schema_utils.py,sha256=
|
12
|
-
commonmeta/translators.py,sha256=
|
13
|
-
commonmeta/utils.py,sha256=
|
11
|
+
commonmeta/schema_utils.py,sha256=yEb8Bt7WqjfQW5y15TV1uaZZdK_k9Ufz6V7Nq7Ywhi0,917
|
12
|
+
commonmeta/translators.py,sha256=CBMK4jrXRmGZiAhCh6wsJjhbDJWbcsda8UvXFXxccAw,1363
|
13
|
+
commonmeta/utils.py,sha256=G4BL_YQ-Ug0XwBHU4L83OViRQCiyOqZXg5uJC7WQZ2A,50462
|
14
14
|
commonmeta/readers/__init__.py,sha256=vOf7UsOKNoh_ZCuyexxhAmPMt8wjB-pF_CfpWRaN8pk,45
|
15
15
|
commonmeta/readers/bibtex_reader.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
|
-
commonmeta/readers/cff_reader.py,sha256=
|
17
|
-
commonmeta/readers/codemeta_reader.py,sha256=
|
16
|
+
commonmeta/readers/cff_reader.py,sha256=kIG-OKGQz37oWL6cU3Cz7HQ83DnRCmQ2PKSjIDodSp8,6152
|
17
|
+
commonmeta/readers/codemeta_reader.py,sha256=NUpdFXZZKR_sj2dT62ch9n3KEx-VcTWnsF5cHdAQ8JM,3666
|
18
18
|
commonmeta/readers/commonmeta_reader.py,sha256=46XrCr2whkUP4uiaNiFXS7ABwowcRdWcLG-3OcfhVdk,303
|
19
|
-
commonmeta/readers/crossref_reader.py,sha256=
|
20
|
-
commonmeta/readers/crossref_xml_reader.py,sha256=
|
19
|
+
commonmeta/readers/crossref_reader.py,sha256=xvFrSBtKb4A83t61R7QfruZQ96IVxBZpODYny0vuRjA,12604
|
20
|
+
commonmeta/readers/crossref_xml_reader.py,sha256=f4bBueit6DAlRNtUVaDs5p3wkT6wmNEz8ffQAj0BobY,18730
|
21
21
|
commonmeta/readers/csl_reader.py,sha256=OxzC2AZKfv43BCah4XGYvlK_LUK-5mxXFcjdzB5vv_o,3216
|
22
|
-
commonmeta/readers/datacite_reader.py,sha256=
|
23
|
-
commonmeta/readers/datacite_xml_reader.py,sha256=
|
24
|
-
commonmeta/readers/inveniordm_reader.py,sha256=
|
25
|
-
commonmeta/readers/json_feed_reader.py,sha256=
|
22
|
+
commonmeta/readers/datacite_reader.py,sha256=kO_Frddha0qzamz20XzXfU9G1NkdTOVr4K8qmhbSlZY,12068
|
23
|
+
commonmeta/readers/datacite_xml_reader.py,sha256=zJSuN9pnWplYFH7V1eneh0OjKTFCNkOLmEMf6fU6_xg,13048
|
24
|
+
commonmeta/readers/inveniordm_reader.py,sha256=6LkT6R20jSFqDdZqAzcREHbdAcIPHiYJvxKsK_mpDdw,8374
|
25
|
+
commonmeta/readers/json_feed_reader.py,sha256=edF4jirGRpvE0SMosXtjAS9_LCJt0WjwRcG1Rn4a3KE,14522
|
26
26
|
commonmeta/readers/kbase_reader.py,sha256=KH3loJvuq2bm8zAYIUG7hTsr5-2Anj3NQvoJUDiqmss,6764
|
27
|
-
commonmeta/readers/openalex_reader.py,sha256=
|
27
|
+
commonmeta/readers/openalex_reader.py,sha256=4HUkBsut_iUjhUcC5c1GHgxnKsYQc-fgY43QILgVZEg,12826
|
28
28
|
commonmeta/readers/ris_reader.py,sha256=oQ3G7qQmNwhr4cNp-Gv5UW28J2K1oKpBlPh-tjRtnpQ,3678
|
29
|
-
commonmeta/readers/schema_org_reader.py,sha256=
|
29
|
+
commonmeta/readers/schema_org_reader.py,sha256=AlFMmuUovqlMYkwL9F1Um6bX5vIWzhqmreHCrzsC3rU,17275
|
30
30
|
commonmeta/resources/cff_v1.2.0.json,sha256=MpfjDYgX7fN9PLiG54ISZ2uu9WItNqfh-yaRuTf6Ptg,46691
|
31
31
|
commonmeta/resources/commonmeta_v0.12.json,sha256=HUSNReXh2JN3Q6YWSt7CE69js8dh50OlpMYGTyU98oU,16762
|
32
32
|
commonmeta/resources/commonmeta_v0.13.json,sha256=2-WSZGijR13zVu97S_YHXr-cyeLW7hzHXYMlr6nIjdw,15787
|
@@ -37,8 +37,6 @@ commonmeta/resources/crossref-v0.2.json,sha256=THbFem4IDSE-TFNOtP1-NOmZhED2dlLBs
|
|
37
37
|
commonmeta/resources/csl-data.json,sha256=I7LAYtdSYGD0YxuwS0s7ojfkiEhCU-MnvQD6aRhhuBE,12222
|
38
38
|
commonmeta/resources/datacite-v4.5.json,sha256=ocpQNSbORPJf5Ogidy6M6EHundgv7DSgIqRco02KgM4,18970
|
39
39
|
commonmeta/resources/datacite-v4.5pr.json,sha256=2A1fKDid_hNfKc5YLjOjtXUobJovU3so9lNkTXVS3sw,21092
|
40
|
-
commonmeta/resources/ietf-bcp-47.json,sha256=QQUmtIleKwywDfilVLlxzhf7XA4T46LdtLZic5XwDco,228225
|
41
|
-
commonmeta/resources/iso-8601.json,sha256=SJpMPOyep2ujMnTw7PeL_KjF4tNPjx5E0n7KslCm2_I,246361
|
42
40
|
commonmeta/resources/spdx-schema.json,sha256=Zq3_ad54nFivIkbnnqGPXEcXcDHJ_KuA6WIBSjmeJq8,47334
|
43
41
|
commonmeta/resources/crossref/AccessIndicators.xsd,sha256=en-G2FFt4ewIFRw5C6g4YA8Nc0M66fCM2CygiO_ZqqY,2825
|
44
42
|
commonmeta/resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd,sha256=l5jJMFm4xx09bavH2Gc3EqIdr-0PTf6M9YBTNpUaZhY,415409
|
@@ -63,16 +61,16 @@ commonmeta/resources/styles/modern-language-association.csl,sha256=HI2iU4krze1aH
|
|
63
61
|
commonmeta/resources/styles/vancouver.csl,sha256=lun3_i2oTilgsANk4LjFao2UDPQlGj_hgFgKAWC_DF8,12878
|
64
62
|
commonmeta/writers/__init__.py,sha256=47-snms6xBHkoEXKYV1DBtH1npAtlVtvY29Z4Zr45qI,45
|
65
63
|
commonmeta/writers/bibtex_writer.py,sha256=RjxpFt19N2PjX7cNtvN8kMYTxLWp_KhLYTsQNxYiC-4,4972
|
66
|
-
commonmeta/writers/citation_writer.py,sha256=
|
67
|
-
commonmeta/writers/commonmeta_writer.py,sha256=
|
68
|
-
commonmeta/writers/crossref_xml_writer.py,sha256=
|
69
|
-
commonmeta/writers/csl_writer.py,sha256=
|
70
|
-
commonmeta/writers/datacite_writer.py,sha256=
|
71
|
-
commonmeta/writers/inveniordm_writer.py,sha256=
|
64
|
+
commonmeta/writers/citation_writer.py,sha256=qs_4X3BjrSqHexmJFPvPDTp0mRIqzb0F70_Wuc7S9x0,2343
|
65
|
+
commonmeta/writers/commonmeta_writer.py,sha256=erIIcAGBy9cZb6FWSR6P0qzxr1c6iS3oCgKbGAsA94o,1871
|
66
|
+
commonmeta/writers/crossref_xml_writer.py,sha256=REORiWPyT2x13Y66IT1RNtOwB9NWutrzNCt_HLeQrsY,494
|
67
|
+
commonmeta/writers/csl_writer.py,sha256=IU70HwS77DD-NhQjc4TEGQVSaF-1TgIvyVR9E_zOqy0,2809
|
68
|
+
commonmeta/writers/datacite_writer.py,sha256=vijXscY411UMC72WL9VUYJhBtH6ZCPQTk8xtCo1jYtQ,6306
|
69
|
+
commonmeta/writers/inveniordm_writer.py,sha256=vGCItVrxkzPgvV-_m-cYnxTSux6mc3eer4JpI-10JhU,11430
|
72
70
|
commonmeta/writers/ris_writer.py,sha256=CXd9MiSHOMLReeGmr1moqteiq4x8AtLNYVS60s-aq8I,2094
|
73
71
|
commonmeta/writers/schema_org_writer.py,sha256=J2Y-krzyhgBZ6n__S_YvdjUtwiCm-RUtpGA_esFZUwg,5742
|
74
|
-
commonmeta_py-0.
|
75
|
-
commonmeta_py-0.
|
76
|
-
commonmeta_py-0.
|
77
|
-
commonmeta_py-0.
|
78
|
-
commonmeta_py-0.
|
72
|
+
commonmeta_py-0.107.dist-info/METADATA,sha256=1jO_8bgd6pHyUSLCr_LKKRwEYy73kXIgJJaEBowdalw,7552
|
73
|
+
commonmeta_py-0.107.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
74
|
+
commonmeta_py-0.107.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
|
75
|
+
commonmeta_py-0.107.dist-info/licenses/LICENSE,sha256=wsIvxF9Q9GC9vA_s79zTWP3BkXJdfUNRmALlU8GbW1s,1074
|
76
|
+
commonmeta_py-0.107.dist-info/RECORD,,
|