Skip to main content

pykeleusma

CI Wheels PyPI Python 3.12+ Keleusma 0.2.2 License: 0BSD Status: early development

Python bindings for Keleusma, a total functional stream processor whose programs have statically bounded worst-case execution time and memory use. The goal is to run Keleusma scripts inside a Python program, for example to drive a PyGame frame loop or to compute alongside NumPy.

The distribution is pykeleusma and the import package is keleusma, following wrappers such as pyzmq, which imports as zmq, and pycairo, which imports as cairo.

Status

Early development. Version 0.2.2.0 builds against the published Keleusma 0.2.2 from crates.io. Compiling, verified construction, calling, resuming, streaming, value conversion, Python natives and shared data work, as do the book's structs, enums and options, big numbers, opaque host values, recoverable native errors, bundled libraries, precompiled, signed and encrypted bytecode, hot swap and custom cost models. The ten example scripts that ship with Keleusma run in tests with their stated results, and so do three examples of this repository's own. Version 0.2.2.0, released on 2026-10-26, is the first release published to PyPI.

The design is docs/architecture/BINDING_DESIGN.md, the first milestone is docs/roadmap/V0_1_0.md, and changes are listed in CHANGELOG.md.

Limitations

This is a best-effort binding for Keleusma 0.2.2. Most of its limitations come from defects and gaps in that Keleusma release, which have been reported to the Keleusma project. They are expected to clear when the public Keleusma 0.2.3 is released. Some are already fixed on Keleusma's development branch. The rest have not been confirmed fixed, so each will be checked when the binding moves to 0.2.3, and any that remains will be listed then. The move is planned in docs/architecture/MIGRATION_V0_2_3.md.

Limitations from Keleusma 0.2.2, expected to clear with 0.2.3.

  • Arena sizing is measured, not proven. Keleusma 0.2.2 sizes the arena too small after a stream's first Reset, so the binding adds a margin found by measurement. Composite arguments, such as tuples carrying text, draw on a budget the host chooses, argument_bytes, rather than on a computed bound.
  • Yield types are checked only in part. Keleusma 0.2.2 accepts a yield whose value does not match the declared type, and reading such a value can crash the process. The binding refuses every mistyped yield it can detect and every text-bearing yield whose type Keleusma did not record, but it cannot check every expression.
  • Private data starts as (), not zero, although the book says zero. Assign a private field before reading it.
  • Assign a private array element by element. In 0.2.2, pv.a = [x, y] fills only the first element's slot, so a later pv.a[1] reads (), while pv.a[0] = x and pv.a[1] = y work.
  • Generic types cross in one direction only. A type-generic struct or a const-generic enum can be returned but not passed in, and a type-generic enum is not supported, because Keleusma 0.2.2 lays out their instances inconsistently.
  • Hot swap cannot seed composite private fields. Only scalar fields and arrays of scalars can be carried into a new module.
  • Text + Text fails at run time, although the book says it works.
  • Library declarations are not checked by Keleusma. The binding refuses a script whose use line for a bundled library native differs from the library's signature.

Moving to 0.2.3 will also change one thing for the worse. Keleusma 0.2.3 changes the bytecode version from 1 to 2 and rejects version 1, so bytecode saved with this release will not load after the move. Keep the source of every script, and compile it again.

Limitations of the binding's own design, which 0.2.3 does not change.

  • Python is outside every bound, as the next section explains.
  • A VM belongs to the thread that creates it. A compiled Module may be shared between threads.
  • Bytecode loaded from bytes has no declared types, so only scalars and text cross its boundary.
  • Some shapes are refused as inputs. Nested options, whose None would be ambiguous, and refined newtypes, whose rule is script code the host cannot run.
  • Keys passed from Python cannot be wiped. A signing seed or decryption key lives in a Python bytes object, which the binding cannot zero.
  • Shared data is copied. A NumPy array cannot yet serve as a VM's shared data block without a copy.

What is guaranteed, and what is not

Keleusma proves an upper bound on the time and memory of a script before it runs. That bound covers the script, and the bounds declared for each native. It never covers Python.

  • Python code is outside every bound. That includes a Python callable registered as a native, the binding's conversion of values, Python objects carried as opaque values, and anything the host does between calls. A native can run for any time and allocate any memory.
  • A native's declared bounds are promises, not limits. The wcet and wcmu_bytes given for a native are attestations the host makes and Keleusma trusts. Keleusma uses them to size the arena and to compute vm.wcet_per_iteration, but Python does not obey them. A script that calls a Python native has a worst case only for its own part.
  • The figures are in Keleusma's units. vm.wcet_per_iteration is the worst case of one iteration of a loop main in nominal cycles, the cycle costs of Keleusma's nominal cost model, which are not the cycles of any particular processor and not seconds. vm.arena_capacity is the arena's size in bytes.
  • Two limits are empirical in this release. The arena margin and the check of yield types, both described under Limitations. The design document records the evidence.

What the binding does guarantee is that failures surface as Python exceptions. A verification failure raises VerifyError, a runtime fault raises VMError and marks the VM failed, and a native's own exception reaches the caller unchanged.

Installing

pip install pykeleusma

Prebuilt wheels cover Linux with glibc and with musl, such as Alpine, macOS, and Windows, each on x86-64 and ARM64. On each, one wheel serves CPython 3.12 and later through the stable application binary interface, and free-threaded CPython 3.14t and 3.15t, which run without the global interpreter lock, get a wheel each. Elsewhere, pip builds from the source distribution, which needs a Rust toolchain of at least 1.88. Continuous integration tests that path on FreeBSD 15.1, for which PyPI accepts no wheels.

A VM belongs to the thread that creates it, and a compiled Module may be shared between threads. That holds with and without the global interpreter lock.

The version is the Keleusma release the binding is built against, followed by a fourth part that counts binding releases against it. Version 0.2.2.0 is the first binding release for Keleusma 0.2.2, and keleusma.KELEUSMA_VERSION reports the linked release. Bytecode saved by one Keleusma release may not load under another, as described under Relationship to Keleusma.

Using it

import keleusma

module = keleusma.compile("fn main() -> Word { 40 + 2 }")

try:
    keleusma.compile("fn main() -> Word { $ }")
except keleusma.SourceError as error:  # LexError, ParseError or CompileError
    print(error.msg, error.lineno, error.colno)  # unexpected character '$' 1 21

vm = keleusma.VM(module)  # raises keleusma.VerifyError if the verifier rejects it
assert vm.call() == keleusma.Finished(42)

doubler = keleusma.compile("loop main(e: Word) -> Word { let n = yield e * 2; n }")
stream = keleusma.VM(doubler)
match stream.call(1):
    case keleusma.Yielded(value):  # 2
        print(value)
stream.resume(10)  # keleusma.Reset(), the end of one iteration
stream.resume(20)  # keleusma.Yielded(40), the start of the next
  • Values convert by the types main declares. Word and Byte become int, bool stays bool, Float becomes float, Text becomes str, tuples become tuple, arrays become list, and Fixed<N> becomes keleusma.Fixed, an exact Fraction that remembers its width. A struct becomes a dict of its fields, an enum value a keleusma.Variant, and an Option either None or the value. A Multiword<N, F> big number becomes an int, or an exact Fraction when F is not zero. A type the script names but does not define is an opaque host type, and any Python object passes through it unchanged. Out-of-range integers raise OverflowError instead of wrapping.
  • Streams. vm.stream(*args, inputs=...) drives a VM as a generator. A loop main reports Reset after each iteration, and the next input starts the next one. vm.step(value) advances one iteration in a single call, for a frame loop.
  • Natives are passed as keleusma.VM(module, natives={"host::f": f}), or as keleusma.Native(f, wcet=..., wcmu_bytes=...) to declare bounds, which size the arena or are refused. A native the script imports with use external needs keleusma.Native(f, max_invocations=n), the attested calls per iteration.
  • State. Private data fields start as (), not zero, so assign one before reading it. A shared data block is owned by the VM, which keeps it across calls. vm.call(x, shared=buffer), with a bytearray of vm.shared_data_bytes bytes, syncs the block from buffer, runs, and flushes the block back to it, and vm.shared_data returns a copy of it. vm.read_shared() and vm.write_shared({"field": value}) convert the block's fields by their declared types.
  • Arena budget. A VM reserves argument_bytes, 4096 by default, of its arena for composite arguments such as tuples carrying text. A host that passes larger values gives a larger figure. vm.arena_peak_bytes shows the most the VM has used.
  • Native errors. A native that raises keleusma.NativeError(code) hands code to a script that handles it with host::f(x) { ok(v) => v, error(code) => ... }. Any other exception fails the call and reaches the caller unchanged.
  • After a runtime error a VM reports failed and refuses further use, because Keleusma leaves its state undefined, until vm.reset() clears the error and keeps the data segment.
  • Libraries. VM(module, libraries=["math"]) offers Keleusma's bundled math, audio or shell natives, and keleusma.library_signatures("math") gives the declarations a script includes. A script's declaration of a library native must match the library's.
  • Other cost models. vm.wcet_per_iteration_with({"CheckedAdd": 3}) computes the worst case under a cost table of the host's, keyed by the names in keleusma.OP_NAMES, with every other opcode at its nominal cost.

Bytecode, signing and hot swap

import keleusma

seed = bytes(range(32))  # an Ed25519 signing seed, kept secret by whoever signs
trusted = keleusma.signing_public_key(seed)

source = "signed loop main(t: Word) -> Word { let n = yield t + 1; n }"
data = keleusma.compile(source).to_signed_bytes(seed)  # bytes for a .kel.bin file
update = keleusma.load_module(data, verifying_keys=[trusted])

baseline = keleusma.compile("loop main(t: Word) -> Word { let n = yield t * 10; n }")
vm = keleusma.VM(baseline)
vm.register_verifying_key(trusted)  # from now on, only signed code may be swapped in
vm.call(1)
vm.resume(0)  # keleusma.Reset(), an iteration boundary
vm.replace_module(update)
assert vm.call(1) == keleusma.Yielded(2)

A module loaded from bytes has no declared types, so only scalars and text cross the boundary. Bytecode is code. Its checksum catches corruption, not tampering, and Keleusma's decoder is not known to be robust against crafted bytes, so load unsigned bytecode only from a source as trusted as the script's own source. A signature tells the host who produced the bytes. It protects only as far as the holders of the trusted keys are trusted. to_signed_bytes(seed, recipient_key=...) also encrypts the module, and load_module then needs the matching decryption_key. A swap happens only at an iteration boundary, keeps shared data and starts private data afresh, unless private={"field": value} seeds the new module's scalar private fields, and vm.private_data reads the running module's private fields, so state can be carried. The VM is built from the module with the larger footprint, because its arena does not grow.

import keleusma

keleusma.KELEUSMA_VERSION  # "0.2.2"
keleusma.BYTECODE_VERSION  # 1, read from the linked runtime

Examples

Three runnable examples live in the repository's examples/ directory, and tests/test_examples.py runs each one.

uv run python examples/batched_update_loop.py   # 100 session lines, one thread, a tick budget
uv run python examples/numpy_reduction.py       # a NumPy mean and variance, 8 samples per step
uv run python examples/pygame_frame_loop.py     # a bouncing ball in a window

The PyGame example opens a window, which is the documented manual check. The tests run it headless with SDL_VIDEODRIVER=dummy. Each frame advances the script by one stream iteration, as the example explains.

Interface at a glance

The shape of a host loop that drives a stream with events.

import keleusma

# Natives declared at construction size the arena with their memory bounds.
vm = keleusma.VM(module, natives={"host::draw": keleusma.Native(draw, wcet=50)})

for state in vm.stream(first_event, inputs=events):
    match state:
        case keleusma.Yielded(actions):
            ...  # perform the actions
        case keleusma.Reset():
            ...  # one iteration done; the next event starts the next one

Building

The build needs a Rust toolchain of at least 1.88 and uv.

uv sync          # builds the extension with maturin and installs the dev tools
uv run pytest
./scripts/check.sh   # the whole local gate, as continuous integration checks it

Contributing

Contributions are welcome. The steps are in CONTRIBUTING.md, and participation in the project's spaces follows the CODE_OF_CONDUCT.md. Report a vulnerability privately, as SECURITY.md describes.

Relationship to Keleusma

This repository depends only on the published crate, pinned exactly in Cargo.toml. It never builds against a Keleusma checkout and never edits the Keleusma repository. Moving to a later Keleusma release is a deliberate change, because 0.2.3 changes the bytecode version from 1 to 2. The reasons for a separate repository are in docs/decisions/STANDALONE_REPOSITORY.md.

License

0BSD, the same as Keleusma. The wheels also contain Rust crates under their own licenses, whose notices are reproduced in THIRD_PARTY_LICENSES.txt.

Metadata

Release files for pykeleusma 0.2.2.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 pykeleusma 0.2.2.0
File Size Uploaded Provenance
pykeleusma-0.2.2.0.tar.gz 230.6 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for pykeleusma 0.2.2.0
File
pykeleusma-0.2.2.0-cp315-cp315t-win_arm64.whl CPython 3.15 CPython 3.15 free-threading Windows ARM64 Details
pykeleusma-0.2.2.0-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details
pykeleusma-0.2.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64 Details
pykeleusma-0.2.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64 Details
pykeleusma-0.2.2.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
pykeleusma-0.2.2.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Details
pykeleusma-0.2.2.0-cp315-cp315t-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 Details
pykeleusma-0.2.2.0-cp315-cp315t-macosx_10_12_x86_64.whl CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64 Details
pykeleusma-0.2.2.0-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
pykeleusma-0.2.2.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
pykeleusma-0.2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
pykeleusma-0.2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
pykeleusma-0.2.2.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
pykeleusma-0.2.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
pykeleusma-0.2.2.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
pykeleusma-0.2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
pykeleusma-0.2.2.0-cp312-abi3-win_arm64.whl CPython 3.12 abi3 Windows ARM64 Details
pykeleusma-0.2.2.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
pykeleusma-0.2.2.0-cp312-abi3-musllinux_1_2_x86_64.whl CPython 3.12 abi3 Linux musl 1.2+ x86-64 Details
pykeleusma-0.2.2.0-cp312-abi3-musllinux_1_2_aarch64.whl CPython 3.12 abi3 Linux musl 1.2+ ARM64 Details
pykeleusma-0.2.2.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
pykeleusma-0.2.2.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
pykeleusma-0.2.2.0-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
pykeleusma-0.2.2.0-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details

Total release size: 40.5 MB

Release files / pykeleusma-0.2.2.0.tar.gz

Download URL pykeleusma-0.2.2.0.tar.gz
Size 230.6 kB
Tags Source
SHA-256 checksum
How to use checksums
46ec22f6b922bcd06739e5d840985b7f1adf877ab52c6f2eadc166ad0d1f2e22
BLAKE2b-256 checksum
How to use checksums
5f90193c0d53ffee4dcab7b262949b89fafed5d460bdc7aeb34bf3ba2933a845
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-win_arm64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-win_arm64.whl
Size 1.5 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
54136f42aec7d4a3d067867ade89c6456d39f9524e790ab1ce136e0e4f2d5354
BLAKE2b-256 checksum
How to use checksums
4991fb68f7fe51237d01bf3b8ad698ec3d7e1c8a5f8d12b9c30a706a7a93ba9a
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-win_amd64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-win_amd64.whl
Size 1.6 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
0353017321e1f4e838d0b3c62bc64e9e812a01356714743b9042d404d49d0f75
BLAKE2b-256 checksum
How to use checksums
dd142eea9b7129c78e277e407964a7c68d7482e6c47b27876c6543ac526872da
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Size 2.0 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
dc74df24b12e1700bdf5d593838d9e6f1a846da839aaf7a9eeaf10f09a09b9b8
BLAKE2b-256 checksum
How to use checksums
08db4839045c1a7d6d19c6b19c9cebcc437a2162652c6a9ea4500199efff295c
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Size 1.8 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
c717258d43164579ba99fad3fa6a88d7405769f50a2b811c8b2329b609dfa9cc
BLAKE2b-256 checksum
How to use checksums
0e1b4260f643e591a7d18b7ee4f4e97320be79fad0c1a6ce1c4f35967587f9a0
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
19d31435ed120d637c165723bb4dcf76e406e6bca7394ae1534bbd170b2c52b0
BLAKE2b-256 checksum
How to use checksums
390b1570bae004dc1cd5b305fb23d7132b07447daf674e944ac316fee88b6711
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3b8b5ad987605ce5f4b32633c9dddb8af29bf058a9de67bb9ed206b393c4ecc5
BLAKE2b-256 checksum
How to use checksums
da9a6cab9bd6cd51d3c247f14375ba482d39bec6e7dcdd307e4c0e3a4f8c34dd
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-macosx_11_0_arm64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8bb856df28dd698d15ffbfc7b86a7ab9bfbf088e13957c6dc908c53f56163ac9
BLAKE2b-256 checksum
How to use checksums
d74df7fea0769cdc3e40fa828a3b3d6563e12b216c746283c051ff927c39e8fb
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp315-cp315t-macosx_10_12_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp315-cp315t-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d7cb55cfd34a7ac461f07493888683f3165f8f016c09b9a0c49fbb2da84d7bb3
BLAKE2b-256 checksum
How to use checksums
ef03f90e1d35823f1d39ed236b3265d511a6c1df7c90b77c17270c67a2b9c696
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-win_arm64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-win_arm64.whl
Size 1.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
1ba898539f01c72d12ff95dfb6c8040ff50b88d6f51354633d275bb7dfe607c6
BLAKE2b-256 checksum
How to use checksums
aeb2e53729511d72c0fcbcdd25b9bdb105ccd9a63644c4123697037346398f13
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-win_amd64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-win_amd64.whl
Size 1.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
ad76bb0248808c89339b03975b21207b73dc4a4de4857dae0fa707f364e4fe2b
BLAKE2b-256 checksum
How to use checksums
eefe80bf09c90a597f8dbad2d52c6a8c7afc06e7d78f1d4e8d9ce2055f552cb7
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3cbedc362ab55934afe6b923d208ea1b971a038e5901d19fad46879397f104ca
BLAKE2b-256 checksum
How to use checksums
a4755bcd840473536ee0aceadd1213f395bae22924ea20213e6380eef2ccc456
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 1.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
83aebda3c9868eb8e8a76de445717c9acdd40d343a1eecdda09c7294f503d160
BLAKE2b-256 checksum
How to use checksums
d687849b756b48462df26152feeb12ea0d5b27b560b96853c65076bfb901266d
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4e235f99506809db967549905b154f143af5efaed3ae5996969800e78bd9c24e
BLAKE2b-256 checksum
How to use checksums
33fb9a6482dea2107ccca2fbd7af9d9507e71610a0ca56e71ce8bc2a66c26977
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d816da1604bb042c8a259ebd875149cdd18a84c8b7d267cac535a556aff31f7a
BLAKE2b-256 checksum
How to use checksums
8d1273755612c30a64249cb133fefa00a9e2f3855091e49ac290c9fcafa31f85
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dc6fb50191ed34a0f69e671d586ade8c11470e8e6dc230a4e02d9ce1b001fdd6
BLAKE2b-256 checksum
How to use checksums
8f09a61c9d8fa4ecd802592bdead335e0266a23eaa676b23b192af1392a167bf
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7bb398d3954bf923de2b5b04febe27a43b0ebe09036eff0ebe25a3f936b5d2b0
BLAKE2b-256 checksum
How to use checksums
88729f276bdfb824fbe27d8055a88c78f2a7e6e4d43ae54ad652449203b0880e
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-win_arm64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-win_arm64.whl
Size 1.5 MB
Tags CPython 3.12 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
e30b08abedb9fa3e801de08a562dd4b3c907cb221612790148801aa46ecd490f
BLAKE2b-256 checksum
How to use checksums
50bc5741c88f3f346d4aa58333bf92ecaf17d4e70c55b3d70575b43891f18411
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-win_amd64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-win_amd64.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
ab6d428115f080914bf56c9372fe39ca59757466de3691f835ef46b1772ec038
BLAKE2b-256 checksum
How to use checksums
db3f0d060ca674437672b256a5b01846e97ead3cee9b21a8e17a68055efce408
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-musllinux_1_2_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-musllinux_1_2_x86_64.whl
Size 2.0 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
b1bdf1383a4891de613023d2696f9f8f395af3ef08bd087d6644ce64a7e2dad3
BLAKE2b-256 checksum
How to use checksums
bdc9cb558d51df2196b41308bf4d59719f0b4e4d8c1bc1ec2550ec087078842a
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-musllinux_1_2_aarch64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-musllinux_1_2_aarch64.whl
Size 1.8 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
24ea0d145a692c6737cd307dae5822dd41457b9991ba5996b3cdd9d80020ffdd
BLAKE2b-256 checksum
How to use checksums
82618579ee55b7c1998823574a5278df5b2100ccf36dccb5711de76b1782e1c5
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
43c4a6323172193a181dd6a7cb18461faae18fb72aca3424e74366a1622414b6
BLAKE2b-256 checksum
How to use checksums
8eca9cd2e40aacd97ad3c224fed624f5fe0f5ce39d088c2603b098ad88dfdc52
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
759db1140676806d18431c88d1f1228c02e4038403e67b2bc6efb554965773ff
BLAKE2b-256 checksum
How to use checksums
4076024b7b1d17b207ee082eb8c28ab48faef589baf6be117045dc5c134cfc44
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-macosx_11_0_arm64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
13e9dedb0f3e7a207005833acebb5251ddd9f26b999356bfb674924da6f0cdc7
BLAKE2b-256 checksum
How to use checksums
f20eb15d5ccd8c2112624d61d47b8d850dad369d235a96ff4362bc8ed6b8f12c
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 Oct 26, 2026.

Transparency log

Release files / pykeleusma-0.2.2.0-cp312-abi3-macosx_10_12_x86_64.whl

Download URL pykeleusma-0.2.2.0-cp312-abi3-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3fecdd6494e6016f2bbadc15d2a6d35e8aff52bfb10dd86f5539e599f8385c1c
BLAKE2b-256 checksum
How to use checksums
9d635841beed2e52889ae65960ca0612244bc99309d464384980b9df04756d0e
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 Oct 26, 2026.

Transparency log

Security for pykeleusma 0.2.2.0

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 25 files in this release have been uploaded with provenance metadata.

Select from 25 files

Attestation for pykeleusma-0.2.2.0.tar.gz

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 26, 2026.

Transparency log

A 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.

Release history Release notifications | RSS feed

This release

0.2.2.0 This release

25 release files Full provenance

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