commonmeta-py 0.110__py3-none-any.whl → 0.112__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.110"
13
+ __version__ = "0.112"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
commonmeta/metadata.py CHANGED
@@ -490,7 +490,9 @@ class MetadataList:
490
490
  elif to == "datacite":
491
491
  raise ValueError("Datacite not yet supported for metadata lists")
492
492
  elif to == "inveniordm":
493
- response = push_inveniordm_list(self, host=self.host, token=self.token, legacy_key=self.legacy_key)
493
+ response = push_inveniordm_list(
494
+ self, host=self.host, token=self.token, legacy_key=self.legacy_key
495
+ )
494
496
  return response
495
497
  else:
496
498
  raise ValueError("No valid output format found")
@@ -371,7 +371,7 @@ def write_inveniordm_list(metalist):
371
371
  return [write_inveniordm(item) for item in metalist.items]
372
372
 
373
373
 
374
- def push_inveniordm(metadata, host: str, token: str, legacy_key:str):
374
+ def push_inveniordm(metadata, host: str, token: str, legacy_key: str):
375
375
  """Push record to InvenioRDM"""
376
376
 
377
377
  record = {}
@@ -382,8 +382,9 @@ def push_inveniordm(metadata, host: str, token: str, legacy_key:str):
382
382
  community_index = None
383
383
  if hasattr(metadata, "relations") and metadata.relations:
384
384
  for i, relation in enumerate(metadata.relations):
385
- if (relation.get("type") == "IsPartOf" and
386
- relation.get("id", "").startswith("https://rogue-scholar.org/api/communities/")):
385
+ if relation.get("type") == "IsPartOf" and relation.get(
386
+ "id", ""
387
+ ).startswith("https://rogue-scholar.org/api/communities/"):
387
388
  slug = relation.get("id").split("/")[5]
388
389
  community_id, _ = search_by_slug(slug, "blog", host, token)
389
390
  if community_id:
@@ -413,7 +414,6 @@ def push_inveniordm(metadata, host: str, token: str, legacy_key:str):
413
414
  record["id"] = search_by_doi(doi_from_url(metadata.id), host, token)
414
415
 
415
416
  if record["id"] is not None:
416
-
417
417
  # Create draft record from published record
418
418
  record = edit_published_record(record, host, token)
419
419
 
@@ -443,9 +443,7 @@ def push_inveniordm(metadata, host: str, token: str, legacy_key:str):
443
443
 
444
444
  community_id = search_by_slug(slug, "topic", host, token)
445
445
  if community_id:
446
- record = add_record_to_community(
447
- record, host, token, community_id
448
- )
446
+ record = add_record_to_community(record, host, token, community_id)
449
447
 
450
448
  # Add record to communities defined as IsPartOf relation in inveniordm metadata's RelatedIdentifiers
451
449
  related_identifiers = py_.get(input, "metadata.related_identifiers")
@@ -460,21 +458,19 @@ def push_inveniordm(metadata, host: str, token: str, legacy_key:str):
460
458
  and len(path_parts) == 3
461
459
  and path_parts[1] == "communities"
462
460
  ):
463
- record = add_record_to_community(
464
- record, host, token, path_parts[2]
465
- )
461
+ record = add_record_to_community(record, host, token, path_parts[2])
466
462
 
467
463
  # optionally update rogue-scholar legacy record
468
464
  if host == "rogue-scholar.org" and legacy_key is not None:
469
465
  record = update_legacy_record(record, legacy_key)
470
-
466
+ print("g", record)
471
467
  except Exception as e:
472
468
  raise InvenioRDMError(f"Unexpected error: {str(e)}")
473
469
 
474
470
  return record
475
471
 
476
472
 
477
- def push_inveniordm_list(metalist, host: str, token: str, legacy_key:str) -> list:
473
+ def push_inveniordm_list(metalist, host: str, token: str, legacy_key: str) -> list:
478
474
  """Push inveniordm list to InvenioRDM, returns list of push results."""
479
475
 
480
476
  if metalist is None:
@@ -491,7 +487,9 @@ def search_by_doi(doi, host, token) -> Optional[str]:
491
487
  }
492
488
  params = {"q": f"doi:{doi}", "size": 1}
493
489
  try:
494
- response = requests.get(f"https://{host}/api/records", headers=headers, params=params)
490
+ response = requests.get(
491
+ f"https://{host}/api/records", headers=headers, params=params
492
+ )
495
493
  response.raise_for_status()
496
494
  data = response.json()
497
495
  if py_.get(data, "hits.total") or 0 > 0:
@@ -508,14 +506,16 @@ def create_draft_record(record, host, token, input):
508
506
  "Content-Type": "application/json",
509
507
  }
510
508
  try:
511
- response = requests.post(f"https://{host}/api/records", headers=headers, json=input)
509
+ response = requests.post(
510
+ f"https://{host}/api/records", headers=headers, json=input
511
+ )
512
512
  response.raise_for_status()
513
513
  data = response.json()
514
514
  return {
515
515
  "id": data.get("id", None),
516
516
  "created": data.get("created", None),
517
517
  "updated": data.get("updated", None),
518
- "status": "updated"
518
+ "status": "updated",
519
519
  }
520
520
  except requests.exceptions.RequestException as e:
521
521
  raise InvenioRDMError(f"Error creating draft record: {str(e)}")
@@ -620,12 +620,7 @@ def update_legacy_record(record, legacy_key: str):
620
620
  if not record.get("doi", None):
621
621
  return ValueError("no valid doi to update")
622
622
 
623
- output = {
624
- "doi": record["doi"],
625
- "indexed_at": now,
626
- "indexed": "true",
627
- "archived": "true"
628
- }
623
+ output = {"indexed_at": now, "indexed": "true", "archived": "true"}
629
624
 
630
625
  request_url = f"https://{legacy_host}/rest/v1/posts?id=eq.{record['uuid']}"
631
626
 
@@ -633,16 +628,11 @@ def update_legacy_record(record, legacy_key: str):
633
628
  "Content-Type": "application/json",
634
629
  "apikey": legacy_key,
635
630
  "Authorization": f"Bearer {legacy_key}",
636
- "Prefer": "return=minimal"
631
+ "Prefer": "return=minimal",
637
632
  }
638
633
 
639
634
  try:
640
- response = requests.patch(
641
- request_url,
642
- json=output,
643
- headers=headers,
644
- timeout=30
645
- )
635
+ response = requests.patch(request_url, json=output, headers=headers, timeout=30)
646
636
  response.raise_for_status()
647
637
  if response.status_code != 204:
648
638
  return record, Exception(f"Unexpected status code: {response.status_code}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonmeta-py
3
- Version: 0.110
3
+ Version: 0.112
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,4 +1,4 @@
1
- commonmeta/__init__.py,sha256=WZCKL4ti8Sc86ai_zs5By2leyLDtV3W-Cz0llUn0EFI,2098
1
+ commonmeta/__init__.py,sha256=eKvnKvDHY9vRV-P7jBGueCHolec-BCQP9YOJWd_L0iM,2098
2
2
  commonmeta/api_utils.py,sha256=y5KLfIOWOjde7LXZ36u-eneQJ-Q53yXUZg3hWpCBS2E,2685
3
3
  commonmeta/author_utils.py,sha256=3lYW5s1rOUWNTKs1FP6XLfEUY3yCLOe_3L_VdJTDMp0,8585
4
4
  commonmeta/base_utils.py,sha256=-MGy9q2uTiJEkPWQUYOJMdq-3tRpNnvBwlLjvllQ5g8,11164
@@ -7,7 +7,7 @@ commonmeta/constants.py,sha256=wSTEUiHeRdXLwjXEQD9AU2hxFyEKi5OTX2iHOKO6nF0,19844
7
7
  commonmeta/date_utils.py,sha256=H2cCobX0JREIUOT_cCigGd3MG7prGiQpXk1m4ZNrFwU,6318
8
8
  commonmeta/doi_utils.py,sha256=ZztajfOLtnASk1BbQ1Y2Q4B_xxlnbujn7Opx5a1U5vY,9582
9
9
  commonmeta/file_utils.py,sha256=tGvXxScjh-PPo5YvLDyk4sqwY5Q50N0zAmBHVaUOLeU,3268
10
- commonmeta/metadata.py,sha256=k_u2ZE2_GbCQrzAPms5ywa2ylQ-GrEYJIRTQpPAMHGw,18863
10
+ commonmeta/metadata.py,sha256=U9uYOkKAdgqLiQwQKXMXjrAFvO6avMWp9heJG4cNAAY,18893
11
11
  commonmeta/schema_utils.py,sha256=WGpmMj9cfNMg_55hhgwY9qpO0A1HSvTLQC2equjBftI,1770
12
12
  commonmeta/translators.py,sha256=CBMK4jrXRmGZiAhCh6wsJjhbDJWbcsda8UvXFXxccAw,1363
13
13
  commonmeta/utils.py,sha256=pJnh3EzOU1E2nutnAZsopY_NsUX6zYmxoj5bIYqqWvE,50574
@@ -80,11 +80,11 @@ commonmeta/writers/commonmeta_writer.py,sha256=QpfyhG__7o_XpsOTCPWxGymO7YKwZi2LQ
80
80
  commonmeta/writers/crossref_xml_writer.py,sha256=d-Rb2Vd_g3UW8GM4APIT7fivSQ5GMssZ6Ubi3OykHaw,33479
81
81
  commonmeta/writers/csl_writer.py,sha256=4gDYs1EzK4_L2UIRTfs25wgHmYRwdRP2zmfxF9387oU,2779
82
82
  commonmeta/writers/datacite_writer.py,sha256=bcinpwhq7XnVthKHH8-sdXA34dSlvFH4ImYH768iaQU,6428
83
- commonmeta/writers/inveniordm_writer.py,sha256=LbBM0gLGsvoujp1dV_9JYBda2Ehl6naRww99e4mxF24,23475
83
+ commonmeta/writers/inveniordm_writer.py,sha256=EDIw56kIr-58oB1oWnGOCfUBRwIsivjnR8WT5rrcji0,23334
84
84
  commonmeta/writers/ris_writer.py,sha256=3SdyEvMRaPRP1SV1MB-MXBlunE7x6og7RF1zuWtetPc,2094
85
85
  commonmeta/writers/schema_org_writer.py,sha256=s18_x0ReXwAGBoEAwp2q-HCgFQ-h5qRg6JyAlqCoSFE,5871
86
- commonmeta_py-0.110.dist-info/METADATA,sha256=el6wHtSOT7cnCa34uLGRucMvZ6qM-gd3F9kcRkH79_E,7652
87
- commonmeta_py-0.110.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
- commonmeta_py-0.110.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
89
- commonmeta_py-0.110.dist-info/licenses/LICENSE,sha256=wsIvxF9Q9GC9vA_s79zTWP3BkXJdfUNRmALlU8GbW1s,1074
90
- commonmeta_py-0.110.dist-info/RECORD,,
86
+ commonmeta_py-0.112.dist-info/METADATA,sha256=8zV_v5vYgwtipHroPPPc1pms1YB4QNKPpWBCH4uRGrk,7652
87
+ commonmeta_py-0.112.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
+ commonmeta_py-0.112.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
89
+ commonmeta_py-0.112.dist-info/licenses/LICENSE,sha256=wsIvxF9Q9GC9vA_s79zTWP3BkXJdfUNRmALlU8GbW1s,1074
90
+ commonmeta_py-0.112.dist-info/RECORD,,