parsanol (Python)
Python runtime for PARG artifacts — checksummed parsanol-tree/v2
envelopes that Ruby, Rust, WebAssembly, TypeScript, and now Python all
parse identically.
The engine is the real one: this package drives libparsanol (the
pure-portable C ABI cdylib, the same binary the Ruby ffi tier ships) via
ctypes. No second parser, no reimplementation.
pip install parsanol
Each platform wheel vendors the cdylib: Linux (manylinux_2_35,
x86_64), macOS (arm64), Windows (x64). There is no sdist — the Rust
sources are a submodule of the repository, not of the archive, so a
source install could never load the engine. Point a locally built
library at the runtime with PARSANOL_CDYLIB=/path/to/libparsanol.
from parsanol import PargArtifact
artifact = PargArtifact.from_path("demo.artifact.json") # verifies sha256
tree = artifact.parse("iso 12345", "identifier") # shaped tree
run = artifact.run_tests() # embedded tests replayed
On rejection, parse raises ParseFailed carrying the engine's failure
wire (offset, ranked positions, expected set).
Releases
parsanol is one product on four runtimes: rs (crates.io +
@parsanol/wasm + release binaries), ruby (rubygems), python
(PyPI, this package), and typescript (npm, parsanol — the
wasm-backed runtime). Every engine update releases all four
together; a release that ships some runtimes and not the rest is
incomplete.
Status and honest boundaries (v0.1)
| Capability | State |
|---|---|
| Artifact load + sha256 verification | works — the canonical-form port is byte-exact against the reference compiler (all 39 corpus checksums verify) |
| Native parse (shaped tree, slice wire) | works |
| Failure wire | works |
| Embedded tests: accept / reject / capture | works — all 155 corpus cases replay with zero failures |
| Embedded tests: example / shape | works — the bindings/flattening port landed (ticket 0003) |
parse_recovering |
not yet — needs a C-ABI export (ticket 0002) |
| Dynamic / runtime-state artifacts | rejected upstream by contract (Ruby-tier) |
| Wheels on PyPI | published — platform wheels with the vendored cdylib; a post-publish audit replays the corpus through the wheel installed from PyPI (ticket 0001) |
Development
cargo build -p parsanol-ffi --release # in parsanol-rs
export PARSANOL_CDYLIB=$RS/target/release/libparsanol.dylib
ln -s ../parsanol-rs/corpus corpus # for the corpus gate
python3 -m pip install -e . pytest
python3 -m pytest tests -q
The corpus gate (tests/test_corpus.py) pins the size: 155 cases,
zero skips — when it moves, this repo moves with it deliberately.
Metadata
Release files for parsanol 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| parsanol-0.1.4-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for parsanol-0.1.4-py3-none-win_amd64.whl |
| parsanol-0.1.4-py3-none-manylinux_2_35_x86_64.whl | Python 3 | none | Linux glibc 2.35+ x86-64 | Details for parsanol-0.1.4-py3-none-manylinux_2_35_x86_64.whl |
| parsanol-0.1.4-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details for parsanol-0.1.4-py3-none-macosx_11_0_arm64.whl |
Total release size: 2.6 MB
Release files / parsanol-0.1.4-py3-none-win_amd64.whl
| Download URL | parsanol-0.1.4-py3-none-win_amd64.whl |
|---|---|
| Size | 814.7 kB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5d147ebcb4ee84b3312a0144c3584c1d76c2b4cc6627819a167370d02979a90b
|
|
BLAKE2b-256 checksum How to use checksums |
af8030c3610dcf1b023275b835899d920e17d1fcb577875e8713b8fa907c6fb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logRelease files / parsanol-0.1.4-py3-none-manylinux_2_35_x86_64.whl
| Download URL | parsanol-0.1.4-py3-none-manylinux_2_35_x86_64.whl |
|---|---|
| Size | 974.1 kB |
| Tags | Linux glibc 2.35+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
dd93cb8b255b1625eb8e6e66ace11ddd701dc78d8297c5b3f2f506f311359e6d
|
|
BLAKE2b-256 checksum How to use checksums |
2bda61cacc929089ba6c6e11b0e67fbaab5e76da2c619a2531a06f70c9f883be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logRelease files / parsanol-0.1.4-py3-none-macosx_11_0_arm64.whl
| Download URL | parsanol-0.1.4-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 848.7 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d6ee1e8cf8144e50b4b22064e9a8839fa4413cd2ebef0a35017b7323160e19ce
|
|
BLAKE2b-256 checksum How to use checksums |
9093ba02a1510adf5b097abdc90685a7b6e163ce290b88fe7adb0aa2113f1139
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logSecurity for parsanol 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 3 files in this release have been uploaded with provenance metadata.
Attestation for parsanol-0.1.4-py3-none-win_amd64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.