Skip to main content

laxate

Run Benched benchmark suites in an existing local environment, Docker or Podman container, or ephemeral Hetzner Cloud server.

Build Status codecov License PyPI

Laxate owns environment and machine orchestration. Benched owns pytest-benchmark execution, durable history, comparison, and static reports. Neither tool constructs a matrix implicitly: select or prepare one environment, then record it.

Install

pip install laxate
pip install "laxate[hetzner]"  # optional cloud provider

Run locally

Add [tool.benched] configuration and pytest-benchmark tests to the target project, then run:

laxate run local
laxate run local --quick --machine workstation
laxate compare previous latest
laxate publish
laxate preview

Run in a container

The project directory is bind-mounted at the same absolute path. Initialization commands must install the project and Benched into the container:

laxate run docker \
  --image python:3.12 \
  --init-command "pip install -e ." \
  --machine docker-3.12

Use --engine podman for Podman and repeat --mount for additional bind mounts.

Run on Hetzner

Configure benchmark_repo in [tool.laxate], export HCLOUD_TOKEN, and register the SSH public key named by --ssh-key-name:

laxate run hetzner \
  --server-type cx23 \
  --ssh-key ~/.ssh/hetzner_key \
  --ssh-key-name benchmarks \
  --branch main \
  --python-version 3.12 \
  --push

The runner clones the selected benchmark-suite branch, creates its Python environment, runs the repository's make benchmark target, and collects the configured results directory.

See CLI and configuration reference for every option.

Historical ASV files are not executed. Projects migrating old results can call benched import-asv once before using Laxate's Benched workflow.

Metadata

Release files for laxate 0.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 laxate 0.2.0
File Size Uploaded
laxate-0.2.0.tar.gz 25.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for laxate 0.2.0
File Interpreter ABI Platform
laxate-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 60.5 kB

Release files / laxate-0.2.0.tar.gz

Download URL laxate-0.2.0.tar.gz
Size 25.8 kB
Tags Source
SHA-256 checksum
How to use checksums
fb269649caf68d98dfe4a5164a35d00f7f99f6b1d3bf50ef37df946dc4caae3b
BLAKE2b-256 checksum
How to use checksums
5f6e243e8bbb110baa5d9cc1baa4574e31e17ea56c17d8f21c21391cc107fc35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / laxate-0.2.0-py3-none-any.whl

Download URL laxate-0.2.0-py3-none-any.whl
Size 34.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ff278fb411e94d03451b8f1d91dee2d79856d5a6c3768fcbe91ffbe3b5343e0
BLAKE2b-256 checksum
How to use checksums
af80bc9937c09d16eaf72237de23df4d9846871f73260d9f1e48188935723245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

0.0.0

1 release file

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