commonmeta-py 0.30__py3-none-any.whl → 0.31__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.30"
13
+ __version__ = "0.31"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
@@ -1,13 +1,12 @@
1
1
  """InvenioRDM writer for commonmeta-py"""
2
2
 
3
3
  import orjson as json
4
- import pydash as py_
5
4
 
6
- from ..utils import to_inveniordm
7
- from ..base_utils import compact, wrap, presence, parse_attributes
8
- from ..doi_utils import doi_from_url, validate_suffix
5
+ from ..base_utils import compact, wrap, parse_attributes
6
+ from ..date_utils import get_iso8601_date
7
+ from ..doi_utils import doi_from_url
9
8
  from ..constants import CM_TO_INVENIORDM_TRANSLATIONS
10
- from ..utils import pages_as_string, get_language, validate_orcid
9
+ from ..utils import get_language, validate_orcid
11
10
 
12
11
 
13
12
  def write_inveniordm(metadata):
@@ -40,6 +39,8 @@ def write_inveniordm(metadata):
40
39
  if container.get("identifierType", None) == "ISSN"
41
40
  else None
42
41
  )
42
+
43
+ subjects = [to_inveniordm_subject(i) for i in wrap(metadata.subjects)]
43
44
  data = compact(
44
45
  {
45
46
  "pids": {
@@ -60,15 +61,16 @@ def write_inveniordm(metadata):
60
61
  "publisher": metadata.publisher.get("name", None)
61
62
  if metadata.publisher
62
63
  else None,
63
- "publication_date": metadata.date.get("published")
64
+ "publication_date": get_iso8601_date(metadata.date.get("published"))
64
65
  if metadata.date.get("published", None)
65
66
  else None,
66
67
  "dates": [
67
- {"date": metadata.date.get("updated"), "type": "updated"}
68
+ {
69
+ "date": metadata.date.get("updated"),
70
+ "type": {"id": "updated"},
71
+ }
68
72
  ],
69
- "subjects": parse_attributes(
70
- wrap(metadata.subjects), content="subject", first=False
71
- ),
73
+ "subjects": subjects,
72
74
  "description": parse_attributes(
73
75
  metadata.descriptions, content="description", first=True
74
76
  ),
@@ -124,3 +126,13 @@ def to_inveniordm_creator(creator: dict) -> dict:
124
126
  }
125
127
  )
126
128
  }
129
+
130
+
131
+ def to_inveniordm_subject(subject: dict) -> dict:
132
+ """Convert subjects to inveniordm subjects"""
133
+ return compact(
134
+ {
135
+ "id": subject.get("id", None),
136
+ "subject": subject.get("subject", None),
137
+ }
138
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: commonmeta-py
3
- Version: 0.30
3
+ Version: 0.31
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=XHZvIRHYbOUr54ZbWsDXfsLaA652FoU7zL-j_wX9_hM,1779
1
+ commonmeta/__init__.py,sha256=FFfOmC3JZbNBVQtBjbddrKFTgL3cPfQIpScMhdA3qZk,1779
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=0t6fr9XGeeTBoMlKSAMI7p_EmKsA6wYRW0roEBXVcc8,3722
@@ -65,11 +65,11 @@ commonmeta/writers/commonmeta_writer.py,sha256=2qlttCfYpGhfVjrYkjzbIra7AywssRLT3
65
65
  commonmeta/writers/crossref_xml_writer.py,sha256=0Ds494RnXfdfjWw5CLX1kwV2zP7gqffdVqO-X74Uc6c,492
66
66
  commonmeta/writers/csl_writer.py,sha256=rlCeShkvC6ui9By0yVfNCMay_JfaZ4AooUPOPg-g-2M,2819
67
67
  commonmeta/writers/datacite_writer.py,sha256=G7Lr0aZ4sAEdbfXe3dG4Y6AyGUKA9UWr_iiaQRDnV24,6233
68
- commonmeta/writers/inveniordm_writer.py,sha256=lfuNdyHxyQa3rfioM8kGZh-p6h8Grl2B581f_feN8f8,4464
68
+ commonmeta/writers/inveniordm_writer.py,sha256=rreqnyZOq-XE51SkmAWGYrQ6OaNvIYblcQVVUivcYyc,4725
69
69
  commonmeta/writers/ris_writer.py,sha256=AcnCszS3WY9lF594NbFBtLylsA8ownnYp_XLQJ84Ios,2093
70
70
  commonmeta/writers/schema_org_writer.py,sha256=5j002uCNLdlScZMNQmPjodcVWqaBh2z38zL1H4lo2hY,5741
71
- commonmeta_py-0.30.dist-info/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
72
- commonmeta_py-0.30.dist-info/METADATA,sha256=GUODVocf6zYFgKtJ52NJqmgXvnQmNLdSiD32HYX0xv0,8331
73
- commonmeta_py-0.30.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
74
- commonmeta_py-0.30.dist-info/entry_points.txt,sha256=vbcDw3_2lMTKdcAL2VUF4DRYRpKuzXVYLMCdgKVf88U,49
75
- commonmeta_py-0.30.dist-info/RECORD,,
71
+ commonmeta_py-0.31.dist-info/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
72
+ commonmeta_py-0.31.dist-info/METADATA,sha256=zJ8DGELyt5duoMd6t7UebZE83w6clxAAXZEJt9sKQic,8331
73
+ commonmeta_py-0.31.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
74
+ commonmeta_py-0.31.dist-info/entry_points.txt,sha256=vbcDw3_2lMTKdcAL2VUF4DRYRpKuzXVYLMCdgKVf88U,49
75
+ commonmeta_py-0.31.dist-info/RECORD,,