Skip to main content

Beaker-py

A lightweight pure-Python client for Beaker.

Quick Links

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. For example:

    beaker.cluster.get("ai2/jupiter-cirrascale-2")
    
  • Manage Datasets with beaker.dataset.* methods. For example:

    beaker.dataset.create(dataset_name, source_dir)
    
  • Manage Experiments with beaker.experiment.* and beaker.workload.* methods. For example:

    beaker.experiment.create(spec=spec, name=name)
    
  • Manage Groups with beaker.group.* methods. For example:

    beaker.group.create(name)
    
  • Manage Images with beaker.image.* methods. For example:

    beaker.image.update(image, name=name)
    
  • Manage Secrets with beaker.secret.* methods. For example:

    beaker.secret.write(name, value)
    
  • Manage Workspaces with beaker.workspace.* methods. For example:

    beaker.workspace.create("ai2/new_workspace")
    
  • Track Jobs with beaker.job.* methods. For example:

    beaker.job.logs(job, follow=True)
    
  • Create and process Queues with beaker.queue.* methods. For example:

    beaker.queue.create("my-work-queue", batch_size=4)
    

If you're coming from v1 of beaker-py, consider reading the migration guide.

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,
        min_runtime="1h",
    )

    # 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())

See the integration tests for more examples.

Development

After installing from source, set BEAKER_TOKEN in your environment.

Then, 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. The local ~/.pypirc file looks like:
[distutils]
index-servers = pypi

[pypi]
username = __token__
password = #beaker-py pypi API token from 1pass#
  1. 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.
  2. Ensure the CHANGELOG.md has a section at the top for the new release (## vX.X.X - %Y-%m-%d).
  3. Run make publish for a stable release or make publish-nightly for a nightly pre-release.

Download files

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

Source Distribution

beaker_py-2.7.2.tar.gz (112.9 kB view details)

Uploaded Source

Built Distribution

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

beaker_py-2.7.2-py3-none-any.whl (124.0 kB view details)

Uploaded Python 3

File details

Details for the file beaker_py-2.7.2.tar.gz.

File metadata

  • Download URL: beaker_py-2.7.2.tar.gz
  • Upload date:
  • Size: 112.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for beaker_py-2.7.2.tar.gz
Algorithm Hash digest
SHA256 52170b97ad4f35d9fbea913786a7becd929eca63dda186156c6533d88225706b
MD5 372406895a886febe211507e86fc22fa
BLAKE2b-256 469ab3458811250ca8a0cb012d86a8c1e8aacb489ede22216d43c15f53b7b1dc

See more details on using hashes here.

File details

Details for the file beaker_py-2.7.2-py3-none-any.whl.

File metadata

  • Download URL: beaker_py-2.7.2-py3-none-any.whl
  • Upload date:
  • Size: 124.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for beaker_py-2.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c07799f208c68cf7c880d670fbfa69c794eca1c34f01b9c7f61289cce592c1b
MD5 d9a0ffb87a0ffb16c5e22a66c5f99a49
BLAKE2b-256 0431b2c7077837404c694c47ee955ff6436917b0693e9741339e057d8e83dd48

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.7.2 This release

2 files

2.7.1

2 files

2.7.0

2 files

2.6.0

2 files

2.5.8

2 files

2.5.7

2 files

2.5.6

2 files

2.5.5

2 files

2.5.4

2 files

2.5.3

2 files

2.5.2

2 files

2.5.1

2 files

2.5.0

2 files

2.4.7

2 files

2.4.6

2 files

2.4.5

2 files

2.4.4

2 files

2.4.3

2 files

2.4.2

2 files

2.4.1

2 files

2.4.0

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

2.0.0.dev0

2 files

1.38.1

2 files

1.38.0

2 files

1.37.0

2 files

1.36.4

2 files

1.36.3

2 files

1.36.2

2 files

1.36.1

2 files

1.36.0

2 files

1.35.0

2 files

1.34.3

2 files

1.34.2

2 files

1.34.1

2 files

1.34.0

2 files

1.33.0

2 files

1.32.3

2 files

1.32.2

2 files

1.32.1

2 files

1.32.0

2 files

1.31.3

2 files

1.31.2

2 files

1.31.1

2 files

1.31.0

2 files

1.30.0

2 files

1.29.1

2 files

1.29.0

2 files

1.28.0

2 files

1.27.2

2 files

1.27.1

2 files

1.27.0

2 files

1.26.15

2 files

1.26.14

2 files

1.26.13

2 files

1.26.12

2 files

1.26.11

2 files

1.26.10

2 files

1.26.9

2 files

1.26.8

2 files

1.26.7

2 files

1.26.6

2 files

1.26.5

2 files

1.26.4

2 files

1.26.3

2 files

1.26.2

2 files

1.26.1

2 files

1.26.0

2 files

1.25.1

2 files

1.25.0

2 files

1.24.0

2 files

1.23.0

2 files

1.22.0

2 files

1.21.0

2 files

1.20.1

2 files

1.20.0

2 files

1.19.0

2 files

1.18.8

2 files

1.18.7

2 files

1.18.6

2 files

1.18.5

2 files

1.18.4

2 files

1.18.3

2 files

1.18.2

2 files

1.18.1

2 files

1.18.0

2 files

1.17.7

2 files

1.17.6

2 files

1.17.5

2 files

1.17.4

2 files

1.17.3

2 files

1.17.2

2 files

1.17.1

2 files

1.17.0

2 files

1.16.0

2 files

1.15.0

2 files

1.14.1

2 files

1.14.0

2 files

1.13.2

2 files

1.13.1

2 files

1.13.0

2 files

1.12.1

2 files

1.12.0

2 files

1.11.6

2 files

1.11.5

2 files

1.11.4

2 files

1.11.3

2 files

1.11.2

2 files

1.11.1

2 files

1.11.0

2 files

1.10.3

2 files

1.10.2

2 files

1.10.1

2 files

1.10.0

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.1

2 files

1.8.0

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.9

2 files

1.6.8

2 files

1.6.7

2 files

1.6.6

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.1

2 files

1.5.0

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.15.3

2 files

0.15.2

2 files

0.15.1

2 files

0.15.0

2 files

0.14.1

2 files

0.14.0

2 files

0.13.2

2 files

0.13.1

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.9

2 files

0.3.8

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 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