commonmeta-py 0.132__tar.gz → 0.134__tar.gz

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.
Files changed (90) hide show
  1. {commonmeta_py-0.132 → commonmeta_py-0.134}/PKG-INFO +1 -1
  2. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/__init__.py +1 -1
  3. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/cli.py +7 -0
  4. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/doi_utils.py +6 -7
  5. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/jsonfeed_reader.py +9 -6
  6. {commonmeta_py-0.132 → commonmeta_py-0.134}/pyproject.toml +1 -1
  7. {commonmeta_py-0.132 → commonmeta_py-0.134}/.gitignore +0 -0
  8. {commonmeta_py-0.132 → commonmeta_py-0.134}/LICENSE +0 -0
  9. {commonmeta_py-0.132 → commonmeta_py-0.134}/README.md +0 -0
  10. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/api_utils.py +0 -0
  11. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/author_utils.py +0 -0
  12. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/base_utils.py +0 -0
  13. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/constants.py +0 -0
  14. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/date_utils.py +0 -0
  15. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/file_utils.py +0 -0
  16. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/metadata.py +0 -0
  17. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/__init__.py +0 -0
  18. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/bibtex_reader.py +0 -0
  19. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/cff_reader.py +0 -0
  20. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/codemeta_reader.py +0 -0
  21. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/commonmeta_reader.py +0 -0
  22. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/crossref_reader.py +0 -0
  23. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/crossref_xml_reader.py +0 -0
  24. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/csl_reader.py +0 -0
  25. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/datacite_reader.py +0 -0
  26. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/datacite_xml_reader.py +0 -0
  27. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/inveniordm_reader.py +0 -0
  28. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/kbase_reader.py +0 -0
  29. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/openalex_reader.py +0 -0
  30. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/ris_reader.py +0 -0
  31. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/readers/schema_org_reader.py +0 -0
  32. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/cff_v1.2.0.json +0 -0
  33. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/commonmeta_v0.12.json +0 -0
  34. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/commonmeta_v0.13.json +0 -0
  35. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/commonmeta_v0.14.json +0 -0
  36. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/commonmeta_v0.15.json +0 -0
  37. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/commonmeta_v0.16.json +0 -0
  38. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/AccessIndicators.xsd +0 -0
  39. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd +0 -0
  40. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd +0 -0
  41. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/JATS-journalpublishing1-elements.xsd +0 -0
  42. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/JATS-journalpublishing1-mathml3-elements.xsd +0 -0
  43. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/JATS-journalpublishing1-mathml3.xsd +0 -0
  44. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/JATS-journalpublishing1.xsd +0 -0
  45. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/clinicaltrials.xsd +0 -0
  46. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/common5.4.0.xsd +0 -0
  47. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/crossref5.4.0.xsd +0 -0
  48. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/crossref_query_output3.0.xsd +0 -0
  49. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/doi_resources5.4.0.xsd +0 -0
  50. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/fundingdata5.4.0.xsd +0 -0
  51. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/fundref.xsd +0 -0
  52. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/languages5.4.0.xsd +0 -0
  53. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/mediatypes5.4.0.xsd +0 -0
  54. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/module-ali.xsd +0 -0
  55. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/relations.xsd +0 -0
  56. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/mathml3/mathml3-common.xsd +0 -0
  57. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/mathml3/mathml3-content.xsd +0 -0
  58. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/mathml3/mathml3-presentation.xsd +0 -0
  59. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/mathml3/mathml3-strict-content.xsd +0 -0
  60. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/mathml3/mathml3.xsd +0 -0
  61. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/mathml3/module-ali.xsd +0 -0
  62. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/module-ali.xsd +0 -0
  63. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/xlink.xsd +0 -0
  64. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/standard-modules/xml.xsd +0 -0
  65. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref/xml.xsd +0 -0
  66. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/crossref-v0.2.json +0 -0
  67. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/csl-data.json +0 -0
  68. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/datacite-v4.5.json +0 -0
  69. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/datacite-v4.5pr.json +0 -0
  70. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/spdx/licenses.json +0 -0
  71. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/spdx-schema.json +0 -0
  72. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/styles/apa.csl +0 -0
  73. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/styles/chicago-author-date.csl +0 -0
  74. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/styles/harvard-cite-them-right.csl +0 -0
  75. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/styles/ieee.csl +0 -0
  76. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/styles/modern-language-association.csl +0 -0
  77. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/resources/styles/vancouver.csl +0 -0
  78. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/schema_utils.py +0 -0
  79. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/translators.py +0 -0
  80. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/utils.py +0 -0
  81. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/__init__.py +0 -0
  82. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/bibtex_writer.py +0 -0
  83. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/citation_writer.py +0 -0
  84. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/commonmeta_writer.py +0 -0
  85. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/crossref_xml_writer.py +0 -0
  86. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/csl_writer.py +0 -0
  87. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/datacite_writer.py +0 -0
  88. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/inveniordm_writer.py +0 -0
  89. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/ris_writer.py +0 -0
  90. {commonmeta_py-0.132 → commonmeta_py-0.134}/commonmeta/writers/schema_org_writer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonmeta-py
3
- Version: 0.132
3
+ Version: 0.134
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
@@ -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.132"
13
+ __version__ = "0.134"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
@@ -1,3 +1,4 @@
1
+ import importlib.metadata
1
2
  import time
2
3
 
3
4
  import click
@@ -280,5 +281,11 @@ def update_ghost_post(id, api_key, api_url):
280
281
  click.echo(output)
281
282
 
282
283
 
284
+ @cli.command()
285
+ def version():
286
+ version = importlib.metadata.version("commonmeta-py")
287
+ click.echo(f"commonmeta-py {version}")
288
+
289
+
283
290
  if __name__ == "__main__":
284
291
  cli()
@@ -356,29 +356,28 @@ def generate_wordpress_doi(prefix: str, slug: str, guid: str) -> str:
356
356
  return doi
357
357
 
358
358
 
359
- def generate_doi_from_guid(prefix: str, guid: str, checksum=True) -> Optional[str]:
359
+ def validate_doi_from_guid(prefix: str, guid: str, checksum=True) -> bool:
360
360
  """Validates a GUID that is a DOI"""
361
361
  import base32_lib as base32
362
362
 
363
363
  if not prefix:
364
- return ""
364
+ return False
365
365
 
366
366
  doi = normalize_doi(guid)
367
367
  if not doi:
368
- return ""
368
+ return False
369
369
 
370
370
  p = validate_prefix(doi)
371
371
  if not p or p != prefix:
372
- return ""
372
+ return False
373
373
 
374
374
  suffix = doi.split("/")[-1]
375
375
 
376
376
  try:
377
377
  number = base32.decode(suffix, checksum)
378
- if number != 0:
379
- return doi
378
+ return number != 0
380
379
  except (ValueError, IndexError):
381
- return None
380
+ return False
382
381
 
383
382
 
384
383
  def generate_substack_doi(prefix: str, guid: str) -> str:
@@ -13,12 +13,12 @@ from ..date_utils import get_date_from_unix_timestamp
13
13
  from ..doi_utils import (
14
14
  doi_from_url,
15
15
  encode_doi,
16
- generate_doi_from_guid,
17
16
  generate_substack_doi,
18
17
  generate_wordpress_doi,
19
18
  is_rogue_scholar_doi,
20
19
  normalize_doi,
21
20
  validate_doi,
21
+ validate_doi_from_guid,
22
22
  validate_prefix,
23
23
  )
24
24
  from ..utils import (
@@ -74,11 +74,14 @@ def read_jsonfeed(data: Optional[dict], **kwargs) -> Commonmeta:
74
74
  _id = generate_wordpress_doi(prefix, slug, guid)
75
75
  elif generator == "Substack" and prefix and guid:
76
76
  _id = generate_substack_doi(prefix, guid)
77
- elif prefix and guid:
78
- # don't use checksum as some legacy GUIDs (generated with commonmeta Go between May 2024
79
- # and April 2025) don't have valued checksum
80
- guid = guid[:-2] # remove checksum
81
- _id = generate_doi_from_guid(prefix, guid, checksum=False)
77
+ # don't use checksum as some legacy GUIDs (generated with commonmeta Go between May 2024
78
+ # and April 2025) don't have valid checksum
79
+ elif (
80
+ prefix
81
+ and guid
82
+ and validate_doi_from_guid(prefix, guid[:-2], checksum=False)
83
+ ):
84
+ _id = guid
82
85
 
83
86
  # If still no DOI but prefix provided and not registered for DOI generation
84
87
  elif py_.get(meta, "blog.prefix") and not py_.get(meta, "blog.doi_reg", False):
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "commonmeta-py"
3
- version = "0.132"
3
+ version = "0.134"
4
4
  description = "Library for conversions to/from the Commonmeta scholarly metadata format"
5
5
  authors = [{ name = "Martin Fenner", email = "martin@front-matter.io" }]
6
6
  requires-python = ">=3.9,<4.0"
File without changes
File without changes
File without changes