Skip to main content

Epochly - Transparent performance optimization for Python applications

Project description

Epochly

PyPI version Python 3.9-3.14

Epochly is a drop-in Python performance overlay. It accelerates workloads via GPU acceleration and multicore parallelism when safe and beneficial, and yields to normal execution when it cannot help. No code changes required.

Installation

From PyPI:

pip install epochly

From source:

git clone https://github.com/chandlercvaughn/epochly.git
cd epochly
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Quick Start

Decorator Usage

from epochly import optimize

@optimize
def matrix_computation(data):
    # Epochly decides whether to accelerate this function
    return complex_computation(data)

result = matrix_computation(my_data)

Automatic Optimization

import epochly  # import provides optimization for eligible workloads

import numpy as np

def matrix_computation():
    a = np.random.rand(1000, 1000)
    b = np.random.rand(1000, 1000)
    return np.dot(a, b)

result = matrix_computation()  # optimized if Epochly determines it is safe and beneficial

Context Manager

from epochly import optimize_context

with optimize_context():
    result = heavy_computation()

Key Capabilities

  • Drop-in overlay: no code changes required; Epochly decides whether to accelerate
  • GPU acceleration (L4): up to 64x on large array workloads when CUDA hardware is available
  • Multicore parallelism (L3): up to 8x on CPU-heavy tasks via process pool dispatch
  • JIT prefilter (L1/L2): bytecode prefilter classifies eligible kernels; JIT compiles admitted ones
  • Monitoring (L0): pass-through with instrumentation; zero overhead on unsuitable workloads
  • Rollback safety: circuit breaker with cache invalidation; on failure, execution rolls back to the unmodified path without silent misclassification
  • Truth surface: unified status/metrics/inspect surface reflects measured execution, never heuristics

Enhancement Levels

Epochly operates through five progressive enhancement levels:

Level Name Behavior
L0 Monitoring Pass-through with instrumentation; no acceleration
L1 Prefilter Bytecode prefilter classifies eligible kernels; threading for admitted ones
L2 JIT JIT compilation of prefilter-admitted kernels
L3 Multicore Process pool dispatch with shared memory for parallel workloads
L4 GPU CUDA acceleration via CuPy when NVIDIA GPU is detected

Unsuitable workloads receive L0 pass-through with bounded overhead (5% wall-clock budget verified in tests/validation/test_acceleration_proof.py).

Architecture

  • Truth surface: single unified schema for status, metrics, and inspect outputs. optimization_effective and optimization_summary reflect measured execution, not heuristics. Rollback events, fallback reason codes, admission decisions, and realized enhancement level are surfaced in machine-readable artifacts.
  • Circuit breaker: bounded HALF_OPEN probe concurrency; on failure, execution rolls back to the unmodified code path with full cache invalidation. No silent drift.
  • Inference plugin: optimizes .generate/.encode/__call__ on ML model objects when safe; falls back otherwise.
  • Prefilter correctness: all rejection paths emit explicit, machine-readable fallback reason codes. No silent false rejects on known-valid numeric workloads.
  • Memory safety: adjacent-block coalescing in HybridLargeBlockManager; real OS mprotect(PROT_NONE) guard pages; serialized FastMemoryPool bookkeeping under contention; TOCTOU guards in stale shared-memory cleanup.

Environment

  • Python 3.9 through 3.14
  • Linux, macOS, or Windows
  • NVIDIA GPU optional (required for L4)
  • Project virtual environment: .venv at project root
  • Cross-version development venvs: .venv-py38 through .venv-py313 alongside .venv

Running Tests

Always activate the virtual environment first.

source .venv/bin/activate
pytest tests/unit/<module>/ -v

Examples:

source .venv/bin/activate
pytest tests/unit/core/ -v
pytest tests/unit/jit/ -v
pytest tests/unit/memory/ -v

Never use pytest --cov. The pytest-cov plugin imports Epochly before environment variables are set, causing OpenBLAS thread creation and memory exhaustion. Use coverage.py directly instead:

source .venv/bin/activate
coverage run -m pytest tests/unit/<module>/ -v
coverage report --include="src/epochly/<module>/*" --show-missing

Project Structure

epochly/
├── src/epochly/           # Main source code
│   ├── core/             # Core runtime, enhancement levels, decorator
│   ├── jit/              # JIT compilation, artifact store, compilation queue
│   ├── memory/           # Memory management, shared memory, circuit breaker
│   ├── gpu/              # GPU detection, CUDA acceleration (L4)
│   ├── inference/        # ML model inference plugin
│   ├── monitoring/       # Metrics, telemetry, Prometheus exporter
│   ├── security/         # Signed pickle, AST sanitizer, access control
│   ├── licensing/        # License validation, trial endpoint hardening
│   ├── cli/              # Command-line interface
│   ├── config.py         # Configuration system
│   ├── bytecode_prefilter.py  # L1/L2 eligibility classification
│   └── ...
├── tests/
│   ├── unit/             # Unit tests (per-module)
│   ├── integration/     # Integration tests
│   ├── validation/      # Validation contract tests
│   └── e2e/             # End-to-end tests
├── .github/workflows/   # GitHub Actions CI/CD workflows
├── benchmarks/          # Benchmarking system
├── scripts/             # Helper scripts
├── dashboard/           # Dashboard application
└── docs/                # Documentation

CI/CD

Epochly uses GitHub Actions with self-hosted runners:

  • 16 self-hosted Linux runners on 192.168.1.17 (NVIDIA RTX 4070, Python 3.9-3.14, GPU label)
  • Self-hosted macOS runners on Mac-Studio
  • GitHub-hosted Windows runners

Key workflows:

  • release-gate.yml — tier-1/tier-2 test matrix across all platforms and Python versions
  • post-merge-assurance.yml — commit-scoped PMA on every main merge
  • full-matrix-validation.yml — nightly full matrix across all OS/Python combinations
  • security-scan.yml — Bandit + dependency audit
  • smoke-tests.yml — quick smoke validation
  • wheels.yml — build and test wheels
  • publish-pypi.yml — publish to PyPI after release gate passes

Security

  • Memory isolation between interpreters
  • Access control for shared memory
  • Audit logging for all operations
  • HMAC-signed pickle helper for trusted IPC boundaries (epochly.security.signed_pickle)
  • Hardened AST sanitizer for dynamically-compiled user code paths
  • Prometheus exporter defaults to loopback (127.0.0.1) with explicit warning on 0.0.0.0
  • Bounded Prometheus metric-name cardinality (user-input hashing + 1000-name ceiling)

Stabilization Evidence

P0 Stabilization (2026-04-16)

24 behavioral assertions in validation-contract.md, 30+ new regression tests:

  • Bounded HALF_OPEN probe concurrency in memory circuit breaker
  • Adjacent-block coalescing in HybridLargeBlockManager
  • Real OS mprotect(PROT_NONE) enforcement on memory-pool guard pages
  • Fixed small-slab bitmap math
  • Serialized FastMemoryPool bookkeeping under contention
  • Linux RTX 4070 verification: 1012 passed, 90 skipped, 0 failed
  • 5% wall-clock overhead budget preserved on non-beneficial workloads

Phase 2 Stabilization (M5-M13)

116 additional behavioral assertions across 9 milestones:

  • NUMA-aware memory placement and monitoring hardening (M5-M6)
  • Runtime, JIT, and ML-path correctness (M7-M8)
  • Licensing integrity (M9)
  • Boot-sequence, core, and config robustness (M10)
  • CLI, Jupyter, and deployment paths (M11)
  • GPU and native inference sweep on RTX 4070 (M12)
  • Progression integrity, hygiene, Cython wheel verification (M13)
  • Hygiene guardrails as executable tests: tests/validation/test_no_mocks_in_src.py, tests/validation/test_no_banned_env_writes.py

Transparent-Optimizer Trust Mission (M1-M9)

107 features across 9 milestones making Epochly a trustworthy transparent optimizer for the qeval evaluation corpus:

  • M1: Baseline gap map and ranked failure classification
  • M2: Truth surface unification — single schema, measured-only reporting
  • M3: Prefilter correctness — no silent false rejects, machine-readable fallback reason codes
  • M4: L3 multicore and shared memory — TOCTOU race fix, process pool caching fix
  • M5: L4 GPU admission — duplicate-init fix, numerical tolerance tightening, cross-version validation
  • M6: Rollback and circuit breaker — cache invalidation on rollback, drift detection
  • M7: optimize/wrap() bootstrap and inference plugin — 4-step bootstrap fix, ML model optimization
  • M8: Stability hardening — numerical differential tests, concurrency/memory safety, packaging/API verification
  • M9: Final qeval-gated verification — all P0 regression families HELD/PASS or CLOSED

Configuration

from epochly import configure, EnhancementLevel

# Set optimization level
configure(enhancement_level=EnhancementLevel.LEVEL_3_FULL)

# Enable profiling
configure(profile_enabled=True)

# Control worker threads
configure(max_workers=8)

Monitoring

import epochly

# Get performance metrics
metrics = epochly.get_metrics()
print(f"Enhancement level: {metrics.get('enhancement_level')}")
print(f"Functions optimized: {metrics.get('functions_optimized', 0)}")

# Check current status
status = epochly.get_status()
print(f"Enabled: {status['enabled']}")

Deployment

# Selective activation by environment
export EPOCHLY_ENABLED=1
python your_app.py

# Inspect deployment state
epochly-deploy status

# Enable or disable deployment
epochly-deploy enable
epochly-deploy disable

# Select a deployment mode
epochly-deploy set-mode monitor

# Monitor deployment for 60 seconds
epochly-deploy monitor --duration 60

# Emergency stop
epochly-deploy emergencystop

Contributing

# Development setup
git clone https://github.com/chandlercvaughn/epochly.git
cd epochly
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pre-commit install

# Run tests (always activate the venv first)
source .venv/bin/activate
pytest tests/unit/<module>/ -v

# Cross-version testing
.venv-py39/bin/python -m pytest tests/unit/cli/ -v
.venv-py310/bin/python -m pytest tests/unit/cli/ -v

# Coverage (use coverage.py directly, NOT pytest --cov)
source .venv/bin/activate
coverage run -m pytest tests/unit/<module>/ -v
coverage report --include="src/epochly/<module>/*" --show-missing

Cython extensions build with python setup.py build_ext --inplace.

License

Epochly is proprietary commercial software licensed under the Epochly Software License Agreement (ESLA). See LICENSE for the complete license terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

epochly-0.6.11-cp314-cp314-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.14Windows x86-64

epochly-0.6.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

epochly-0.6.11-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

epochly-0.6.11-cp314-cp314-macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

epochly-0.6.11-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

epochly-0.6.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

epochly-0.6.11-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

epochly-0.6.11-cp313-cp313-macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

epochly-0.6.11-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

epochly-0.6.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

epochly-0.6.11-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

epochly-0.6.11-cp312-cp312-macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

epochly-0.6.11-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

epochly-0.6.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

epochly-0.6.11-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

epochly-0.6.11-cp311-cp311-macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

epochly-0.6.11-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

epochly-0.6.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

epochly-0.6.11-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

epochly-0.6.11-cp310-cp310-macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

epochly-0.6.11-cp39-cp39-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.9Windows x86-64

epochly-0.6.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

epochly-0.6.11-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (6.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

epochly-0.6.11-cp39-cp39-macosx_15_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

Details for the file epochly-0.6.11-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: epochly-0.6.11-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for epochly-0.6.11-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 dc11d73f97694029a77c19d086521b93e1a640acc033bf51dc00affe54fa4ec6
MD5 3d6ae4d42650d34a71fe2785351b35be
BLAKE2b-256 230c302a0b3394a94bdda36852f2cf8a6b2f390920b33583a20654e6594944e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp314-cp314-win_amd64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8259cff08eb836c30a7248a1e26ffb746f952f271c6719643c9194ff7717fe7a
MD5 51314a5168bdd3a1508b4c69774c4704
BLAKE2b-256 0761bb05597fd27e30075de81c622963a4c94e9fc3ef49d28578a371d45d2b51

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5b26602d0e25df6d25245a88eb95d3fddae9a2f403fd45e57ec6a21b9ef12dcd
MD5 77493eeadf0745a92cc16cf7dda09416
BLAKE2b-256 98caa8fa9debb0c206d58922a229f259492d860fe8470f4155e15db230068dcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 679c5e3f7e61e47416b5f1b7fe5a63d0bfebef8cd30d239bca6de9beafe8ca8a
MD5 2d45aa72e360e74a21a18c27029e8d74
BLAKE2b-256 e6af3e1be89ea8366171c7c430409c613eca8e365dd9d757e556e3d65c2edd5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: epochly-0.6.11-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for epochly-0.6.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 11d39f510455ca32b0aabd87fffabd4c14abc18fc960f839ef5ae02c32018eae
MD5 37720caaa00c711f0d7081171524f49a
BLAKE2b-256 dff014f909011c442ba40a01673084da3f8ae2c8533c19c7bf212ac0484b30da

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp313-cp313-win_amd64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b2692e66bc22047ebe4882df219627c7e763b83c27d3d24e6ea23ae623ee833
MD5 be3636d2219e4b8b25a6c0b54992b70c
BLAKE2b-256 bf746cc340add5389385f7052cbfeba92675f1dea8f9295163dcf2a6d38f4a28

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3f6437bcb0eb2cb2856d5eead42072ae2af7bb5bcb41ef1953dac1a45ae56804
MD5 bdaef5a14bb1afc9205ca427522ba9ad
BLAKE2b-256 904bcb5eefeb776c7ace42b655fa6c859b0df90aa61142c62bfdb28d59ee48e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 72feb486e0b270a0cf3b46a055425bd0ea9cc73ae6958a9265aac7062865efda
MD5 d48adcb27fbc54a4547a8a0b9d2b0bc6
BLAKE2b-256 5d9fcab1b9c3d500d8b17ca6901fb8c30ede586b43036739a1cfec7f59db01fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: epochly-0.6.11-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for epochly-0.6.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1e0122b372bf6fb241a3cd9954057218cad21faa89f0f58921f0693d4730d7a8
MD5 73f726793518178ecf321ff9a2570fe2
BLAKE2b-256 2232420b4403a99b38e71ad0d7d26a466b6565ec7eeca6de199158b574a42139

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a85d558ee8daf361d7cc6a2c41e6e29b9c177f21ea1042c459a7ee6973e1a386
MD5 1f3c9d1fb92af63e2e9b270d47ba8e39
BLAKE2b-256 1791416f0ca792e938639e8744096932284f7a0d909d1fc455083c8dbbbeb76b

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4d8519242cf19cddae427ecd3351315e319f53dad3949a43f176b02fbb0976d4
MD5 f5f2c8eaa5a3abc5b6c1b9529e009bda
BLAKE2b-256 bc11b236dbff8d07b7790dce3ca83f033dbbd3c0886297bc34bcd917458867bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 89a93321095d89b35dcdaef343bb749caee47bab39f9abd706b98e899690e06a
MD5 894ff69db9abf8d5e68460e39652d5d8
BLAKE2b-256 024576c484515bb0614e4f3a26ab5095d8dca7e882d714315e05f20061516d7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: epochly-0.6.11-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for epochly-0.6.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3e4dcc195d038c62a046c82ba115b9c8e40029325d823304aba2efee549e69b8
MD5 6460c24650010f781675ed266fd27a74
BLAKE2b-256 cb6e94cbc91bd7148453ada03dd7575d936652513029be7def9fb49e278ec848

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b463a7534167f42b42580827cd60be5401ea78932d369101a30d62d545ea6f56
MD5 cfd20213243692bdec669fc97834d5e0
BLAKE2b-256 c9ce28ab568dcfaa181e1ca059270c0c7ef307a6fe2d9e9a7abe6227cdb888e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2ff53c6bfd92c434eb57e5fbe7de124752b16aac219fd9e1899c13c1476d6769
MD5 28167b28458a65dfeb43ee318aceb67a
BLAKE2b-256 f743bcf01f5835c5068f55e64a7111c0743d93baf58f65adc5d3a3af6ba4d195

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2e933a235c85d10dc30e0f24e0c837f83300b57d52183cf3e375747cb0ea5ba6
MD5 9e4a75e80149d1e4c36801a75184407e
BLAKE2b-256 8042f32b0b19f43d1b752fd2d331bc82ca3f042acb95fd3bed7b9256e60cd28a

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: epochly-0.6.11-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for epochly-0.6.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 482623174e7ec0086369326137a3e17526f44da96da4e5b00b31d91d44444fa4
MD5 57985be56f98085c61674b185454f8db
BLAKE2b-256 8b9790f3e2ba65bb508c5f41f68a6e3d241041d94b731fa631cc66fe6f679f38

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 091d1510d136e56d701bb9113911c6fefbeb81af9ff3f6970bec7aefa63e9429
MD5 cdd1342b4a8e575272385ab57625c998
BLAKE2b-256 0b5655583d339440ab0fa2ae4b5edfed00ac2530f1a56ab25abcc96764dfd428

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 175fe41546559e0be735185f9cbaf8e89b6a3ab43646bd034aad85781612c92a
MD5 c49017231d5efd7f9b78a004e5875bce
BLAKE2b-256 876ac2157d3eae7af330047bd6bd0b10d2d34f133aac5da85c829050000130ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9b031432aed41c19888d9cc5208db214376e132c4a41a2ab01e268601615fdc3
MD5 db1ae7d9ad6bc4890bd2b5cddcb923dd
BLAKE2b-256 5dd0324925858f11a52d5831b93db63ce1787ae6fa5c34557750dcc8e9b14b16

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: epochly-0.6.11-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for epochly-0.6.11-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 92935aab2001720110bf3108934a6e6dfaf0cf0a2ead915a7dfb3f02c8210fe8
MD5 7225f351316433dde7254d52cd584aec
BLAKE2b-256 195253261f20843c9524b9a8a2e83cafe200d8da05da5e860640b5961e3b2bca

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp39-cp39-win_amd64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 971e933f07e7f6fcd0a95b14acfa929557945c26a3c838305613a739ce79d75e
MD5 634f6df4bc8ac319764753afca4575e0
BLAKE2b-256 33ca01a2a1701c1d41533df890119a2d7d629576221a4c49e338e83d86fae967

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3238eb57216cca5f61c2c16991209a7d4c33f2fe3bb27bc8b7a321d2503a78cd
MD5 92e1464cb924084643a37d8cd3287dd5
BLAKE2b-256 de04ad02e6027182329a7ac99c67ce82e9bb04441a3356e983e9d48bc3ca14dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file epochly-0.6.11-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for epochly-0.6.11-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e8ca99f2649d03a2aa1adeb15c7d8e5f6c75f5a8aaf013b5fc0077ca28f7cf81
MD5 5f6bd2e3db8cbc04a9b4223ab6e66124
BLAKE2b-256 470fae53bf795334aa26c9fa80fdfde2cf7d96e956aec67a0e7b33fec319929a

See more details on using hashes here.

Provenance

The following attestation bundles were made for epochly-0.6.11-cp39-cp39-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on chandlercvaughn/epochly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page