commonmeta-py 0.143__py3-none-any.whl → 0.145__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.143"
13
+ __version__ = "0.145"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
commonmeta/doi_utils.py CHANGED
@@ -350,17 +350,18 @@ def generate_wordpress_doi(prefix: str, slug: str, guid: str) -> str:
350
350
  pattern = re.compile(r"p=(\d+)$")
351
351
  matched = pattern.search(guid)
352
352
 
353
- if not matched:
354
- return ""
353
+ if matched:
354
+ suffix = f"{slug}.{matched.group(1)}"
355
+ else:
356
+ # post_id not found, use random base32 encoding
357
+ suffix = base32.generate(length=10, split_every=5, checksum=True)
355
358
 
356
- doi = f"https://doi.org/{prefix}/{slug}.{matched.group(1)}"
359
+ doi = f"https://doi.org/{prefix}/{suffix}"
357
360
  return doi
358
361
 
359
362
 
360
363
  def validate_doi_from_guid(prefix: str, guid: str, checksum=True) -> bool:
361
364
  """Validates a GUID that is a DOI"""
362
- import base32_lib as base32
363
-
364
365
  if not prefix:
365
366
  return False
366
367
 
@@ -383,8 +384,6 @@ def validate_doi_from_guid(prefix: str, guid: str, checksum=True) -> bool:
383
384
 
384
385
  def generate_substack_doi(prefix: str, guid: str) -> str:
385
386
  """Generate a DOI from a Substack GUID"""
386
- import base32_lib as base32
387
-
388
387
  if not prefix or not guid:
389
388
  return ""
390
389
 
@@ -393,7 +392,6 @@ def generate_substack_doi(prefix: str, guid: str) -> str:
393
392
  except ValueError:
394
393
  return ""
395
394
 
396
- # encode the number using base32 with length=4, split_every=8, and checksum=True
397
- suffix = base32.encode(i, length=4, split_every=8, checksum=True)
395
+ suffix = base32.encode(i, split_every=5, min_length=10, checksum=True)
398
396
  doi = f"https://doi.org/{prefix}/{suffix}"
399
397
  return doi
@@ -438,19 +438,15 @@ def push_inveniordm(metadata: Commonmeta, host: str, token: str, **kwargs) -> Di
438
438
 
439
439
  # upsert record via the InvenioRDM API
440
440
  record = upsert_record(metadata, host, token, record)
441
- print("Record after upsert:", record)
442
441
 
443
442
  # optionally add record to InvenioRDM communities
444
443
  record = add_record_to_communities(metadata, host, token, record)
445
- print("Record after adding to communities:", record)
446
444
 
447
445
  # optionally update external services
448
446
  record = update_external_services(metadata, host, token, record, **kwargs)
449
- print("Record after updating external services:", record)
450
447
 
451
448
  except Exception as e:
452
449
  print(f"Error in push_inveniordm: {str(e)}")
453
- print("Record before error:", record)
454
450
  logger.error(
455
451
  f"Unexpected error in push_inveniordm: {str(e)}",
456
452
  exc_info=True,
@@ -744,7 +740,6 @@ def update_legacy_record(record, legacy_key: str, field: str = None) -> dict:
744
740
  "registered": "false",
745
741
  }
746
742
  elif record.get("doi", None) is not None:
747
- print(f"Updating legacy record for {record['uuid']} with field {field}")
748
743
  output = {
749
744
  "registered": "true",
750
745
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonmeta-py
3
- Version: 0.143
3
+ Version: 0.145
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,11 +1,11 @@
1
- commonmeta/__init__.py,sha256=jyKJOGC5BwKmjKlo7Ub-kK3n-m0YB__zGqALkn_JdRg,2118
1
+ commonmeta/__init__.py,sha256=Vq4DqP8QhaQ1B4a4AiCQjkf7eL9aEozKnpZJzXY6s5Q,2118
2
2
  commonmeta/api_utils.py,sha256=P8LMHHYiF4OTi97_5k4KstcBreooMkOAKZ4ebxsAv4o,2691
3
3
  commonmeta/author_utils.py,sha256=3lYW5s1rOUWNTKs1FP6XLfEUY3yCLOe_3L_VdJTDMp0,8585
4
4
  commonmeta/base_utils.py,sha256=-MGy9q2uTiJEkPWQUYOJMdq-3tRpNnvBwlLjvllQ5g8,11164
5
5
  commonmeta/cli.py,sha256=kBDSn7hL29I_ICn8XKFFEaIWl_ZVE_KrNWpzfar9v3g,8639
6
6
  commonmeta/constants.py,sha256=wSTEUiHeRdXLwjXEQD9AU2hxFyEKi5OTX2iHOKO6nF0,19844
7
7
  commonmeta/date_utils.py,sha256=H2cCobX0JREIUOT_cCigGd3MG7prGiQpXk1m4ZNrFwU,6318
8
- commonmeta/doi_utils.py,sha256=0g53aGwYCLHmZZBpRBnxTO39IsF3fcDltEWbRMBY4HE,11511
8
+ commonmeta/doi_utils.py,sha256=dmHy6QsF3v69cDwvw-v9RX2uys72w6UPsqzAnNePO2w,11512
9
9
  commonmeta/file_utils.py,sha256=eFYDWyR8Gr722nvFmp542hCm-TGmO_q4ciZ85IPHpjA,2893
10
10
  commonmeta/metadata.py,sha256=xh5RNy9f7uKu5AjoPKyLqHGx149tGFy3IZwrf-fYHzg,18597
11
11
  commonmeta/schema_utils.py,sha256=zn3gqAHciUOQmrw9okR68weFs-yqPPyORFt-Zl1D3Lw,1924
@@ -80,11 +80,11 @@ commonmeta/writers/commonmeta_writer.py,sha256=QpfyhG__7o_XpsOTCPWxGymO7YKwZi2LQ
80
80
  commonmeta/writers/crossref_xml_writer.py,sha256=nyNgnyluzd9jZ6jysrSg_TpMNOQuVjfMo7pN0HUb3c0,34832
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=2T0A8WkVyjzl2H-aK_PcsI26_l9O1xC4WIWryGXYpUM,27458
83
+ commonmeta/writers/inveniordm_writer.py,sha256=YW7XayB3XlZyR2j48KRy6syasVW44Zy8Fki58oTOMo4,27154
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.143.dist-info/METADATA,sha256=tQWFIaMEmSGwrDKsjEGKZ6RWb89NBTVh1G9k472rLmg,7656
87
- commonmeta_py-0.143.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
- commonmeta_py-0.143.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
89
- commonmeta_py-0.143.dist-info/licenses/LICENSE,sha256=wsIvxF9Q9GC9vA_s79zTWP3BkXJdfUNRmALlU8GbW1s,1074
90
- commonmeta_py-0.143.dist-info/RECORD,,
86
+ commonmeta_py-0.145.dist-info/METADATA,sha256=wSYGSMx3PsiFAYmFTpQs9ci0KdPXYfwr9EA8i7Lg7rw,7656
87
+ commonmeta_py-0.145.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
+ commonmeta_py-0.145.dist-info/entry_points.txt,sha256=U4w4BoRuS3rN5t5Y-uYSyOeU5Lh_VRVMS9OIDzIgw4w,50
89
+ commonmeta_py-0.145.dist-info/licenses/LICENSE,sha256=wsIvxF9Q9GC9vA_s79zTWP3BkXJdfUNRmALlU8GbW1s,1074
90
+ commonmeta_py-0.145.dist-info/RECORD,,