Skip to content

Releases: allenai/beaker-py

v0.13.1

28 Apr 18:21
Compare
Choose a tag to compare

What's new

Changed ⚠️

  • Beaker.dataset.fetch() and Beaker.dataset.stream_file() now verify the digest of the downloaded bytes
    against the expected digest by default. A ChecksumFailedError is raised if they don't match.
    You can skip validating the checksum by passing validate_checksum=False.
  • Added a progress bar to Beaker.dataset.stream_file(). This can be disabled by passing quiet=True.

Commits

93eb5ec Bump mypy from 0.942 to 0.950 (#92)
36e2367 Add progress bar to Beaker.dataset.stream_file()
465db0f Update rich requirement from <12.3,>=12.0 to >=12.0,<12.4 (#90)
b219784 Fix checksum validation and dataset tests
a77c144 Validate digest when downloading files from datasets

v0.13.0

27 Apr 18:04
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Beaker.dataset.url() method.
  • Added Beaker.image.url() method.
  • Added Beaker.group.url() method.
  • Added Beaker.workspace.url() method.
  • Added Beaker.cluster.url() method.

Changed ⚠️

  • Improved performance of Beaker.cluster.filter_available() by using a ThreadPoolExecutor for concurrency.
  • Changed behavior of Beaker.dataset.create() and Beaker.dataset.sync() with respect to source files. By default now, source files and directories will be uploading as their given path, instead of just their name. You can still get the old behavior by passing strip_paths=True.
  • Changed default value of max_workers to None in Beaker.dataset.create() and .sync().
    When left as None, the number of workers will be determined by the ThreadPoolExecutor.
  • "." now allowed in beaker names.

Commits

4fcc8d5 Allow "." in beaker names (#91)
b426ab2 Add Beaker.(cluster|group|image|workspace).url() methods
1723180 Add Beaker.dataset.url() method
2c2bd48 Keep source paths by default when syncing datasets (#89)
c5a648f update dockerignore
134b9be Improve Beaker.cluster.filter_available() by using a ThreadPoolExecutor for concurrency (#88)

v0.12.0

26 Apr 17:33
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added FAQ section to the docs.
  • All data models are now hashable and faux immutable, and use tuples instead of lists.
  • Added delete_results_dataset: bool = True parameter to Beaker.experiment.delete().
  • Added Cluster.is_cloud and Cluster.is_active properties.

Changed ⚠️

  • Changed the return type of Beaker.cluster.filter_available() from List[Cluster] to
    List[ClusterUtilization].
  • Renamed and consolidated NodeSpec and NodeShape to NodeResources.

Commits

977b0d2 Update "Team" section of docs
bd91813 Bump myst-parser from 0.17.0 to 0.17.2 (#75)
23dec78 Bump actions/upload-artifact from 2 to 3 (#68)
81fdc21 Bump actions/download-artifact from 2 to 3 (#69)
0b81fda Improve docs and data model (#87)
d0e1bbd Fix test for version warning
0304b12 improve Config.__str__() and Beaker.__str__()
f40facc document how to skip upgrade warning
0161442 Add test for warning about upgrades
7468f30 fix typo
5405f0d fix typo
e156871 fix typo
ceada49 Add delete_results_dataset param to experiment.delete()
8458aaf clean up Beaker.experiment.as_completed()
6bba3a3 Add FAQ to docs, make BaseModel immutable and hashable (#86)

v0.11.0

21 Apr 17:37
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Task.latest_job property.

Changed ⚠️

  • Changed signature of Beaker.experiment.(logs|metrics|results) methods: replaced parameter
    task_name: Optional[str] with task: Optional[Union[str, Task]].

Commits

383bbe4 Rename task_name paremeter to task, add TaskNotFound error type (#85)
86a4ff5 clean up

v0.10.0

21 Apr 00:16
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Beaker.image.rename() method.
  • Added Beaker.image.pull() method.
  • Added Beaker.experiment.url() method.

Changed ⚠️

  • Changed return type of Beaker.cluster.utilization() to ClusterUtilization.

Commits

e310d2d Improve Beaker.cluster.utilization() (#84)
77e573b Close #79, add Beaker.experiment.url()
9e80fec Reorganize data model module (#83)
d614667 Move dataset integration tests
12e2e60 Add Beaker.image.pull() method (#82)
d811247 Add Beaker.image.rename(), integration tests, other internal improvements (#81)

v0.9.0

19 Apr 21:56
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Beaker.group client and methods.
  • Added Beaker.workspace.groups() method.
  • Added Beaker.experiment.resume() method.
  • Added Beaker.experiment.metrics() method.
  • Added Beaker.job.metrics() method.
  • Added Beaker.job.results() method.
  • Added Beaker.job.wait_for() method.
  • Added Beaker.job.as_completed() method.
  • Added Beaker.experiment.as_completed() method.
  • Added Beaker.image.commit() method.
  • Added commit parameter to Beaker.image.create().

Changed ⚠️

  • Changed the signature of Beaker.experiment.results(). Added the task_name parameter
    and changed the return type to Optional[Dataset].
  • Changed the signature of Beaker.experiment.logs(). Removed the job_id parameter
    and added the task_name parameter.
  • Deprecated Beaker.experiment.await_all(). Use Beaker.experiment.wait_for() instead.

Fixed ✅

  • Fixed bug with Beaker.image.create().

Commits

f7a0ba3 Rework experiment results(), logs(), metrics(), and await_all() methods (#77)
d9f267a Add Beaker.job.results() method
512273f improve warning message for upgrades
a3cdabc Add Beaker.group client (#76)
2cb9f6a Implement Beaker.experiment.resume() method

v0.8.4

18 Apr 17:50
Compare
Choose a tag to compare

What's new

Fixed ✅

  • Fixed issue in data model for Experiment. name and full_name are now optional.
  • Fixed issue in data model for Image. name and full_name are now optional.

Commits

a6fd52d fix linting
422ace6 Add note about existing configuration file
448aaae fix Image data model
b2cbbee fix Experiment data model

v0.8.3

14 Apr 21:27
Compare
Choose a tag to compare

What's new

Added 🎉

  • Added Beaker.workspace.(get|set|grant|revoke)_permissions() and .set_visibility() methods.

Changed ⚠️

  • Added better support for referencing Beaker items (images, experiments, datasets, etc)
    by their short name (without workspace, org, or account prefix) when the full name
    or ID can be assumed.
  • Improved error documentation.

Commits

52ecadd Implement Beaker.workspace.*_permissions() methods (#73)
07f1474 Better support for referencing Beaker items by short name or ID (#72)
5287ad0 clean up
ba812dd Add Jobs section to overview

v0.8.2

14 Apr 06:13
Compare
Choose a tag to compare

What's new

Added 🎉

  • Implemented Beaker.workspace.archive(), .unarchive(), .rename(), .move(), and create() methods.
  • Implemented Beaker.job.stop() and Beaker.job.finalize() methods.
  • Added WorkspaceWriteError for when you attempt to write to an archived workspace. Before this
    would just result in an HTTPError with a 403 status code.

Changed ⚠️

  • Allowed using workspace name without organization when Config.default_org is set.
    Otherwise OrganizationNotSet error is raised.

Commits

6b6ebd6 Add "See also" section to README
cb9493d Implement more Beaker.workspace methods (#71)
518fe97 Add Beaker.job.stop() and .finalize() methods (#70)
ceb413c Bump actions/setup-python from 1 to 3 (#66)
646bb73 Bump actions/checkout from 2 to 3 (#67)
d279ab5 Add github-actions to dependabot watch list, add config compatibility tests (#65)

v0.8.1

13 Apr 02:51
Compare
Choose a tag to compare

What's new

Added 🎉

  • Implemented __str__ method on Beaker client for debugging.
  • Improved documentation for ExperimentSpec, TaskSpec, and other related data models,
    and added new convenience constructors such as TaskSpec.new().

Changed ⚠️

  • Changed default spec version to v2.

Fixed ✅

  • Improved experiment spec validation in Beaker.experiment.create() to raise more specific error types.

Commits

cd24cb4 Improve spec docs and add convenience constructors
424f8c7 Improve experiment spec validation
8ff49cd Implement Beaker.__str__()
049761f Change default spec version of "v2"