OC-Earley
Let JSON nest as deeply as its schema allows.
Exact recursive JSON Schema recognition and token masking for Rust and Python.
The depth trap · Language invariant · Constrain tokens · Parser mechanics · Useful shapes · Build
OC-Earley compiles JSON Schema Draft 2020-12 into the least powerful recognizer that can preserve its canonical JSON language. Regular schemas use a byte DFA. Recursive structure uses LALR(1) when the parse table and terminal boundaries are deterministic, with Earley as the general fallback.
The compiler never removes an assertion to make a schema compile. Unsupported semantics return a typed error, and failed finite-state certification selects a structural recognizer.
The depth trap
A finite automaton cannot remember arbitrary nesting depth. Expanding recursive $ref definitions
to a fixed depth only hides that limitation and changes the schema language. OC-Earley keeps the
finite-state path where it is exact and moves genuinely structural regions to a parser.
Three machines, one contract
| Capability | Behavior |
|---|---|
Recursive $ref |
Resolves local references as a graph without depth-limited expansion |
| Regular schemas | Compiles to the existing byte DFA and vocabulary Index |
| Mixed schemas | Collapses certified regular regions into shared terminals |
| LALR(1) | Uses deterministic tables only when parser and lexical conflicts are absent |
| Earley | Recognizes general context-free structure with correct nullable handling |
| Leo | Compresses eligible right-recursive completion chains |
| Transactions | Restores the previous state after rejection or a runtime-limit error |
| Diagnostics | Reports stable schema pointers, conflict provenance, and resource failures |
Language invariant
For schema $S$, canonical encoder $\Pi$, and lowering $\Lambda$:
\Lambda(S)=G_S,\qquad L(G_S)=\{\Pi(v)\mid v\models S\}
Backend selection preserves that language exactly:
\mathrm{Backend}(G_S)=
\begin{cases}
\mathrm{DFA}, & \text{whole language has an exact regular certificate}\\
\mathrm{LALR}(1), & \text{table and terminal boundaries are conflict-free}\\
\mathrm{Earley+Leo}, & \text{otherwise}
\end{cases}
A failed certificate means only that the finite-state compiler could not prove regularity. It does not classify the language as non-regular and does not permit an approximation.
Install
Python:
pip install oc-earley
Rust:
cargo add oc-earley
From a checkout:
uv run maturin develop --release --features python-bindings
Recognize a recursive value
from oc_earley import CompiledSchema, Vocabulary
schema = {
"$defs": {
"node": {
"anyOf": [
{"type": "null"},
{
"type": "array",
"prefixItems": [{"$ref": "#/$defs/node"}],
"items": False,
},
]
}
},
"$ref": "#/$defs/node",
}
compiled = CompiledSchema.from_json_schema(schema, Vocabulary(1, {"unused": [0]}))
recognizer = compiled.recognizer()
checkpoint = recognizer.checkpoint()
assert recognizer.advance("[[null]]") == "accepting"
recognizer.restore(checkpoint)
assert recognizer.advance("[null]") == "accepting"
advance() accepts text or bytes and returns "rejected", "live", or "accepting". A rejected
chunk leaves the recognizer unchanged.
Constrain tokens
Construct the vocabulary with the tokenizer's byte representation and use the guide for token-level decoding:
from oc_earley import CompiledSchema, Vocabulary
from oc_earley.kernels.numpy import allocate_guide_bitmask, fill_next_token_bitmask
vocabulary = Vocabulary(3, {"[": [0], "null": [1], "]": [2]})
compiled = CompiledSchema.from_json_schema(schema, vocabulary)
guide = compiled.guide(max_rollback=32)
mask = allocate_guide_bitmask(guide)
fill_next_token_bitmask(guide, mask)
guide.advance(0, return_tokens=False)
guide.rollback_state(1)
guide.is_accepting() means EOS is legal now. guide.is_finished() becomes true only after EOS is
committed. Whole-DFA guides retain their numeric state API; structural states are intentionally
opaque.
The same guide contract drives all three backends. Mask queries are pure, rejected tokens leave the state unchanged, and rollback counts committed tokens rather than parser bytes.
A model-selected recursive value
A pinned CPU run used Qwen2.5-0.5B-Instruct revision
7ae557604adf67be50417f59c2c2f167def9a775. The guide masked the model logits at every token and
the model selected:
[[[[[[null]]]]]]
The run committed EOS, reached depth 6, parsed with json.loads, and passed an independent Draft
2020-12 validator. Seed 79 used temperature 1.5 and top-p 1.0. Five earlier attempts produced valid
but shallower values; depth was not inferred from a preconstructed byte string.
Parser mechanics
An Earley item records a production prefix recognized between byte positions $i$ and $j$:
[A\rightarrow\alpha\,\bullet\,\beta,i]_j
Recognition succeeds only when the augmented start production is complete. Leo changes the amount of completion work, never the accepted language:
\mathrm{Accept}_{LeoOff}(x)=\mathrm{Accept}_{LeoOn}(x)
The packed token-mask ABI is unchanged:
M[\lfloor id/32\rfloor]\mathrel{|}=1\ll(id\bmod32)
Masks use native-endian u32 words, LSB-first, after clearing the destination buffer.
For recognizer configuration $h$ and tokenizer byte string $b(v)$, a token bit is exact:
M_h(v)=1\iff\mathrm{Live}(\mathrm{Advance}^{*}(h,b(v)))
EOS follows acceptance rather than ordinary byte traversal:
M_h(\mathrm{EOS})=1\iff\mathrm{Accepting}(h)
The trie shares token prefixes and prunes rejected subtrees. With $W=\lceil |V|/32\rceil$ mask words and $E_h$ reachable trie edges, the runtime bound is:
T_{mask}=\Theta(W)+O\!\left(E_h(C_{advance}+C_{checkpoint}+C_{restore})\right)
This does not claim constant-time Earley advancement.
Language surface
The supported contract includes objects, required properties, arrays, items, prefixItems, item
bounds, primitive types, enum, const, local $ref, anyOf, and supported exact allOf
combinations. Unsupported keywords and combinations fail explicitly. oneOf is never treated as
union, and allOf is never treated as concatenation.
uniqueItems, multipleOf, format, remote references, and unevaluatedProperties are outside
the current contract and fail explicitly when they would affect the accepted language.
Cost model
The whole-language DFA remains the fastest path. Structural compilation deduplicates literal and DFA terminals, indexes productions by left-hand side, stores sparse LALR rows, and indexes Earley waiters by symbol. Construction and recognition have configurable resource limits.
LALR work is proportional to shifts and reductions. Earley retains its classical cubic general bound and quadratic unambiguous bound; Leo gives linear behavior only for qualifying deterministic right recursion.
Useful shapes
| Shape | Why a finite automaton is insufficient |
|---|---|
| Comment threads | Every reply can contain another reply list |
| Syntax trees | Child expressions recursively contain expressions |
| File trees | Directories recursively contain files and directories |
| Organization charts | Reports can contain further reports |
| Execution trees | Each node can expand into nested work |
| JSON-LD and API schemas | Local references form recursive definition graphs |
Inspect a compilation
oc-earley tier-report schema.json
oc-earley tier-report schema.json --format json
oc-earley compile schema.json
Build
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --no-default-features
cargo test --all-features
uv run pytest -q
Lineage and license
OC-Earley is a modified fork of dottxt-ai/outlines-core. The original Apache License 2.0 text is
retained in LICENSE, and material modifications are summarized in NOTICE.
Metadata
Release files for oc-earley 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oc_earley-0.1.0.tar.gz | 142.1 kB | Details |
Built distributions (wheels)
Total release size: 47.7 MB
Release files / oc_earley-0.1.0.tar.gz
| Download URL | oc_earley-0.1.0.tar.gz |
|---|---|
| Size | 142.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f3092a0409f1873e744f922e7839c0b7a00d29128e844a32b899d113a8b62e0
|
|
BLAKE2b-256 checksum How to use checksums |
1219a55cd461f149996a23616ddb9770e55203f3adbafdf2acf5068fcfaa3f18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
ac683d7f412717906a8d7d61f782ec44cc97babaada7ca3ba3950245fbfdba24
|
|
BLAKE2b-256 checksum How to use checksums |
5794672ddae53ea7a78e2248fce89dbd450cd4a92677dcd5462999ce10319e3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
43101577dcc7703696d707b3eb788a1d02cd19b8c6cf39928299939eb82b9eb3
|
|
BLAKE2b-256 checksum How to use checksums |
d20af7cffef56b2363741f9c823e6b49f1a649d2f7f87906dd426b72961ec3dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4a71ed94e561c3335c936d75bd5e65e2a4b56f80b5a117967ace19afba52f352
|
|
BLAKE2b-256 checksum How to use checksums |
93f9224cfbac480540bad55b90aeb399464835ef4dd040b157ecdc4a28cc7005
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
475ac0ef06defe486cbab1fda36c58193019d6cb71838357f8d76a7d3cd14626
|
|
BLAKE2b-256 checksum How to use checksums |
1eb7e6a3eb6f8f08761869c0c7fc47ba508ff0f66d9263d4dc40a4cf55d3336c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp314-cp314-win_amd64.whl
| Download URL | oc_earley-0.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
491f8c929b8b9766ed661d808799f0d2ff263c58d90cf9f75beb4e75e11389c3
|
|
BLAKE2b-256 checksum How to use checksums |
e913cdaf9882bc4ebdfea13b28d2ace590e859c7b63a89eee0390cc5213c514b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
91128eef6bd58bbfa19390235a30a605fcfb572d4142c152ba2f8d044d94c534
|
|
BLAKE2b-256 checksum How to use checksums |
f2202035c7e553d9dc88c863084a6271f229d875f82a20bff370e36ca498b7a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | oc_earley-0.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b4bbe10b8ae9448c4d9a561c0bf477aedcb2af780ae4601e3345233ada6605cf
|
|
BLAKE2b-256 checksum How to use checksums |
026cdc91606a74c962d9936bae220ac4cdee323e3a22855d6e730bdd3eb143ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp313-cp313-win_amd64.whl
| Download URL | oc_earley-0.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f910162aa1f757449e88a205465863a08e3d5ad41395cd73ff250711fc8ade60
|
|
BLAKE2b-256 checksum How to use checksums |
843493cc7ca94300d4a21e15eb672c5de0f469cb9925df2a59d2cba76a57ad4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b37a26e162e7f9b2fb187748fc5aebdd1b4909cd02ecff56e1f7079d6f4381a8
|
|
BLAKE2b-256 checksum How to use checksums |
1d9bc565d770f025df445c33220612af5e43b90d1966467136314801e07e1c91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | oc_earley-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d3234fb01c97356ae69a4fb578489d349c066c5d1af7e2be07b7824a4873a2f1
|
|
BLAKE2b-256 checksum How to use checksums |
38d249e0ed89164453905aa4890b47e4640cc711850fa8603659b1e6c0a017db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | oc_earley-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e7a0a8961df66311d94e1eb4b6a306fee6c4e3124217c2e559adf352c918ecfd
|
|
BLAKE2b-256 checksum How to use checksums |
555911601efd2418563e8bdae00c23229b933a09b466ccaaa987fe37749711dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
850fdcffc6182967a29f8fbbf2ea90b57b8f8a16ddf3354f73693ae4ce5e9ddd
|
|
BLAKE2b-256 checksum How to use checksums |
642cf7771a65a0e3bf327d98e7420d3fc286c318b76becac6fd46be05a9ce3fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | oc_earley-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7681ac7fa1475db288a15662ad3b2e5b6672feaa21250bc799d83552c6e84d18
|
|
BLAKE2b-256 checksum How to use checksums |
fe459b7da97606f6302d6483d617be35ad75dd89c0c09a2c43308494e27c01e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp311-cp311-win_amd64.whl
| Download URL | oc_earley-0.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2804cf96de1b138cc9a99b7ed8b19a1831b9cc2f36b685a6a90a668985b6c86d
|
|
BLAKE2b-256 checksum How to use checksums |
e04201cc9cf8726e47cbb516568a0d77beae910b87232a9592bbf6c7e8334f0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f141368d3bc25b07fb56fdeb2c812247c63061f40c33411b974db2c556ffd2ff
|
|
BLAKE2b-256 checksum How to use checksums |
916e4cd4e510a80bb2fb4ad5f6d6a810c084cf282b239b740305cb77335657fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | oc_earley-0.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a4a7e3e7cf7e13800e08dd2a361a1019c14d2aeeec240ac6eb01b300fe1202c7
|
|
BLAKE2b-256 checksum How to use checksums |
19cd6241828b9547138052f32fbb1b657f1d8d04005926fefa37c285dc5dd879
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp310-cp310-win_amd64.whl
| Download URL | oc_earley-0.1.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
570ecedb4df352b67ced9591774a40f9f88422af9b543eaef9ccf1cb94401b20
|
|
BLAKE2b-256 checksum How to use checksums |
2ea5d1f833e0ac7fcdca22fcb47775d21106428ac1175d9c4f6f7d894ae17cdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae8a6169ab3a6dd0f5a230f22bfe8b3890573c785aecded694cb282d624de2e7
|
|
BLAKE2b-256 checksum How to use checksums |
791fbdbf8fa06ff1444fed1e247599b02b9e4ed26a32d43f31ee2221cadb4e3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency logRelease files / oc_earley-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_earley-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0217c48aaa8ead20df288584e44ffff0773f30d88f2619bc318ce66f25dfc7e4
|
|
BLAKE2b-256 checksum How to use checksums |
846172c2fb73baa24be913e7322dc007df0e32c749deedc2b88471c0c94b814b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 11, 2026.
Transparency log