Skip to main content

EquiFrame Benchmark 0.12.4

Release target: 0.12.4. Check the official index for availability and verify the identified artifact hashes. Publication requires artifact-bound release checks; prior candidate results keep their own identities.

Experimental evaluation, reproducible evidence and bounded engineering costs.

Principal paired protocol V2 provides a separately versioned freeze → native study → paired evaluation → seven tables → portable reproduction route for the three primary families and three engine pairs. V1 readers, fingerprints and common-support results remain unchanged. Earlier protocol work included twenty-four focused engineering checks, with API/CLI roundtrips over fictional held-out native cases and portable reproduction. Those results retain their original source and artifact identities; they do not establish 0.12.4 validation or scientific approval. Final protocol review remains required.

equiframe-benchmark is separate from the core equiframe package. It provides scenario catalogs, independent-review records, grouped splits, reviewed normal selection, frozen studies, paired evaluation, reproducible tables/bundles and resource measurements. The core never imports it or receives oracle labels as detector features.

Release scope and compatibility

This distribution is paired exactly with equiframe[arrow]==0.12.4 and supports Python >=3.10,<3.14. Original code is licensed under MIT; dependencies retain their own terms in third-party notices.

The owner authorized publication on 2026-10-27 and confirmed local manual publication on 2026-10-28. Uploads use an ephemeral local API token, revoked after use; no GitHub Actions job or stored GitHub publishing secret is used. The release checklist binds the inspected commit and all four artifact hashes, checks the security review and clean consumers, and promotes the same bytes. A version label or this README does not establish a successful upload.

The benchmark's scientific protocols and APIs remain experimental. Software correctness tests preserve their documented contracts but do not establish real-data accuracy, reviewed corpus labels, independent human acceptance, external adoption or a deployed service/data warehouse.

Hernán Troya (htroya) is the confirmed maintenance, release and security owner, with no response-time SLA. Documentation and reporting routes share the EquiFrame repository. Sensitive reports use its private reporting channel. For each release, the maintainer must enable public issues and private reporting and verify their availability. Historical Alpha artifacts and results retain their original identity and scope.

The core wheel includes the self-contained English handbook with API, semantics, compatibility, contribution, security, dependency/SBOM and release procedures:

from importlib.resources import files

print(files("equiframe").joinpath("docs/index.md").read_text(encoding="utf-8"))

From an authorized monorepo checkout the same guide is at core handbook; installed consumers do not need repository access. This README is included in distribution metadata. Benchmark sdists also include examples, tests, tools and JSON schemas.

Install exact artifacts, then run outside the checkout

Obtain both identified wheels and a reviewed dependency wheelhouse for your interpreter/platform/profile. Verify supplied SHA-256 values before installation. In a fresh directory outside the repository, using a POSIX shell:

python3.12 -m venv .venv
. .venv/bin/activate
CORE=/absolute/path/equiframe-0.12.4-py3-none-any.whl
BENCH=/absolute/path/equiframe_benchmark-0.12.4-py3-none-any.whl
WHEELHOUSE=/absolute/path/reviewed-wheelhouse
python -m pip install --no-index --find-links "$WHEELHOUSE" "${CORE}[engines]" "${BENCH}[resources]"
python -m pip check
python -I -c "import equiframe, equiframe_benchmark; print(equiframe.__file__); print(equiframe_benchmark.__file__)"
python -I -m equiframe_benchmark.pilot --output pilot-synthetic

Absolute paths are placeholders for verified local files. Missing compatible binary dependencies are a blocker; do not drop hashes or switch to an unrelated index package. Avoid editable installs/PYTHONPATH as artifact validation. Windows can use py -3.12 -m venv .venv and .venv\Scripts\python.exe directly without changing activation security policy. Command conventions are not platform tests.

The benchmark base requires Arrow through core and packaging>=26,<27. engines adds pandas/Polars/DuckDB; ml adds the core ML extra; resources adds psutil==7.2.2. Choose reviewed dependency pins for the required profiles. Metadata admission does not prove all platforms or range combinations. Historical measured cells are Linux x86_64/Python 3.12.14 and 3.13.5; a current candidate needs its own exact-artifact receipt. Manual CI configuration is not a remote job result, and Windows/macOS/ARM64 are not newly claimed as verified.

The pilot destination must be new. equiframe-benchmark-pilot --output DIR is an installed equivalent entry point. The synthetic pilot produces 5 scenarios, 35 candidates, 15 profiles and 4 dependency groups. All 35 reviews remain pending. Its 15 mutations are artifact injections; its 15 control transformations execute natively. These are not a completed thesis sample or trained scientific model.

Review, grouping and normal selection

Public models include Scenario, Catalog, Candidate, ReviewPacket, ReviewAssignment, Review, OracleResult, SplitManifest, TrainingSelection and CalibrationSelection. load_document, save_document and digest use strict canonical JSON and explicit evidence identity.

This snippet continues from the synthetic pilot above:

from pathlib import Path
import equiframe_benchmark as eb

root = Path("pilot-synthetic")
catalog = eb.load_document(eb.Catalog, root / "catalog.json")
splits = eb.load_document(eb.SplitManifest, root / "splits.json")
eb.validate_splits(catalog, splits)
print(eb.split_counts(catalog, splits))
scenario = catalog.scenarios[0]
candidate = eb.load_document(eb.Candidate, root / "nulls_types" / "pandas-candidate.json")
packet = eb.review_packet(scenario, candidate, directory=Path("review-packet"))
pending = eb.evaluate_oracle(scenario, candidate, packet=packet, work_dir=Path("oracle-evidence"))
assert pending.status == "pending" and pending.label is None

Only the blinded packet goes to the reviewer. Keep catalog/candidate metadata, alerts and other reviewers' decisions separate. Record two independent reviewers and an arbiter in an assignment before review, with UTC timestamps. Reviews require packet hash, identity declaration, decision, rationale, timestamp and blind attestation. Resolution is permitted for disagreement by the assigned arbiter. Do not generate human approvals from comparator output. Hashes and JSON names do not authenticate a human or establish true independence.

dependency_groups closes transitive declared/artifact dependencies before make_splits; validate_splits and split_counts retain group/partition scope. select_normal_training and select_normal_calibration require candidate, oracle, execution and profile maps with exact linked identities, one family and feature definition, confirmed normal O, and the appropriate disjoint partition. The pending pilot is not eligible normal training evidence.

audit_detector_selections checks shared catalog/split, compatible features, independent groups and no reused scenarios/executions/profiles. Respect eligible/not_estimable, preserve counts and justify minimum support before freeze. Core fit_detectors, score_detectors, calibrate_detectors, detect and detect_component separate fitting, scoring, calibration and inference. No anomaly/no-alert state is a comparison oracle; test never fits the model.

Public workflow reference

The exhaustive experimental export namespace is equiframe_benchmark.__all__. Use inspect.signature(eb.function) and each model's model_json_schema() for installed signatures/defaults. These are distinct families:

Family Entry points
Blinded review review_packet, evaluate_oracle, oracle_verification_bridge
Dependency splits dependency_groups, make_splits, validate_splits, split_counts
Reviewed selections select_normal_training, select_normal_calibration, audit_detector_selections
Snapshot consumer Compatibility aliases of core SnapshotClient, SnapshotDataSource, snapshot_fingerprint
Three-engine integration run_integration, read_integration
Domain-configurable reconciliation reconcile_awards, AwardReconciliationSpec
Freeze/study audit_freeze, create_freeze, read_freeze, run_study, read_study
Evaluation evaluate_records, evaluate_pairwise, evaluation_protocol_sha256
Tables table_payloads, write_tables, read_tables
Scientific cost protocol measure_costs, read_costs, write_cost_table
Record reproduction make_reproduction_record, compare_reproductions
Generic bundles create_bundle, read_bundle, bundle_artifact, reproduce_bundle
Study bundles bundle_study, regenerate_study_record, reproduce_study_bundle
Engineering scale measure_scale, read_scale, summarize_scale
Distribution inventory inspect_distribution, DistributionReadiness, NameCheck

Snapshot consumers pin a declared publication and verify artifacts from an explicit trusted client. run_integration executes each of three registered native implementations once, then compares three pairs. A separate optional expected output is fixed before execution. Shared captures do not become additional independent observations when reused in several pair comparisons. If a native execution fails, its expected-output comparison is recorded as execution_unavailable; the operation stays incomplete and healthy independent pairs retain their evidence. The synthetic date fixture uses Pandas' native UTC microsecond dtype before extracting date32, including empty and NULL values, so it does not require Arrow's separate C++ timezone database on Windows. Client/DW authentication, service writer coordination and production acceptance are not implemented by the consumer interface.

Freeze, study and reproduction

FreezeDefinition records catalog, grouped splits, cases, family model slots, reviewed selections, prior decisions, files/hashes, environment and evaluation/cost protocols. Pilot freeze verifies technical readiness while retaining scientific blockers. Final freeze requires those blockers resolved; it does not manufacture reviews or fit on test data.

The following are command templates using your own reviewed files and trusted registry factory; they are not a complete runnable scientific experiment:

equiframe-benchmark freeze definition.json --output freeze.json
equiframe-benchmark verify-freeze freeze.json
equiframe-benchmark run-study freeze.json --registry my_etl:create_registry --output studies
equiframe-benchmark verify-study studies/study_ID
equiframe-benchmark evaluate studies/study_ID --output evaluation.json
equiframe-benchmark tables studies/study_ID --output regenerated-tables
equiframe-benchmark bundle-study studies/study_ID --output portable-study
equiframe-benchmark reproduce-study portable-study --expected-sha256 TRUSTED_BUNDLE_MANIFEST_SHA256

Factory references import and execute trusted code explicitly. JSON requests do not authorize arbitrary plugins or contain credentials. The frozen historical main comparison uses confirmed O and common complete R/M/B/H support, retaining individual support, partial alerts, failures and exclusions. evaluate_pairwise adds six descriptive pairwise supports with their own denominators; it preserves the original report/protocol/six CSV and remains scientific=False. Using that analysis as a new scientific primary protocol requires a new freeze.

Undefined precision, recall, F1 and FPR remain absent with reasons. Average precision requires two classes and a common family/model. Bootstrap samples whole groups and requires a prior independence rationale. CSVs regenerate from verified records; editing a CSV and recomputing its hash does not create valid changed evidence.

Study bundles preserve original captures/manifests and regenerate configuration, splits, labels, decisions and tables without rerunning ETL. They do not certify a colleague independently repeated the experiment. Raw costs are retained without requiring identical timings on reproduction. The distribution inventory does not reserve a name, resolve licensing, install a package or authorize publication.

Cost protocols and engineering scale

measure_costs uses a frozen scientific CostProtocol: isolated profile+M versus full comparison over already captured outputs, one warmup and five alternating repetitions per method. Initial ETL/capture is excluded. cost-table retains all twelve raw observations, warmups, failures and reasons. Repetitions do not increase the independent detection sample. Missing monitoring is never imputed as zero.

The separate engineering protocol ScaleSpec/ScaleTrial/ScaleRun measures bounded synthetic integer/text/NULL workloads. See the installed core handbook's docs/performance.md for a complete small script, stage boundaries and budgets. Source distributions also contain examples/scale_local.py, which defaults to 1k rows; 100k/1M require explicit --rows and larger recorded budgets.

One isolated trusted worker records fresh/warm process groups with uncontrolled OS caches, nine stages, sampled RSS/CPU/I/O, disk and evidence bytes. RSS/disk thresholds are reactive and can overshoot; they are not hard quotas. A valid completion marker, expected verdict and verified inventory are required. complete and resource_measurement_complete are separate: a successful operation can have incomplete observations.

Restricted native pandas/DuckDB baselines provide less evidence; time ratios are not equivalent-service speed rankings. DataComPy is unpinned/unavailable, with no invented timing. Kill, missing finalization, failed/partial measurement, ENOSPC and last-batch differences stay visible. Receipts are location-bound; reproduction uses the specification and exact wheels, not an implied portable run.

CLI exits and safe interpretation

equiframe-benchmark --help lists the installed commands, including catalog validate, split, pilot, integration, freeze/study, evaluation, costs and scale.

  • Study/integration operations distinguish complete without alert (0), complete with alert/difference (1), invalid input/freeze (2) and partial/unavailable (3)
  • Integrity verify-* commands can return 0 for intact evidence of a historical incomplete run; read the stored semantic state. They do not turn it into success
  • Reproduction disagreement uses 1; invalid evidence uses a failure code
  • costs uses 3 for incomplete measurement
  • scale and verify-scale use 3 for unsuccessful/incomplete measurement or invalid finalization. Their zero is expected-workload completion, not equivalence

The historical core equiframe.benchmark placeholder is quarantined and not a compatible shortcut into this package. Do not reenable its removed metrics or infer scientific results from synthetic demonstrations.

Development and contribution

Operational errors retain their original first stderr line and exit status, then add one fixed-text hint[category]: ... line. For example, an existing output recommends a new path instead of overwriting evidence; a missing file recommends checking the input and parent directory. Hints omit raw exception messages, data and paths. Automation should read the exit status and first line, not compare the complete stderr text. scale retains exit 3 for its failed operation, including invalid specifications. The standalone equiframe-benchmark-pilot entrypoint also uses fixed hints; its operation failures retain exit 1 and print pilot_operation_failed.

From packages/equiframe-benchmark, with the matching core wheel already built:

uv sync --locked --all-extras --reinstall-package equiframe
uv run --locked --all-extras ruff check .
uv run --locked --all-extras ruff format --check .
uv run --locked --all-extras mypy
uv run --locked --all-extras python tools/generate_assets.py --check
uv run --locked --all-extras pytest -q
uv run --locked --all-extras python -m build --no-isolation
uv run --locked --all-extras twine check --strict dist/*.whl dist/*.tar.gz
uv run --locked --all-extras python tools/verify_distribution.py

--reinstall-package equiframe prevents stale local dependency caching while a package version is unchanged. From this directory, the byte-bound candidate driver is python ../../tools/check_candidate.py --package . --output /absolute/path/new-checks.json. These are checks to execute, not claims they already passed this artifact. Source tests, exact installed tests and remote CI are distinct evidence. Preserve historical fixtures, safe failures and methodological boundaries. Follow the core handbook's contribution, upgrade, security and release procedures. No public publication or production deployment is authorized by building these artifacts.

Metadata

Release files for equiframe-benchmark 0.12.4

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

Source distribution (sdist)

Source distribution for equiframe-benchmark 0.12.4
File Size Uploaded Provenance Actions
equiframe_benchmark-0.12.4.tar.gz 528.5 kB Without provenance Details for equiframe_benchmark-0.12.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for equiframe-benchmark 0.12.4
File Interpreter ABI Platform Actions
equiframe_benchmark-0.12.4-py3-none-any.whl Python 3 none any Details for equiframe_benchmark-0.12.4-py3-none-any.whl

Total release size: 761.1 kB

Release files / equiframe_benchmark-0.12.4.tar.gz

Download URL equiframe_benchmark-0.12.4.tar.gz
Size 528.5 kB
Tags Source
SHA-256 checksum
How to use checksums
81cca21fc7cfabfbe0e5d7945f7199d8f5b2d26969aadbe6ad4a6c7b11ce90d2
BLAKE2b-256 checksum
How to use checksums
0e05053a080375aca46faa6d52d6f5ad23469bb333ec403fc4c08f1a23cdcd0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.18

Release files / equiframe_benchmark-0.12.4-py3-none-any.whl

Download URL equiframe_benchmark-0.12.4-py3-none-any.whl
Size 232.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f18ecaae054e5ccc2a80ae61dab588440699c26645ba995817fbb07a9123cc42
BLAKE2b-256 checksum
How to use checksums
deb113c4f5e1e4fb47d04be23cac849177613cf1cb0155b0088e2e40979fdf15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.18

Security for equiframe-benchmark 0.12.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.12.4 This release

2 release files No 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