Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Beaker-py

A lightweight pure-Python client for Beaker.

Installing

Installing with pip

beaker-py is available on PyPI. Just run

pip install beaker-py

Installing from source

To install beaker-py from source, first clone the repository:

git clone https://github.com/allenai/beaker.git

Then create or activate a Python virtual environment, and run:

cd beaker/bindings/python
make dev-install

Quick start

If you've already configured the Beaker command-line client, beaker-py will find and use the existing configuration file (usually located at $HOME/.beaker/config.yml) or BEAKER_TOKEN environment variable.

Then you can instantiate the Beaker client with the .from_env() class method:

from beaker import Beaker

with Beaker.from_env() as beaker:
    ...

With the Python client, you can:

  • Query Clusters with beaker.cluster.* methods, e.g. beaker.cluster.get("ai2/jupiter-cirrascale-2").
  • Manage Datasets with beaker.dataset.* methods, e.g. beaker.dataset.create(dataset_name, source_dir).
  • Submit, track, and find Experiments with beaker.experiment.*, beaker.workload.*, and beaker.job.* methods, e.g. beaker.experiment.create(spec=spec, name=name).
  • Manage Workspaces with beaker.workspace.* methods, e.g. beaker.workspace.create("ai2/new_workspace").
  • Manage Secrets with beaker.secret.* methods, e.g. beaker.secret.write(name, value).

Example workflow

Launch and follow an experiment like beaker-gantry does:

import time
from beaker import Beaker, BeakerExperimentSpec, BeakerJobPriority


with Beaker.from_env() as beaker:
    # Build experiment spec...
    spec = BeakerExperimentSpec.new(
        description="beaker-py test run",
        beaker_image="petew/hello-world",
        priority=BeakerJobPriority.low,
        preemptible=True,
    )

    # Create experiment workload...
    workload = beaker.experiment.create(spec=spec)

    # Wait for job to be created...
    while (job := beaker.workload.get_latest_job(workload)) is None:
        print("waiting for job to start...")
        time.sleep(1.0)

    # Follow logs...
    print("Job logs:")
    for job_log in beaker.job.logs(job, follow=True):
        print(job_log.message.decode())

Development

After installing from source, you can run checks and tests locally with:

make checks

Releases

At the moment releases need to be published manually by following these steps:

  1. Ensure you've authenticated with PyPI through a ~/.pypirc file and have write permissions to the beaker-py project.
  2. Ensure the target release version defined in src/beaker/version.py is correct, or change the version on the fly by adding the Make argument BEAKER_PY_VERSION=X.X.X to the command in the next step.
  3. Run make publish for a stable release or make publish-nightly for a nightly pre-release.

Metadata

Release files for beaker-py 2.0.1.dev20250430

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

Source distribution (sdist)

Source distribution for beaker-py 2.0.1.dev20250430
File Size Uploaded
beaker_py-2.0.1.dev20250430.tar.gz 71.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beaker-py 2.0.1.dev20250430
File Interpreter ABI Platform
beaker_py-2.0.1.dev20250430-py3-none-any.whl Python 3 none any Details

Total release size: 151.7 kB

Release files / beaker_py-2.0.1.dev20250430.tar.gz

Download URL beaker_py-2.0.1.dev20250430.tar.gz
Size 71.8 kB
Tags Source
SHA-256 checksum
How to use checksums
02200216a7b362a127be152e7a0c2d122c2d3be124bd01f5b76dc6b5712a3a3d
BLAKE2b-256 checksum
How to use checksums
efd26a3806c5d55b19d1fba9b63bc13c237ab8080aefb74745096686d12fb324
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.13

Release files / beaker_py-2.0.1.dev20250430-py3-none-any.whl

Download URL beaker_py-2.0.1.dev20250430-py3-none-any.whl
Size 79.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
468e1ab68394e2f50131eef8c8c147a6fdc475aef1da92ca82da59ae0b7f0daa
BLAKE2b-256 checksum
How to use checksums
19a31d9b6645f02314ec40bb4fe73ca6afcb957c661c114b40ed34d6e6f78743
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.13

Release history Release notifications | RSS feed

2.8.1

2 release files

2.8.0

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.8

2 release files

2.5.7

2 release files

2.5.6

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.7

2 release files

2.4.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

This release

2.0.0

2 release files

1.38.1

2 release files

1.38.0

2 release files

1.37.0

2 release files

1.36.4

2 release files

1.36.3

2 release files

1.36.2

2 release files

1.36.1

2 release files

1.36.0

2 release files

1.35.0

2 release files

1.34.3

2 release files

1.34.2

2 release files

1.34.1

2 release files

1.34.0

2 release files

1.33.0

2 release files

1.32.3

2 release files

1.32.2

2 release files

1.31.3

2 release files

1.31.2

2 release files

1.31.1

2 release files

1.30.0

2 release files

1.29.1

2 release files

1.29.0

2 release files

1.28.0

2 release files

1.27.2

2 release files

1.27.1

2 release files

1.27.0

2 release files

1.26.7

2 release files

1.26.6

2 release files

1.26.5

2 release files

1.26.4

2 release files

1.26.3

2 release files

1.26.1

2 release files

1.26.0

2 release files

1.25.1

2 release files

1.25.0

2 release files

1.24.0

2 release files

1.23.0

2 release files

1.22.0

2 release files

1.20.0

2 release files

1.19.0

2 release files

1.18.8

2 release files

1.18.7

2 release files

1.18.5

2 release files

1.18.4

2 release files

1.18.3

2 release files

1.18.2

2 release files

1.18.1

2 release files

1.17.7

2 release files

1.17.6

2 release files

1.17.5

2 release files

1.17.4

2 release files

1.17.3

2 release files

1.17.2

2 release files

1.17.1

2 release files

1.17.0

2 release files

1.16.0

2 release files

1.15.0

2 release files

1.14.1

2 release files

1.14.0

2 release files

1.13.1

2 release files

1.12.0

2 release files

1.11.6

2 release files

1.11.5

2 release files

1.11.3

2 release files

1.10.3

2 release files

1.10.2

2 release files

1.10.1

2 release files

1.10.0

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.9

2 release files

1.6.8

2 release files

1.6.7

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 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