acorn-py 🌱
Python bindings for the acorn-lib crate
So what? Big deal...who cares?
acorn-py provides Python bindings for selected APIs from ACORN's acorn-lib and acorn-schema Rust crates. The Python package is independently versioned from ACORN.
Installation
Pixi
⭐ Recommended
pixi add acorn-py --pypi
Poetry
poetry add acorn-py
Pip
pip install acorn-py
Example Usage
from acorn.schema.validate import is_ark, is_arxiv, is_doi, is_orcid, is_ror
# Archival Resource Keys
assert is_ark("https://n2t.net/ark:12148/btv1b8449691v/f29")
# arXiv identifiers
assert is_arxiv("arXiv:2106.09685")
# Digital Object Identifiers
assert is_doi("10.11578/dc.20250604.1")
# Open Researcher and Contributor Identifiers
assert is_orcid("https://orcid.org/0000-0002-2057-9115")
# Research Organization Registry identifiers
assert is_ror("01qz5mb56")
Compatibility
The distribution requires Python 3.10 or newer and uses a CPython stable-ABI wheel built with Maturin. The initial standalone release pins acorn-lib and acorn-schema 0.1.76 to a public ACORN commit because acorn-schema is not yet available from crates.io. Binding versions do not track Rust crate versions.
acorn-py exposes a selected API rather than the entire ACORN library. See the binding source for the registered classes and functions.
Development
Install Pixi, then run:
make check
make test
make wheel-smoke
The test matrix covers Python 3.10 and 3.13. make wheel-smoke builds the ABI3 wheel, installs it into a clean environment, imports acorn, and verifies package metadata.
Publishing
See the maintainer release checklist for the complete versioning, validation, tagging, and approval procedure.
GitLab CI always builds a source distribution and a manylinux2014 x86-64 wheel. With matching project runners, enable ACORN_PY_ENABLE_LINUX_ARM64, ACORN_PY_ENABLE_MACOS_X86_64, ACORN_PY_ENABLE_MACOS_ARM64, and ACORN_PY_ENABLE_WINDOWS_X86_64 to add Linux ARM64, both macOS architectures, and Windows x86-64 wheels. Native macOS and Windows runners must provide Pixi; Linux uses the pinned official Maturin image.
Linux wheel builds use vendored OpenSSL so both manylinux architectures have the same supported cryptographic dependency instead of relying on the build image's system OpenSSL.
Issues in Python wrappers, packaging, or wheels belong in the acorn-py issue tracker. Issues in the underlying Rust behavior belong in the ACORN issue tracker.
Linux note
On Linux, you may need to augment your pixi.toml with:
[system-requirements]
libc = { family = "glibc", version = "2.34" }
Metadata
Release files for acorn-py 0.1.37
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| acorn_py-0.1.37.tar.gz | 95.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acorn_py-0.1.37-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| acorn_py-0.1.37-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| acorn_py-0.1.37-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 12.1 MB
Release files / acorn_py-0.1.37.tar.gz
| Download URL | acorn_py-0.1.37.tar.gz |
|---|---|
| Size | 95.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19b2e76b6ae7aa238a89b49db5726d771ec094912d58ce2675693faf1c807bbb
|
|
BLAKE2b-256 checksum How to use checksums |
ba6868f12c84ecccaceced19fc607e2b1fca05a65a9dc0ff728530886d3aa313
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / acorn_py-0.1.37-cp310-abi3-win_amd64.whl
| Download URL | acorn_py-0.1.37-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3025bc0f9cb47b5eace1c880905b2561b3e31e2aabfbc475b73004f2c8f43aae
|
|
BLAKE2b-256 checksum How to use checksums |
f0b30dba6eebbc5dc47d545b9c9130229323a84ff4a601d9528d163631513ea0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / acorn_py-0.1.37-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | acorn_py-0.1.37-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c15e529d8dab05fa4b3528ae4c239edd029f88e67ad2e02458841141e9510f9e
|
|
BLAKE2b-256 checksum How to use checksums |
3b8b95c9fbbfbc280b63b6e2397f4e59009a02bba7ba285b3bae462b46cb57e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / acorn_py-0.1.37-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | acorn_py-0.1.37-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a5fe52978ee12abec8e246a7da1fe9ef280e5b4867aa24e9b3350e0ae30e4aec
|
|
BLAKE2b-256 checksum How to use checksums |
acfc563453e1be7ae30c63e991103c5edf4490d2fc08268d70b2646d4bb7cfa5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|