Skip to main content

OC-Earley

Let JSON nest as deeply as its schema allows.

Exact recursive JSON Schema recognition and token masking for Rust and Python.

License

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)

Source distribution for oc-earley 0.1.0
File Size Uploaded
oc_earley-0.1.0.tar.gz 142.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for oc-earley 0.1.0
File
oc_earley-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
oc_earley-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
oc_earley-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
oc_earley-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
oc_earley-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
oc_earley-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
oc_earley-0.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
oc_earley-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
oc_earley-0.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
oc_earley-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
oc_earley-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details

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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

20 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page