commonmeta-py 0.29__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.29"
13
+ __version__ = "0.31"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
@@ -79,6 +79,7 @@ def read_inveniordm(data: dict, **kwargs) -> Commonmeta:
79
79
  "title": "Zenodo",
80
80
  }
81
81
  )
82
+ publisher = {"name": "Zenodo"}
82
83
  else:
83
84
  container = py_.get(meta, "custom_fields.journal:journal")
84
85
  if container:
@@ -96,7 +97,6 @@ def read_inveniordm(data: dict, **kwargs) -> Commonmeta:
96
97
  )
97
98
  if license_:
98
99
  license_ = dict_to_spdx({"id": license_})
99
- print(license_)
100
100
  descriptions = format_descriptions(
101
101
  [
102
102
  py_.get(meta, "metadata.description"),
@@ -46,6 +46,7 @@ def read_json_feed_item(data: Optional[dict], **kwargs) -> Commonmeta:
46
46
  if data is None:
47
47
  return {"state": "not_found"}
48
48
  meta = data
49
+ print(meta)
49
50
  read_options = kwargs or {}
50
51
 
51
52
  url = normalize_url(meta.get("url", None))
@@ -65,10 +66,6 @@ def read_json_feed_item(data: Optional[dict], **kwargs) -> Commonmeta:
65
66
  title = parse_attributes(meta.get("title", None))
66
67
  titles = [{"title": sanitize(title)}] if title else None
67
68
 
68
- publisher = py_.get(meta, "blog.title", None)
69
- if publisher is not None:
70
- publisher = {"name": publisher}
71
-
72
69
  date: dict = {}
73
70
  date["published"] = (
74
71
  get_date_from_unix_timestamp(meta.get("published_at", None))
@@ -98,6 +95,15 @@ def read_json_feed_item(data: Optional[dict], **kwargs) -> Commonmeta:
98
95
  "identifierType": "ISSN" if issn else "URL",
99
96
  }
100
97
  )
98
+ publisher = (
99
+ {"name": "Front Matter"}
100
+ if is_rogue_scholar_doi(_id)
101
+ or (
102
+ container.get("identifierType", None) == "URL"
103
+ and furl(container.get("identifier", None)).host == "rogue-scholar.org"
104
+ )
105
+ else None
106
+ )
101
107
 
102
108
  description = meta.get("summary", None)
103
109
  if description is not None:
@@ -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.29
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=XbZIno8As7TrX6Ihdgd-pUSg8g57DDnDYMH4ypQhwUI,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
@@ -18,8 +18,8 @@ commonmeta/readers/crossref_xml_reader.py,sha256=QF1A-r3OJbykBTH9YMSxusT3-KSKmmz
18
18
  commonmeta/readers/csl_reader.py,sha256=5V_sHSJwcAWJmhB8SYk199nB96BWYX1Sq9vkQ3iEmAY,3164
19
19
  commonmeta/readers/datacite_reader.py,sha256=CdOtxhthrakBoQMsLTdPx6sUCmqtEWo5ICYE6ZsWDdo,12026
20
20
  commonmeta/readers/datacite_xml_reader.py,sha256=nhnO92fZihr1HZlbXjyem-HJXc9_DWLgJ2zeltuPMIg,13041
21
- commonmeta/readers/inveniordm_reader.py,sha256=Itm8HfN5PnNw0PMiw3FImmthpcCI_tCKpgHCstGKvb8,7502
22
- commonmeta/readers/json_feed_reader.py,sha256=Ke-J_xZJk6DltFMPrdFBF8iGhs_3EMzpBbDg7wcw678,13773
21
+ commonmeta/readers/inveniordm_reader.py,sha256=ejhpj4KX6bJU79lKrkTQeG3AATw0h2DdNdieNlx5j0w,7521
22
+ commonmeta/readers/json_feed_reader.py,sha256=_rOAIGhBoEwmNbGGlYixEzVHhUszVNlzmwkjqFQY1kw,13946
23
23
  commonmeta/readers/kbase_reader.py,sha256=NpIK-_fh5QFN4Q_ArqcrnH4tS5zR1gqbPew6VEjrUbs,6764
24
24
  commonmeta/readers/ris_reader.py,sha256=v6qOd-i2OcMTEFy5RGd3MlYthJcYSU6yzmZ5yHDzmII,3677
25
25
  commonmeta/readers/schema_org_reader.py,sha256=xyWzO2XAWlI2pYVl2EbVRsUmfiWXEwP64CHRBQNRN-M,16835
@@ -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.29.dist-info/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
72
- commonmeta_py-0.29.dist-info/METADATA,sha256=IQuSLd0PAay6UcUHIxjifYg6YWZMQD5fdOgM5dODSzY,8331
73
- commonmeta_py-0.29.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
74
- commonmeta_py-0.29.dist-info/entry_points.txt,sha256=vbcDw3_2lMTKdcAL2VUF4DRYRpKuzXVYLMCdgKVf88U,49
75
- commonmeta_py-0.29.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,,