Skip to main content

"Small library for persistent identifiers used in scholarly communication."

Project description

https://github.com/inveniosoftware/idutils/workflows/CI/badge.svg https://img.shields.io/coveralls/inveniosoftware/idutils.svg https://img.shields.io/github/tag/inveniosoftware/idutils.svg https://img.shields.io/pypi/dm/idutils.svg https://img.shields.io/github/license/inveniosoftware/idutils.svg

Small library for validating and normalising persistent identifiers used in scholarly communication.

Features

  • Validation and normalization of persistent identifiers.

  • Detection of persistent identifier scheme.

  • Generation of resolving links for persistent identifiers.

  • Supported schemes: ISBN10, ISBN13, ISSN, ISTC, DOI, Handle, EAN8, EAN13, ISNI ORCID, ARK, PURL, LSID, URN, Bibcode, arXiv, PubMed ID, PubMed Central ID, GND, SRA, BioProject, BioSample, Ensembl, UniProt, RefSeq, GenBank/RefSeq, SWH, OpenAlex, CSTR, RRID.

Installation

The IDUtils package is on PyPI so all you need is:

$ pip install idutils

Changes

Version v1.6.1 (released 2026-05-28)

  • setup: replace isbnlib with isbnlib2

Version v1.6.0 (released 2026-03-19)

  • refactor: remove DeprecationWarning

  • feat: add cstr and rrid identifiers

  • adding tests

  • feat: add openalex validator

Version v1.5.1 (released 2025-12-15)

  • feat: add support for wikidata type QID scheme

  • gh-action: various version bumps

Version v1.5.0 (released 2025-07-14)

  • chores: replaced importlib_metadata with importlib.metadata

Version 1.4.5 (2025-06-05)

  • ark: fix regex to match new ARK identifiers without slash

Version 1.4.4 (2025-06-03)

  • swhid: improved SWHID validation

  • tests: additional tests

Version 1.4.3 (2025-05-12)

  • is_url: allow URL parameters (i.e. semicolon)

  • gnd: improve validation and normalization

  • pmcid: fix url to a working location

  • pmid: add trailing slash

  • new: email and sha1 identifiers

Version 1.4.2 (2024-11-01)

  • setup: remove pytest-invenio to make imports cleaner

  • setup: install importlib_metadata for compatibility

  • bibcode/ads: normalize unicode

Version 1.4.1 (2024-10-18)

  • install: add importlib_metadata

Version 1.4.0 (2024-10-17)

  • Restructure module to be configurable and readable.

  • Adds a new entrypoint to register new custom schemes

  • Adds deprecations for direct imports of schemes

Version 1.3.0 (2024-10-15) (yanked due to undesired flask dependency)

  • Restructure module to be configurable and readable.

  • Adds a new entrypoint to register new custom schemes

  • Adds deprecations for direct imports of schemes

Version 1.2.1 (2023-03-02)

  • Fixes ORCiD validation, by adding the new ISNI block range.

Version 1.2.0 (2023-01-30)

  • schemes: add support for viaf and urn

Version 1.1.12 (2022-02-28)

  • Replaces isbnid_fork with isbnlib

Version 1.1.11 (2022-01-28)

  • Normalize pmid + their URL identifiers

Version 1.1.10 (2022-01-11)

  • Add purl.fdlp.gov as a valid PURL netloc

  • Normalize ror identifiers

Version 1.1.9 (2021-08-30)

Version 1.1.8 (2020-08-13)

  • Adds support for GEO and ArrayExpress identifiers.

Version 1.1.7 (2020-06-22)

  • Updates Software Heritage identifiers

  • Adds Research Organization Registry identifiers

  • Fixes DeprctationWarnings by using raw strings for regular expressions

Version 1.1.6 (2020-05-07)

  • Deprecates Python versions lower than 3.6.0. Now supporting 3.6.0 and 3.7.0.

Version 1.1.5 (2020-02-26)

  • Adds support for Software Heritage identifiers.

  • Fixes handling of non-digit characters in DOI detection.

Version 1.1.4 (2019-09-27)

  • Adds support for ASCL identifiers.

  • Fixes the ADS identifier regex to also detect lower-case author initials.

Version 1.1.3 (2019-09-17)

  • Adds support for HTTPS ORCiD identifiers.

Version 1.1.2 (2019-02-12)

  • Adds support for HAL identifiers.

Version 1.1.1 (2018-11-18)

Version 1.1.0 (2018-08-17)

  • Adds support for genomic identifiers: SRA, BioProject, BioSample, Ensembl, UniProt, RefSeq, GenBank/RefSeq.

  • Fixes bug in bibcode detection for non-capitalized journals.

Version 1.0.1 (2018-05-02)

  • Fixes bug causing invalid DOIs to be accepted.

Version 1.0.0 (2017-12-07)

  • Fixes handling of unicode characters in DOIs.

  • Adds support for APS style arXiv identifiers.

Version 0.2.4 (2017-01-30)

  • Removes Python 3.3 from a list of supported Python versions and adds Python 3.6

  • Moves from isbnid (v0.3.4) to isbnid_fork (v0.4.4) library.

Version 0.2.3 (2016-09-21)

  • Adds an optional parameter in idutils.to_url to use HTTPS scheme for PID providers that support it.

  • Detects and parses Handles and DOIs without the “http(s)://”, and ignores whitespace after scheme tags (eg. “doi: 10.123/456”).

Version 0.2.2 (2016-09-16)

  • Fixes issue where a valid ISBN with dashes and spaces could not be normalized.

Version 0.2.1 (2016-06-17)

  • Changes ISBN normalization to use isbnid instead of isbnlib. Now, importing this library will not change the default socket timeout, resulting in unwanted side effects.

Version 0.2.0 (2016-04-07)

Version 0.1.1 (2015-07-22)

  • Fixes GND validation and normalization.

  • Replaces invalid package name in run-tests.sh and makes run-tests.sh file executable. One can now use docker-compose run –rm web /code/run-tests.sh to run all the CI tests (pep257, sphinx, test suite).

  • Initial release of Docker configuration suitable for local developments. docker-compose build rebuilds the image, docker-compose run –rm web /code/run-tests.sh runs the test suite.

Version 0.1.0 (2015-07-02)

  • First public release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idutils-1.6.1.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

idutils-1.6.1-py2.py3-none-any.whl (23.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file idutils-1.6.1.tar.gz.

File metadata

  • Download URL: idutils-1.6.1.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for idutils-1.6.1.tar.gz
Algorithm Hash digest
SHA256 4604827ed52aa272843f1c53b25ed3be864868a9abcdf0ee7932df56f94458b8
MD5 5f596001800f52cc266f11b4042e9a9c
BLAKE2b-256 231b8d35c02739e1bcf53c23107324f56565e42ab87e53d3cb82322368a024ec

See more details on using hashes here.

File details

Details for the file idutils-1.6.1-py2.py3-none-any.whl.

File metadata

  • Download URL: idutils-1.6.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 23.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for idutils-1.6.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 de24b0f5d9317052223819a99893f913d752820c3d7046d3a4e970b1221e0723
MD5 fce6ab56af7cb21e96444d79eb5f408b
BLAKE2b-256 7b9caa092c1daaac95ba6b19d9d2f0542a27692c11ec4e3175f6f98e08d49681

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page