commonmeta-py 0.107__py3-none-any.whl → 0.108__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.
Files changed (47) hide show
  1. commonmeta/__init__.py +12 -15
  2. commonmeta/api_utils.py +3 -2
  3. commonmeta/base_utils.py +186 -3
  4. commonmeta/cli.py +114 -34
  5. commonmeta/constants.py +20 -0
  6. commonmeta/file_utils.py +112 -0
  7. commonmeta/metadata.py +102 -42
  8. commonmeta/readers/codemeta_reader.py +1 -1
  9. commonmeta/readers/crossref_reader.py +23 -10
  10. commonmeta/readers/crossref_xml_reader.py +1 -1
  11. commonmeta/readers/datacite_reader.py +6 -4
  12. commonmeta/readers/{json_feed_reader.py → jsonfeed_reader.py} +12 -12
  13. commonmeta/resources/crossref/common5.4.0.xsd +1264 -0
  14. commonmeta/resources/crossref/{crossref5.3.1.xsd → crossref5.4.0.xsd} +286 -88
  15. commonmeta/resources/crossref/doi_resources5.4.0.xsd +117 -0
  16. commonmeta/resources/crossref/fundingdata5.4.0.xsd +59 -0
  17. commonmeta/resources/crossref/fundref.xsd +29 -19
  18. commonmeta/resources/crossref/languages5.4.0.xsd +8119 -0
  19. commonmeta/resources/crossref/mediatypes5.4.0.xsd +2207 -0
  20. commonmeta/resources/crossref/module-ali.xsd +14 -6
  21. commonmeta/resources/crossref/standard-modules/mathml3/mathml3-common.xsd +101 -0
  22. commonmeta/resources/crossref/standard-modules/mathml3/mathml3-content.xsd +683 -0
  23. commonmeta/resources/crossref/standard-modules/mathml3/mathml3-presentation.xsd +2092 -0
  24. commonmeta/resources/crossref/standard-modules/mathml3/mathml3-strict-content.xsd +186 -0
  25. commonmeta/resources/crossref/standard-modules/mathml3/mathml3.xsd +9 -0
  26. commonmeta/resources/crossref/standard-modules/mathml3/module-ali.xsd +47 -0
  27. commonmeta/resources/crossref/standard-modules/module-ali.xsd +47 -0
  28. commonmeta/resources/crossref/standard-modules/xlink.xsd +100 -0
  29. commonmeta/resources/crossref/standard-modules/xml.xsd +287 -0
  30. commonmeta/resources/crossref/xml.xsd +287 -0
  31. commonmeta/schema_utils.py +25 -0
  32. commonmeta/utils.py +25 -9
  33. commonmeta/writers/bibtex_writer.py +5 -5
  34. commonmeta/writers/commonmeta_writer.py +4 -17
  35. commonmeta/writers/crossref_xml_writer.py +1031 -4
  36. commonmeta/writers/csl_writer.py +1 -2
  37. commonmeta/writers/datacite_writer.py +8 -4
  38. commonmeta/writers/inveniordm_writer.py +277 -2
  39. commonmeta/writers/ris_writer.py +3 -3
  40. commonmeta/writers/schema_org_writer.py +10 -5
  41. {commonmeta_py-0.107.dist-info → commonmeta_py-0.108.dist-info}/METADATA +4 -2
  42. {commonmeta_py-0.107.dist-info → commonmeta_py-0.108.dist-info}/RECORD +45 -31
  43. commonmeta/crossref_utils.py +0 -662
  44. commonmeta/resources/crossref/common5.3.1.xsd +0 -1538
  45. {commonmeta_py-0.107.dist-info → commonmeta_py-0.108.dist-info}/WHEEL +0 -0
  46. {commonmeta_py-0.107.dist-info → commonmeta_py-0.108.dist-info}/entry_points.txt +0 -0
  47. {commonmeta_py-0.107.dist-info → commonmeta_py-0.108.dist-info}/licenses/LICENSE +0 -0
@@ -1,15 +1,15 @@
1
1
  """Bibtex writer for commonmeta-py"""
2
2
 
3
- from bibtexparser.bwriter import BibTexWriter
4
3
  from bibtexparser.bibdatabase import BibDatabase
4
+ from bibtexparser.bwriter import BibTexWriter
5
5
  from bibtexparser.customization import page_double_hyphen
6
6
 
7
- from ..utils import pages_as_string, get_language
8
- from ..base_utils import compact
9
7
  from ..author_utils import authors_as_string
10
- from ..date_utils import get_month_from_date, get_iso8601_date, MONTH_SHORT_NAMES
11
- from ..doi_utils import doi_from_url
8
+ from ..base_utils import compact
12
9
  from ..constants import CM_TO_BIB_TRANSLATIONS, Commonmeta
10
+ from ..date_utils import MONTH_SHORT_NAMES, get_iso8601_date, get_month_from_date
11
+ from ..doi_utils import doi_from_url
12
+ from ..utils import get_language, pages_as_string
13
13
 
14
14
 
15
15
  def write_bibtex(metadata: Commonmeta) -> str:
@@ -1,7 +1,5 @@
1
1
  """Commonmeta writer for commonmeta-py"""
2
2
 
3
- import orjson as json
4
- import orjsonl
5
3
  import pydash as py_
6
4
 
7
5
  from ..base_utils import compact
@@ -33,12 +31,12 @@ def write_commonmeta(metadata):
33
31
  "funding_references": "fundingReferences",
34
32
  },
35
33
  )
36
- return json.dumps(compact(data), option=json.OPT_INDENT_2)
34
+ return compact(data)
37
35
 
38
36
 
39
37
  def write_commonmeta_list(metalist):
40
- """Write commonmeta list. If filename is provided,
41
- write to file. Optionally, use JSON Lines format."""
38
+ """Write commonmeta list. If file is provided,
39
+ write to file. Supports JSON, JSON Lines and YAML format."""
42
40
  if metalist is None:
43
41
  return None
44
42
 
@@ -48,7 +46,7 @@ def write_commonmeta_list(metalist):
48
46
  return compact(item)
49
47
 
50
48
  items = [format_item(item) for item in metalist.items]
51
- output = compact(
49
+ return compact(
52
50
  {
53
51
  "id": metalist.id,
54
52
  "title": metalist.title,
@@ -56,14 +54,3 @@ def write_commonmeta_list(metalist):
56
54
  "items": items,
57
55
  }
58
56
  )
59
-
60
- if metalist.filename and metalist.filename.rsplit(".", 1)[1] in ["jsonl", "json"]:
61
- if metalist.jsonlines:
62
- orjsonl.save(metalist.filename, items)
63
- else:
64
- json_output = json.dumps(output).decode("utf-8")
65
- with open(metalist.filename, "w") as file:
66
- file.write(json_output)
67
- return metalist.filename
68
- else:
69
- return json.dumps(output).decode("utf-8")