Skip to main content

ZenFronts

ZenFronts is a compact facade for asynchronous, noisy, multi-objective population management (Population-Based Training style), built around a Cython-accelerated Monte Carlo Pareto-ranking kernel.

ZenFronts targets the operational regime where:

  • objective signals arrive asynchronously (partial metric updates are common),
  • objective values are stochastic (noise, heavy tails, drift),
  • selection must be reproducible (deterministic under a fixed seed),
  • one wants a clear and auditable separation between evaluation, state, and selection.

ZenFronts does not prescribe a particular optimizer. Instead, it provides a rigorously defined, high-throughput selection engine and a small, policy-driven API to manage a population.


Visual intuition

The figure below shows a typical snapshot produced by examples/demo_noisy_zdt1_snapshots.py.

  • Left panel (objective space): point means (μ) with semi-transparent uncertainty ellipses derived from per-objective variances (σ²).
  • Right panel (rank space): the same population expressed in stable rank coordinates, which is the space in which the Pareto machinery is applied.

Color encodes an aggregate selection-quality scalar (quality_score) computed from Monte Carlo statistics.

ZenFronts snapshot (objective space vs rank space)

Note on reproducibility: for release-tag pinning on PyPI, replace main with your tag (e.g. v1.0.4) in the URL.


At a glance

What ZenFronts provides

  • Population state and lifecycle

    • add_point, add_random_point, delete_point (tombstone model)
    • stable point_ids for logging/auditing
  • Asynchronous objective/criterion storage

    • per-(point, criterion) statistics: μ, trend, σ², t_last, ready
    • updates from raw samples or external statistics
    • eligibility gate: only fully ready points are considered by selection
  • Compiled Monte Carlo Pareto selection core

    • Monte Carlo sampling from (μ, σ²) per objective
    • Pareto ranking in stable rank-space
    • per-point distribution summaries: place/front/within (mean, std, median, quantiles)
  • Deterministic selection

    • fixed seed yields stable winners/losers and statistics
  • Versioned selection-statistics schema

    • stable contract for downstream pipelines and experiment tracking

What ZenFronts does not provide

  • a parameter space DSL (you inject a sampler/mutator)
  • a training/evaluation runtime (you call update_crits when metrics arrive)
  • a black-box optimizer with hidden heuristics (policies are explicit)

Installation

pip install zen-fronts

For local development with examples and tests:

pip install -e ".[dev,examples]"

Quick start

Runnable demo (produces the snapshot above)

python examples/demo_noisy_zdt1_snapshots.py --out out/demo --epochs 80

Minimal API sketch

from zen_fronts import ZenFronts
from zen_fronts.selection import SelectionConfig

# Define two objectives (minimization in this example)
crits = {"f1": "min", "f2": "min"}

zf = ZenFronts(
    crits=crits,
    selection=SelectionConfig(
        n_samples=256,
        percentile=0.2,
        seed=42,
        collect_stats=True,
        quantiles_mode_i=2,          # 0 exact, 1 P² streaming, 2 auto-by-budget
        quantiles_budget=200_000,    # used when quantiles_mode_i=2
    ),
    sampler=lambda rng: {"x1": rng.random(), "x2": rng.random()},
    # mutator must return (child_params, meta)
    mutator=lambda parent, rng, **kw: (
        {
            "x1": parent["x1"] + rng.normal(0.0, 0.05),
            "x2": parent["x2"] + rng.normal(0.0, 0.05),
        },
        {},
    ),
)

# 1) initialize a population
zf.add_random_point(128)

# 2) repeatedly: ingest metrics -> refresh -> replace
for t in range(1, 101):
    # ingest / compute metrics for active points
    for pid in zf.active_point_ids():
        params = zf.params(pid)
        f1, f2 = evaluate(params)  # user-defined
        zf.update_crits(pid, {"f1": f1, "f2": f2}, t=float(t))

    losers = zf.refresh(now=float(t))

    for loser in losers:
        parent = zf.choose_parent(loser)
        child, _meta = zf.perform_new(parent, looser=loser, remove_looser=True)

        # IMPORTANT: evaluate the child at least once, otherwise it stays invisible
        f1, f2 = evaluate(zf.params(child))
        zf.update_crits(child, {"f1": f1, "f2": f2}, t=float(t) + 0.1)

Conceptual model

Points and tombstones

A point is an individual in the population, identified by an integer point_id.

  • delete_point(point_id) marks a point inactive (a tombstone).
  • tombstones do not participate in selection.
  • params(point_id) raises KeyError for tombstones.
  • info(point_id) remains available; its last selection snapshot is preserved.

This supports stable experiment logging: you can keep IDs forever while still maintaining a bounded active population.

Criteria and readiness

Each criterion is defined by a name and a direction ("min" or "max"). Internally, selection operates in a unified maximization convention.

ZenFronts implements an explicit ready gate:

  • a point becomes eligible for selection only when it is ready on all criteria,
  • partial updates are allowed (typical for asynchronous pipelines),
  • refresh() considers only active ∩ fully_ready points.

Selection in rank space

Selection is performed using Monte Carlo sampling from the per-criterion distributions.

For each Monte Carlo sample:

  1. sample a synthetic objective vector for each point,
  2. transform each objective into stable ranks (per objective),
  3. compute Pareto fronts and within-front ranks in this rank space,
  4. accumulate per-point statistics across samples.

This rank-space formulation reduces sensitivity to scaling and improves robustness under noise.


How to run an optimization cycle (operational semantics)

A full guide is provided in docs/how_to_run_cycle.md. The essential rules are below.

1) When is a point considered ready?

A point participates in refresh() iff it is:

  • active (not a tombstone), and
  • ready on every criterion.

Practical consequence: adding a point (or creating a child) does not automatically make it eligible for selection; you must provide at least one update for every criterion.

2) What to do with newly created children

perform_new() creates a child via your mutator and (optionally) removes a loser.

A new child is not ready until you evaluate it and call update_crits(child_id, ...) for all criteria.

A safe pattern per epoch is:

  1. ingest updates for existing active points,
  2. call losers = refresh(),
  3. for each loser: choose a parent, spawn a child, evaluate the child once, update criteria.

This prevents two common pathologies:

  • silently shrinking the effective population (many non-ready children),
  • delayed “mass activation” of children that suddenly distort selection.

3) Choosing percentile and n_samples

Let N be the number of active-and-ready points. ZenFronts selects:

  • k = ceil(percentile · N) losers (and symmetrically winners)

Heuristics:

  • percentile (selection pressure)

    • start at 0.2–0.3 for PBT-like loops,
    • for small N, keep k ≥ 2 to reduce jitter.
  • n_samples (Monte Carlo stability)

    • low noise: 64–128
    • medium noise: 128–256
    • high noise / heavy tails: 512+

Quantiles (median/q25/q75) can be computed exactly or via streaming P². A strict contract is enforced by tests:

Changing the quantile mode must not change winners/losers, mean/std, or quality_score.


Selection statistics contract (versioned)

After each refresh(), ZenFronts persists a per-point selection snapshot under info(pid)["selection"].

The structure is explicitly versioned:

  • schema_name = "zen_fronts.selection_stats"
  • schema_version = "1.0.0"

Downstream code can validate and normalize this contract:

from zen_fronts.selection.schema import validate_selection_stats

st = validate_selection_stats(zf.info(pid)["selection"])  # raises on incompatible schema

Compatibility rule:

  • newer minor/patch versions are accepted,
  • newer major versions are rejected.

This enables additive evolution of telemetry without breaking consumers.


Performance

ZenFronts is engineered so that, at typical population sizes (≈128–256, ≈3 objectives), the dominant cost is the compiled Monte Carlo kernel.

Empirical measurements (AMD Ryzen 5950X, Linux, Python 3.12.12, NumPy 2.4.1)

End-to-end refresh() (median; M=3, percentile=0.2, criteria supplied as external stats; collect_stats=True):

N (active+ready) n_samples median refresh() practical interpretation
128 64 ~10 ms interactive
128 128 ~18 ms interactive
128 256 ~35 ms interactive
128 512 ~68 ms moderate
128 1024 ~134 ms heavy
256 64 ~28 ms interactive
256 128 ~52 ms interactive
256 256 ~102 ms moderate
256 512 ~202 ms heavy
256 1024 ~396 ms very heavy

Rule of thumb at M=3 on this hardware:

  • refresh_ms ≈ a + b · n_samples

    • for N=128: b ≈ 0.13 ms/sample
    • for N=256: b ≈ 0.38 ms/sample

Scaling intuition

The kernel builds and uses a domination matrix; the dominant term scales approximately as:

  • O(n_samples · N² · M)

Consequences:

  • doubling n_samples roughly doubles runtime,
  • doubling N increases runtime by roughly 3–4× in the measured regime,
  • increasing the number of objectives scales sublinearly in some regimes due to early-exit in dominance checks.

Benchmark scripts

  • Core kernel only:

    python examples/bench_mc_rank.py --out out/bench_mc_rank.csv
    
  • End-to-end loop (“as in production”):

    python examples/bench_refresh.py --out out/bench_refresh.csv \
      --Ns 128,256 --Ss 64,128,256,512,1024 --epochs 30 --reps 3
    

Development notes

Cython HTML annotation

To generate Cython HTML annotation (hot-line visualization), enable annotate=True in the cythonize(...) call or guard it behind an environment variable (recommended).

Typical local workflow:

CYTHON_ANNOTATE=1 python setup.py build_ext --inplace

The generated *.html files appear next to the compiled modules.


Repository navigation

  • src/zen_fronts/ — library implementation
  • src/zen_fronts/selection_core/ — Cython Monte Carlo ranking kernel
  • docs/how_to_run_cycle.md — operational semantics and tuning guidelines
  • examples/ — runnable demo + benchmarks
  • tests/ — unit tests and property-based tests (Hypothesis)

License

MIT (see LICENSE).

Metadata

Release files for zen-fronts 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zen-fronts 1.0.5
File Size Uploaded
zen_fronts-1.0.5.tar.gz 650.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-fronts 1.0.5
File
zen_fronts-1.0.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_fronts-1.0.5-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
zen_fronts-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
zen_fronts-1.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
zen_fronts-1.0.5-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_fronts-1.0.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_fronts-1.0.5-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
zen_fronts-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
zen_fronts-1.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
zen_fronts-1.0.5-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_fronts-1.0.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_fronts-1.0.5-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
zen_fronts-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
zen_fronts-1.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
zen_fronts-1.0.5-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 20.4 MB

Release files / zen_fronts-1.0.5.tar.gz

Download URL zen_fronts-1.0.5.tar.gz
Size 650.8 kB
Tags Source
SHA-256 checksum
How to use checksums
105ca2611edafdd2a942b9d9fc420221e7c3983622e25202ae62b02adf48a7fc
BLAKE2b-256 checksum
How to use checksums
f45f9d59b8bce7dde61e00d33547688b9108bec1b1811bc1dfe28accd5b343c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp312-cp312-win_amd64.whl

Download URL zen_fronts-1.0.5-cp312-cp312-win_amd64.whl
Size 677.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e22161f71adece1afab04cb7964e52832d4d448009c5a1c84a25919b1f7aeec9
BLAKE2b-256 checksum
How to use checksums
474fef4beb78348b3a29a1237a3b769261aa41b886f31a1290e65fde4c4e6461
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp312-cp312-win32.whl

Download URL zen_fronts-1.0.5-cp312-cp312-win32.whl
Size 644.4 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
68a44ee01acfbd5d40b73c9ddda53575359173df69c9190ab1ebcf04f083f748
BLAKE2b-256 checksum
How to use checksums
216b1cbb68db61df8abe278dd962629124e39e181f859f09fbd1d59ad9edbd38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL zen_fronts-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
227edaa9e31582c80718fa295c8b93b9d764b110036bc42d9679d1cf9853053f
BLAKE2b-256 checksum
How to use checksums
8f6ab76265bf548b1c98ae57da3df2b7c7b14ff3a92b7c8888c1cae832c16043
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL zen_fronts-1.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc3f062d3b8f24af55d45ebeaf8b2379f46870eabcb85d2e60781723bb4f0ee4
BLAKE2b-256 checksum
How to use checksums
e4dea8a427afb14ec8b81467d2ea75079bc505b989a80f128772fbe012ba2b82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp312-cp312-macosx_11_0_arm64.whl

Download URL zen_fronts-1.0.5-cp312-cp312-macosx_11_0_arm64.whl
Size 718.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
db96ab0dd53e99acdb03de627da9c4ad97e00bfea6fc020d2b0152b09ce27d7d
BLAKE2b-256 checksum
How to use checksums
2750aed0622802045d5962c0efbc86c43d7c34dccccc158e23c9039885da6d8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp311-cp311-win_amd64.whl

Download URL zen_fronts-1.0.5-cp311-cp311-win_amd64.whl
Size 686.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
eb85a59fc12b30a70faae7fad4536680845aa343771a674db9b5fcd1a4c2fb94
BLAKE2b-256 checksum
How to use checksums
a24fc6e844edb40e02fcadf7a2a77f366e9f6bed774f75b4915c820e8dc572b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp311-cp311-win32.whl

Download URL zen_fronts-1.0.5-cp311-cp311-win32.whl
Size 654.1 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
88f9a8f5b686e9f955805257a52fa0d48c23cba2fca9516283ce9a6017571cfa
BLAKE2b-256 checksum
How to use checksums
efc391e32681ad22bd5381f303a23e148071a1b10dd1e7b97789045eba6f2029
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL zen_fronts-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
aaa2f02104ff7415afb40a2c569dd8203b0613844e213c783fdefc156e43070f
BLAKE2b-256 checksum
How to use checksums
0d7a59945d2946d1fbfbe87f4510f3732600cba1a2efed2f9ebf070227d02daf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL zen_fronts-1.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
86c74783054ab1161d89e376e2e1ee8e057b9e8f6b980e0b6c1b26d906e51e4c
BLAKE2b-256 checksum
How to use checksums
0e2c1e8f71ac661bc39008d01a312b6f42b50bd9d340d75b83304e8ac62391e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp311-cp311-macosx_11_0_arm64.whl

Download URL zen_fronts-1.0.5-cp311-cp311-macosx_11_0_arm64.whl
Size 722.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
959204eeecf6183dbb6ea5cf02ed1c6da108b49e451f548dad7f85d9e26d210f
BLAKE2b-256 checksum
How to use checksums
9d04c81e4969ebadeffe771008b67900ec191821454d847a8ab83bc16b244bde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp310-cp310-win_amd64.whl

Download URL zen_fronts-1.0.5-cp310-cp310-win_amd64.whl
Size 685.9 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
003d20fdb432f9c164074555bb2ae579449c7f1ab0f9de75f27b7d9824366a90
BLAKE2b-256 checksum
How to use checksums
7c44e218bd2e8e0ed3424004b9d4106add83bba9774d11cf2527eae50ef240d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp310-cp310-win32.whl

Download URL zen_fronts-1.0.5-cp310-cp310-win32.whl
Size 655.4 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
ede2762045aeb114126b09b2396ff204581e6cbca3e251da64889c7b553d3e5c
BLAKE2b-256 checksum
How to use checksums
6208cdc2de2556c145220e3defc717194d2dd3de77f38ff091e26e3b04597d52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL zen_fronts-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b2c73e5e8c88cad4145deef1531fa9338c8aef78a842ebf13ce36d95cc310c8e
BLAKE2b-256 checksum
How to use checksums
9b7170ca9fa77ece4043c23cbb1b82b2c3c0061e9166decbc33cdafb2bee65f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL zen_fronts-1.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b98880869dd27dd0e2364565d972e20b202b7d71d5f6af34a0da25fe9201762d
BLAKE2b-256 checksum
How to use checksums
23897539165ef1e7f0ddde831e9b94cdbc8090c2db7eb2a5632a7a09c9fb694a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release files / zen_fronts-1.0.5-cp310-cp310-macosx_11_0_arm64.whl

Download URL zen_fronts-1.0.5-cp310-cp310-macosx_11_0_arm64.whl
Size 725.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
05f37b0966b9a60af64db672dca0977792cdbf77dc7228662b7a3d55f45a7fa0
BLAKE2b-256 checksum
How to use checksums
496794c5b905b2f1bc8107ebb5fa172019f0700695617fd45af1d0777ff598dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Jan 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.5 This release

16 release files

1.0.4

16 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