commonmeta-py 0.73__py3-none-any.whl → 0.74__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.73"
13
+ __version__ = "0.74"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
commonmeta/constants.py CHANGED
@@ -51,6 +51,7 @@ BIB_TO_CM_TRANSLATIONS = {
51
51
 
52
52
  CM_TO_BIB_TRANSLATIONS = {
53
53
  "Article": "article",
54
+ "BlogPost": "article",
54
55
  "Book": "book",
55
56
  "BookChapter": "inbook",
56
57
  "Dissertation": "phdthesis",
@@ -97,7 +98,7 @@ CSL_TO_CM_TRANSLATIONS = {
97
98
  "periodical": "Journal",
98
99
  "personal_communication": "PersonalCommunication",
99
100
  "post": "Post",
100
- "post-weblog": "Article",
101
+ "post-weblog": "BlogPost",
101
102
  "regulation": "LegalDocument",
102
103
  "report": "Report",
103
104
  "review": "Review",
@@ -113,7 +114,7 @@ CSL_TO_CM_TRANSLATIONS = {
113
114
 
114
115
  CM_TO_CSL_TRANSLATIONS = {
115
116
  "Article": "article",
116
- "JournalArticle": "article-journal",
117
+ "BlogPost": "post-weblog",
117
118
  "Book": "book",
118
119
  "BookChapter": "chapter",
119
120
  "Collection": "collection",
@@ -123,6 +124,7 @@ CM_TO_CSL_TRANSLATIONS = {
123
124
  "Event": "event",
124
125
  "Figure": "figure",
125
126
  "Image": "graphic",
127
+ "JournalArticle": "article-journal",
126
128
  "LegalDocument": "legal_case",
127
129
  "Manuscript": "manuscript",
128
130
  "Map": "map",
@@ -176,6 +178,7 @@ CR_TO_CM_TRANSLATIONS = {
176
178
 
177
179
  CM_TO_CR_TRANSLATIONS = {
178
180
  "Article": "PostedContent",
181
+ "BlogPost": "PostedContent",
179
182
  "BookChapter": "BookChapter",
180
183
  "BookSeries": "BookSeries",
181
184
  "Book": "Book",
@@ -200,7 +203,7 @@ CM_TO_CR_TRANSLATIONS = {
200
203
  # source: https://github.com/datacite/schema/blob/master/source/meta/kernel-4/include/datacite-resourceType-v4.xsd
201
204
  DC_TO_CM_TRANSLATIONS = {
202
205
  "Audiovisual": "Audiovisual",
203
- "BlogPosting": "Article",
206
+ "BlogPosting": "BlogPost",
204
207
  "Book": "Book",
205
208
  "BookChapter": "BookChapter",
206
209
  "Collection": "Collection",
@@ -269,6 +272,7 @@ INVENIORDM_TO_CM_TRANSLATIONS = {
269
272
 
270
273
  CM_TO_INVENIORDM_TRANSLATIONS = {
271
274
  "Article": "publication-preprint",
275
+ "BlogPost": "publication-preprint",
272
276
  "Book": "book",
273
277
  "Dataset": "dataset",
274
278
  "Image": "image-other",
@@ -281,6 +285,7 @@ CM_TO_INVENIORDM_TRANSLATIONS = {
281
285
  CM_TO_DC_TRANSLATIONS = {
282
286
  "Article": "Preprint",
283
287
  "Audiovisual": "Audiovisual",
288
+ "BlogPost": "Preprint",
284
289
  "Book": "Book",
285
290
  "BookChapter": "BookChapter",
286
291
  "Collection": "Collection",
@@ -317,7 +322,7 @@ RIS_TO_CM_TRANSLATIONS = {
317
322
  "ANCIENT": "Text",
318
323
  "ART": "Text",
319
324
  "BILL": "Text",
320
- "BLOG": "Text",
325
+ "BLOG": "BlogPost",
321
326
  "BOOK": "Book",
322
327
  "CASE": "Text",
323
328
  "CHAP": "BookChapter",
@@ -370,6 +375,7 @@ RIS_TO_CM_TRANSLATIONS = {
370
375
  CM_TO_RIS_TRANSLATIONS = {
371
376
  "Article": "JOUR",
372
377
  "Audiovisual": "VIDEO",
378
+ "BlogPost": "BLOG",
373
379
  "Book": "BOOK",
374
380
  "BookChapter": "CHAP",
375
381
  "Collection": "CTLG",
@@ -400,7 +406,7 @@ CM_TO_RIS_TRANSLATIONS = {
400
406
 
401
407
  SO_TO_CM_TRANSLATIONS = {
402
408
  "Article": "Article",
403
- "BlogPosting": "Article",
409
+ "BlogPosting": "BlogPost",
404
410
  "Book": "Book",
405
411
  "BookChapter": "BookChapter",
406
412
  "CreativeWork": "Other",
@@ -439,6 +445,7 @@ OG_TO_SO_TRANSLATIONS = {
439
445
  CM_TO_SO_TRANSLATIONS = {
440
446
  "Article": "Article",
441
447
  "Audiovisual": "CreativeWork",
448
+ "BlogPost": "BlogPosting",
442
449
  "Book": "Book",
443
450
  "BookChapter": "BookChapter",
444
451
  "Collection": "CreativeWork",
@@ -36,13 +36,13 @@ def generate_crossref_xml(metadata: Commonmeta) -> Optional[str]:
36
36
 
37
37
  def insert_crossref_work(metadata, xml):
38
38
  """Insert crossref work"""
39
- if metadata.type not in ["JournalArticle", "Article"]:
39
+ if metadata.type not in ["JournalArticle", "Article", "BlogPost"]:
40
40
  return xml
41
41
  if doi_from_url(metadata.id) is None or metadata.url is None:
42
42
  return xml
43
43
  if metadata.type == "JournalArticle":
44
44
  xml = insert_journal(metadata, xml)
45
- elif metadata.type == "Article":
45
+ elif metadata.type in ["Article", "BlogPost"]:
46
46
  xml = insert_posted_content(metadata, xml)
47
47
 
48
48
 
@@ -83,7 +83,8 @@ def read_crossref(data: Optional[dict], **kwargs) -> Commonmeta:
83
83
  url = normalize_url(py_.get(meta, "resource.primary.URL"))
84
84
  titles = get_titles(meta)
85
85
  publisher = compact({"name": meta.get("publisher", None)})
86
-
86
+ if _type == "Article" and py_.get(publisher, "name") == "Front Matter":
87
+ _type = "BlogPost"
87
88
  date = compact(
88
89
  {
89
90
  "published": py_.get(meta, "issued.date-time")
@@ -158,6 +158,9 @@ def read_crossref_xml(data: dict, **kwargs) -> Commonmeta:
158
158
  or py_.get(bibmeta, "doi_data.doi")
159
159
  )
160
160
  _type = CR_TO_CM_TRANSLATIONS.get(resource_type, "Other")
161
+ if _type == "Article" and py_.get(publisher, "name") == "Front Matter":
162
+ _type = "BlogPost"
163
+
161
164
  url = parse_attributes(py_.get(bibmeta, "doi_data.resource"))
162
165
  url = normalize_url(url)
163
166
  titles = crossref_titles(bibmeta)
@@ -57,6 +57,9 @@ def read_inveniordm(data: dict, **kwargs) -> Commonmeta:
57
57
  publisher = meta.get("publisher", None) or py_.get(meta, "metadata.publisher")
58
58
  if publisher:
59
59
  publisher = {"name": publisher}
60
+ if _type == "Article" and py_.get(publisher, "name") == "Front Matter":
61
+ _type = "BlogPost"
62
+
60
63
  title = py_.get(meta, "metadata.title")
61
64
  titles = [{"title": sanitize(title)}] if title else None
62
65
  additional_titles = py_.get(meta, "metadata.additional_titles")
@@ -54,7 +54,7 @@ def read_json_feed_item(data: Optional[dict], **kwargs) -> Commonmeta:
54
54
  ):
55
55
  url = normalize_url(meta.get("archive_url", None))
56
56
  _id = normalize_doi(read_options.get("doi", None) or meta.get("doi", None)) or url
57
- _type = "Article"
57
+ _type = "BlogPost"
58
58
 
59
59
  # optionally generate a DOI if missing but a DOI prefix is provided
60
60
  prefix = read_options.get("prefix", None) or py_.get(meta, "blog.prefix", None)
@@ -216,7 +216,7 @@ def read_schema_org(data: Optional[dict], **kwargs) -> Commonmeta:
216
216
  "lastPage": meta.get("pageEnd", None),
217
217
  }
218
218
  )
219
- elif _type == "Article":
219
+ elif _type in ["Article", "BlogPost"]:
220
220
  issn = py_.get(meta, "isPartOf.issn")
221
221
  container_url = py_.get(meta, "publisher.url")
222
222
  container = compact(
@@ -533,6 +533,7 @@
533
533
  "enum": [
534
534
  "Article",
535
535
  "Audiovisual",
536
+ "BlogPost",
536
537
  "BookChapter",
537
538
  "BookPart",
538
539
  "BookSection",
@@ -47,6 +47,8 @@ def write_datacite(metadata: Commonmeta) -> Optional[Union[str, dict]]:
47
47
 
48
48
  resource__typegeneral = CM_TO_DC_TRANSLATIONS.get(metadata.type, "Other")
49
49
  resource_type = CM_TO_CR_TRANSLATIONS.get(metadata.type, "Other")
50
+ if metadata.type == "BlogPost":
51
+ resource_type = "BlogPost"
50
52
  if resource__typegeneral == resource_type or resource__typegeneral in [
51
53
  "Dataset",
52
54
  "JournalArticle",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonmeta-py
3
- Version: 0.73
3
+ Version: 0.74
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
@@ -1,10 +1,10 @@
1
- commonmeta/__init__.py,sha256=CqjL7RJ_vZlMskGtw_cVvW3Fisx4egePX0HfCA8U_YQ,1875
1
+ commonmeta/__init__.py,sha256=NJr14BwK23CaaTT8Gdm65_xUY6BXlphGitiMdChRX0k,1875
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=AsUElA5kT2fw_Osy7Uaj2F6MKeq9yB7d5f2V-h2lh7c,3750
5
5
  commonmeta/cli.py,sha256=sOI9BJTePnljVcXcZ95N7TKXDT283XpjUaak7bMnbr0,6076
6
- commonmeta/constants.py,sha256=AFm8gSo4WGnTdJOm1SOGLK602BctcQbaWU_tKCkgn_4,18087
7
- commonmeta/crossref_utils.py,sha256=qJlTZtfKR2shAXQDm8VBYUujKFkTtZTUz19GuMUANaI,22198
6
+ commonmeta/constants.py,sha256=T-kNocQBTuF3MXlMuPKywV3-viHVCWF_Kclkm-7G43s,18308
7
+ commonmeta/crossref_utils.py,sha256=ijcdAdV2HHUXP2twIKIQP9Ln2xsysU3n9nwQDg-ZAxU,22224
8
8
  commonmeta/date_utils.py,sha256=rJRV4YmWKQWU__iAV8www3cqwaefC0iRKyHwvxrr_XY,6316
9
9
  commonmeta/doi_utils.py,sha256=s2J95V9rWPbGsh5oNXht3yJkJ0NmVLRlOXDPXjnN-Ck,9152
10
10
  commonmeta/metadata.py,sha256=cjvCcxW1FMtKCbNKan0zXX0FN6z5orHFGPYsgkp6fSI,12480
@@ -16,21 +16,21 @@ commonmeta/readers/bibtex_reader.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
16
16
  commonmeta/readers/cff_reader.py,sha256=5HMFUvjE1zb-zfpQSNM8vtB0YunD0reom99hn8N0xKc,6144
17
17
  commonmeta/readers/codemeta_reader.py,sha256=efv2V1WPfdrKLQNxgSvoripdWqS2M6CwXWSGiRuzRtU,3658
18
18
  commonmeta/readers/commonmeta_reader.py,sha256=gNjdsJ-671-pXmBdzy1NybkQ29q9_qtorFoK2D-zStA,302
19
- commonmeta/readers/crossref_reader.py,sha256=zIMD81eYwpx9RlHaDwiZs2f9O4_kdasVzt3MkM7cEOc,12458
20
- commonmeta/readers/crossref_xml_reader.py,sha256=QF1A-r3OJbykBTH9YMSxusT3-KSKmmz7d6Ch8S0OM0I,18619
19
+ commonmeta/readers/crossref_reader.py,sha256=msx127UIcu6ksFd8Wiay4YXK6dEKFO0kOFJS8_r9Nw0,12560
20
+ commonmeta/readers/crossref_xml_reader.py,sha256=yZOh66_4tVS5i0TdEyOa48ckpl7_cj69hfZnaA9pjM8,18723
21
21
  commonmeta/readers/csl_reader.py,sha256=IO8uj-L_BzPFWgfRzYCF9VbK5rBPBzDqak7iBELgNNs,3164
22
22
  commonmeta/readers/datacite_reader.py,sha256=CdOtxhthrakBoQMsLTdPx6sUCmqtEWo5ICYE6ZsWDdo,12026
23
23
  commonmeta/readers/datacite_xml_reader.py,sha256=nhnO92fZihr1HZlbXjyem-HJXc9_DWLgJ2zeltuPMIg,13041
24
- commonmeta/readers/inveniordm_reader.py,sha256=jzv0rXzT8OCdPD_MShBXTnlwD-F9tpTX7OKZGn8smzs,7480
25
- commonmeta/readers/json_feed_reader.py,sha256=4HDaJn5wTVeArJWfWboZonUuKG9g74yYQ-p50yLvjPQ,13385
24
+ commonmeta/readers/inveniordm_reader.py,sha256=uS92St68UkO4Adh3PsCu9ox81aO0kek3Y0vneBSDkts,7584
25
+ commonmeta/readers/json_feed_reader.py,sha256=xWOO5w8uOhK1u5IaqOeRL0-f8wtAgDzPjvtK5n6s-nY,13386
26
26
  commonmeta/readers/kbase_reader.py,sha256=ehKXQsJyPCtaq2FmBxNb2Jb5Nktpx8pNscpmEM6N0A4,6763
27
27
  commonmeta/readers/ris_reader.py,sha256=v6qOd-i2OcMTEFy5RGd3MlYthJcYSU6yzmZ5yHDzmII,3677
28
- commonmeta/readers/schema_org_reader.py,sha256=iK71dvjK6oqYneJ51j4-qFmBh5G3pmjQMzt_U6tK9_o,17077
28
+ commonmeta/readers/schema_org_reader.py,sha256=Xv-VjZJkhz1vpC9tVbehI6y07iHvYq2MXWFo7q-wj4Y,17091
29
29
  commonmeta/resources/cff_v1.2.0.json,sha256=MpfjDYgX7fN9PLiG54ISZ2uu9WItNqfh-yaRuTf6Ptg,46691
30
30
  commonmeta/resources/commonmeta_v0.12.json,sha256=HUSNReXh2JN3Q6YWSt7CE69js8dh50OlpMYGTyU98oU,16762
31
31
  commonmeta/resources/commonmeta_v0.13.json,sha256=2-WSZGijR13zVu97S_YHXr-cyeLW7hzHXYMlr6nIjdw,15787
32
32
  commonmeta/resources/commonmeta_v0.14.json,sha256=nACmkTe4IrZkygd5AeJnAv9P4EWfzCwW9oL5AhubvnE,17657
33
- commonmeta/resources/commonmeta_v0.15.json,sha256=dZsWu7DOHL04v1tYAX1RE4Kyn_mt0HnJvEZRKvc8w0A,17733
33
+ commonmeta/resources/commonmeta_v0.15.json,sha256=kC9xmtIwrGpl7V1vcXKWthWejYvtKfqOqenBCRSjANc,17753
34
34
  commonmeta/resources/crossref-v0.2.json,sha256=THbFem4IDSE-TFNOtP1-NOmZhED2dlLBso9RdGMbGIY,1431
35
35
  commonmeta/resources/csl-data.json,sha256=I7LAYtdSYGD0YxuwS0s7ojfkiEhCU-MnvQD6aRhhuBE,12222
36
36
  commonmeta/resources/datacite-v4.5.json,sha256=ocpQNSbORPJf5Ogidy6M6EHundgv7DSgIqRco02KgM4,18970
@@ -65,12 +65,12 @@ commonmeta/writers/citation_writer.py,sha256=RjaNh9EALxq6gfODLRWVJxGxPArGd6ZiHUl
65
65
  commonmeta/writers/commonmeta_writer.py,sha256=mu-yXQvQs_xdYM4MxbTTxxYB5n0lJA5BqiYfRPV562Q,1870
66
66
  commonmeta/writers/crossref_xml_writer.py,sha256=0Ds494RnXfdfjWw5CLX1kwV2zP7gqffdVqO-X74Uc6c,492
67
67
  commonmeta/writers/csl_writer.py,sha256=6N-93R1emcOsZrUTIhPBVd_Fv1C8Z5EAFYI0mYjoYaY,2797
68
- commonmeta/writers/datacite_writer.py,sha256=G7Lr0aZ4sAEdbfXe3dG4Y6AyGUKA9UWr_iiaQRDnV24,6233
68
+ commonmeta/writers/datacite_writer.py,sha256=UpDp4Brg5xrmS5T3QYoNi6PPXKdRxAo254eTqnlmNyQ,6304
69
69
  commonmeta/writers/inveniordm_writer.py,sha256=TctfZsiB8aiXWDLijJpxjMM77aKY6-hgKeAPDMfZoh4,11438
70
70
  commonmeta/writers/ris_writer.py,sha256=AcnCszS3WY9lF594NbFBtLylsA8ownnYp_XLQJ84Ios,2093
71
71
  commonmeta/writers/schema_org_writer.py,sha256=5j002uCNLdlScZMNQmPjodcVWqaBh2z38zL1H4lo2hY,5741
72
- commonmeta_py-0.73.dist-info/METADATA,sha256=lOVeGPQpUvwV26EvuZfCrDbMF-m-UHwtmqnnWXWjjUw,7731
73
- commonmeta_py-0.73.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
- commonmeta_py-0.73.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
75
- commonmeta_py-0.73.dist-info/licenses/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
76
- commonmeta_py-0.73.dist-info/RECORD,,
72
+ commonmeta_py-0.74.dist-info/METADATA,sha256=JBv2STCC_kh62r4UVTnTuZwMRXENr2UFlsxNz8RIORE,7731
73
+ commonmeta_py-0.74.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
+ commonmeta_py-0.74.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
75
+ commonmeta_py-0.74.dist-info/licenses/LICENSE,sha256=746hEF2wZCKkcckk5-_DcBLtHewfaEMS4iXTlA1PVwk,1074
76
+ commonmeta_py-0.74.dist-info/RECORD,,