All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning with one exception: minor yet potentially breaking changes to the data model that are made to maintain compatibility with the Beaker server and not necessarily given new major releases. We often use patch releases for compatibility fixes instead.
v1.38.1 - 2025-10-14
- Added missing optional
budgetforImagedata model. - Added missing optional
budgetforDatasetdata model.
v1.38.0 - 2025-10-10
- Added optional
budgetparameter toBeaker.dataset.create()method for specifying budget during dataset creation. - Added optional
budgetparameter toBeaker.image.create()method for specifying budget during image creation.
v1.37.0 - 2025-09-15
- Added missing
budgetfield forExperimentdata model.
budgetargument toExperimentSpecis now optional.
v1.36.4 - 2025-07-16
- Added new
aliasesfield toClusterdata model.
v1.36.3 - 2025-07-11
- Added
immediatepriority.
v1.36.2 - 2025-04-24
- Added
strictoption toBeaker.experiment.latest_job()method. - Added
Beaker.experiment.all_latest_jobs()methods. - Added
owner_org,budget_id,slot_limit_preemptible,slot_limit_non_preemptible, andassigned_slots_preemptiblefields toWorkspace.
v1.36.1 - 2025-04-23
- Fixed a bug where some remaining logs lines might not get downloaded from
Beaker.job.follow_structured().
v1.36.0 - 2025-04-23
- Added
Beaker.(job|experiment).follow_structured()andBeaker.(job|experiment).structured_logs()methods, which stream structured log events using the RPC interface.
v1.35.0 - 2025-04-21
- Added
Beaker.job.summarized_events()method.
v1.34.3 - 2025-04-15
- Fixed bug introduced in last release where a
timeout(orsynchronized_start_timeout) ofNonein an experiment spec would cause a validation error.
v1.34.2 - 2025-04-14
- Allow setting timeout fields as duration strings when loading an experiment spec from YAML or JSON.
v1.34.1 - 2025-02-25
- Fixed how we send task timeout to server.
v1.34.0 - 2025-02-25
- Added
Beaker.experiment.set_description()method.
v1.33.0 - 2025-02-25
- Added
timeoutfield toTaskSpec.
v1.32.3 - 2024-12-11
- Added new field
Cluster.max_session_timeout: Optional[int]. - Added new field
JobExecution.retry_ancestor: Optional[str].
- Made checking for version upgrades more robust.
v1.32.2 - 2024-11-13
- Relaxed requirements on Docker layer upload/download status strings.
v1.32.1 - 2024-11-01
- Added new
WorkspaceSize.environmentsfield.
v1.32.0 - 2024-10-07
- Added
retryfield toExperimentSpec.
v1.31.3 - 2024-08-30
- Increased Beaker.from_env() default timeout from 5s to 30s
v1.31.2 - 2024-07-26
- Added
node_has_gpusfield toJob.
v1.31.1 - 2024-07-14
- Fixed
Task.replica_rankto be set to the right value now instead of alwaysNone.
v1.31.0 - 2024-07-08
- Added
execution_resultstoJobmodel.
v1.30.0 - 2024-06-14
- Added
wekaoption toDataSourcemodel.
- Only check for upgrades once every 12 hours by default.
v1.29.1 - 2024-06-13
- Raise
ExperimentConflictwhen stopping an experiment that was already stopped fromBeaker.experiment.stop.
v1.29.0 - 2024-06-13
- Added
authorfilter toBeaker.job.list(). - Added
Beaker.experiment.list()method.
v1.28.0 - 2024-06-13
- Added
Job.is_preemptibleproperty. - Added
Job.is_runningproperty. - Added
Job.is_queuedproperty. - Added
ClusterUtilization.jobsfield.
v1.27.2 - 2024-05-31
- Added
sinceargument toBeaker.experiment.follow().
- Fixed an issue with using
timedeltaobjects for thesinceargument withBeaker.(experiment|job).(follow|logs).
v1.27.1 - 2024-05-31
- Added
TaskSpec.propagate_preemptionfield.
v1.27.0 - 2024-05-31
- Added
sinceargument toBeaker.job.follow.
v1.26.15 - 2024-05-30
- Fixed another bug with identifying preemptible jobs in
Beaker.cluster.utilization.
v1.26.14 - 2024-05-29
- Added
Experiment.canceledandExperiment.canceled_forfields.
- Fixed detection of preemptible jobs in
Beaker.cluster.utilization().
v1.26.13 - 2024-05-28
- Added
Secret.author_idfield. - Added
Cluster.require_preemptible_tasksfield.
- Updated dependencies list to work-around docker-py#3256.
v1.26.12 - 2024-05-10
- Added
preemptibleargument toTaskSpec.new(). - Added
Workspace.max_workload_priorityfield. - Added
Job.preemptiblefield.
v1.26.11 - 2024-05-10
- Added new field
TaskContext.preemptible.
v1.26.10 - 2024-05-02
- Added support for passing human-readable
synchronized_start_timeoutduration strings toTaskSpec.new(), like "10sec", "1m", etc.
v1.26.9 - 2024-05-02
- Update
synchronized_start_timeoutto send nanoseconds to the Beaker server instead of a string.
v1.26.8 - 2024-05-01
- Added new fields
JobStatus.ready,JobExecution.replica_rank, andJobExecution.replica_group_id.
v1.26.7 - 2024-04-30
- Added
synchronized_start_timeoutfield toTaskSpec.
v1.26.6 - 2024-04-24
- Added
propagate_failurefield toTaskSpec.
v1.26.5 - 2024-04-18
- Numbers are now allowed in
commandandargumentsfields for experiment specs.
v1.26.4 - 2024-04-10
- Relaxed
CanceledCodeschema to accept arbitrary integers.
v1.26.3 - 2024-03-20
- Fixed logic in
Beaker.cluster.utilization()to checkjob.limitsinstead ofjob.requestsfor the source of truth.
v1.26.2 - 2024-02-29
- Added
ignore_failuresoption toBeaker.cluster.preempt_jobs().
v1.26.1 - 2024-02-28
- Made
publicargument optional forBeaker.workspace.create().
v1.26.0 - 2024-02-28
- Added cluster method
Beaker.cluster.preempt_jobs(). - Added argument
allow_preemptibletoBeaker.cluster.update().
v1.25.1 - 2024-02-26
- Added missing field
Cluster.max_job_timeout.
v1.25.0 - 2024-02-22
budgetis now a required field for experiment specs.
v1.24.0 - 2024-01-30
- Added
budgetfield to experiment spec.
v1.23.0 - 2023-12-15
- Allow only key-word arguments with
Beaker.experiment.create().
v1.22.0 - 2023-09-25
- Allow experiment name to be
Nonewhen creating new experiments viaBeaker.experiment.create().
v1.21.0 - 2023-09-08
- Added
.priorityconvenience property toJobdata model class. - Added
Beaker.job.url()method to get the URL for a job.
- Fixed a bug with
Beaker.cluster.utilization()that resulted in inflated numbers for the amount of running jobs.
v1.20.1 - 2023-09-01
- Added new missing cancellation code (4 = manual cancellation) to enumeration.
v1.20.0 - 2023-07-28
- Added
prefixparameter toBeaker.dataset.fetch().
v1.19.0 - 2023-07-17
- Added support for Pydantic V2.
- Added missing field
compute_sourceonClusterdata model.
v1.18.8 - 2023-07-12
- Made
WorkspacePermissions.authorizationsfield optional (users without the right permissions level won't see this field).
v1.18.7 - 2023-06-19
- Added
hostnameconstraint.
v1.18.6 - 2023-06-02
- Fixed data validation for
DataSource.
v1.18.5 - 2023-05-25
- Added missing field
Cluster.allow_preemptible_restriction_exceptions.
v1.18.4 - 2023-04-27
- Added support for uploading empty files to datasets.
v1.18.3 - 2023-04-19
- Added missing fields
total_sizeandnum_filestoDatasetStorage.
v1.18.2 - 2023-03-22
- Fixed
TaskSpec.constraintsto behave like a dictionary for backwards compatibility.
v1.18.1 - 2023-03-14
- Added missing field
docker_tagtoImage.
v1.18.0 - 2023-03-07
- Added missing
host_networking,replicas, andleader_selectionfields toTaskSpec.
- Removed the
multiprocessingargument toBeaker.dataset.fetch(). After the bug that was fixed in v1.17.6 it's no-longer worth using aProcessPoolExecutor(in fact it's much slower than theThreadPoolExecutor).
v1.17.7 - 2023-02-20
- Fixed bug with dataset download progress bar jumping around.
v1.17.6 - 2023-02-20
- Fixed bug causing slow dataset downloads.
v1.17.5 - 2023-02-17
- Added new field
Job.result,Job.execution.resultis deprecated. - Added new field
Task.replica_rank.
v1.17.4 - 2023-02-17
- Fixed latest tag (was "LATEST", should have been "latest")
v1.17.3 - 2023-02-17
- Added a
latesttagged Docker image.
v1.17.2 - 2023-02-15
- Catch case where user token is empty, raise
ConfigurationError.
v1.17.1 - 2023-02-14
- Added
multiprocessingoption toBeaker.dataset.fetch(). This can speed things up substantially for datasets with a lot of files.
v1.17.0 - 2023-02-13
- Added
ExperimentSpec.new()constructor.
- The
clusterargument toTaskSpec.new()andExperimentSpec.new()can now be given as a list of clusters which is equivalent to adding a "cluster" list in theconstraintsfield.
Beaker.workspace.clear()will remove uncommitted datasets too.- Fixed the progress bar total in
Beaker.dataset.fetch()and improved handling ofKeyboardInterrupt.
v1.16.0 - 2023-01-26
- Added missing
user_restrictionsfield toClusterdata model. - Added
Beaker.job.preempt()method. - Added
Job.was_preemptedproperty. - Added
jobattribute toJobFailedErrorandtaskattribute toTaskStoppedError. - Added DEBUG logging statements for every request and response to/from the Beaker server. To see these, just enable logging at the DEBUG level (though you may want to disable DEBUG logging from the "urllib3" logger, as that will create a lot of noise). For example:
import logging logging.basicConfig(level=logging.DEBUG) logging.getLogger("urllib3").setLevel(logging.INFO)
- Fixed bug where
Beaker.experiment.wait_for()would fail if a job was preempted.
v1.15.0 - 2023-01-19
- Added
DigestHashAlgorithmenum to representDigest.algorithm. - Added
Digest.new_hasher()method. - Added fields
Job.host_networking,Job.port_mappings, andSession.ports_v2.
- For backwards compatibility,
Digestcan now be instantiated again from a string, e.g.Digest("SHA256 iA02Sx8UNLYvMi49fDwdGjyy5ssU+ttuN1L4L3/JvZA=").
v1.14.1 - 2023-01-18
- No more blank lines printed when passing
quiet=Trueto methods.
v1.14.0 - 2023-01-17
- Added
prefixparameter toBeaker.dataset.ls().
- The
FileInfoobjects fromBeaker.dataset.ls()will now include thedigest.
v1.13.2 - 2023-01-03
Beaker.dataset.ls()now returns a list instead of a generator.
- Fixed
Beaker.dataset.ls(),.get_file(),.stream_file(),.fetch(),.size()methods.
v1.13.1 - 2022-12-21
- Added missing
urlv2field toDatasetStoragedata model. - Added missing
constraintsfield toSessiondata model. - Added missing
descriptionfield toGroupdata model.
- Removed deprecated
urlfield fromFileInfodata model.
v1.13.0 - 2022-12-09
- Added
cursor,sort_byand ordering options toBeaker.workspace.*search methods.
v1.12.1 - 2022-12-08
- Improved
Beaker.(dataset|experiment|image).get()when looking up objects in the default workspace that were created by other users.
v1.12.0 - 2022-11-23
- Added
Beaker.workspace.iter_(images|experiments|datasets)methods. - Added
older_thanparameter toBeaker.workspace.clear()method.
- Fixed
Beaker.experiment.results()when dataset no longer exists. It will now returnNoneinstead of failing withDatasetNotFound.
v1.11.6 - 2022-11-22
- Added missing
urlfield toDatasetStorage.
- Removed old field
fileheapfromDatasetSpec.
v1.11.5 - 2022-11-16
- Added missing
sizefield toImagedata model
v1.11.4 - 2022-11-07
TaskSpec.with_contraintnow takes**kwargsinstead of two positional arguments.
v1.11.3 - 2022-10-28
- Added customizable
user_agentattribute toBeakerclient.
- Added missing
account_idfield toNodedata model. - Added missing
identityfield toSessiondata model.
v1.11.2 - 2022-10-07
- Added missing
constraintsfield toTaskSpecdata model.
v1.11.1 - 2022-10-07
- Added missing
cluster_idfield toNodedata model.
v1.11.0 - 2022-10-06
- The cluster field in
JobandTaskContextis now optional.
v1.10.3 - 2022-09-28
- Fixed data validation for job/task
Priority. "urgent" now allowed.
v1.10.2 - 2022-09-27
- Fixed mispelled field
sharedMemory -> shared_memoryinJobRequestsdata model.
v1.10.1 - 2022-09-23
- Added missing fields
cordoned,cordon_reason,cordon_agent_idto data model forNode.
- Made
expiryfield optional forNodedata model. Beaker.cluster.filter_available()will ignore cordoned nodes.
v1.10.0 - 2022-09-21
- Added
Beaker.dataset.upload()for uploading raw bytes to a file in a dataset.
v1.9.2 - 2022-09-21
- Added
Beaker.workspace.clear()method for removing all items from a workspace.
- Made
Beaker.dataset.commit()more robust by allowing automatic retries for recoverable errors.
v1.9.1 - 2022-09-15
beaker-pywill issue warnings now when unknown fields are encountered.
v1.9.0 - 2022-09-14
- Added
pool_maxsizeargument toBeakerclient. - Added
canceled_forandcanceled_codefields toJob.status.
Beaker.experiment.(wait_for|as_completed)won't fail when a job is preempted.
v1.8.1 - 2022-09-09
- Added better debug logging when recoverable errors happen.
- Made
Beaker.dataset.fetch()more robust to corrupted downloads.
v1.8.0 - 2022-09-08
- Added
Beaker.dataset.get_file(). Similar tostream_file(), but returns the entire bytes at once and is more robust since it will retry internally when HTTP and timeout errors occur.
- Made most methods more robust to all recoverable errors that can occur while contacting the Beaker server, such HTTP, timeout, connection, and SSL errors.
v1.7.4 - 2022-09-07
- 500 errors from server treated as recoverable.
v1.7.3 - 2022-09-06
- 429 errors treated as recoverable.
- Fixed an error with
Beaker.experiment.(wait_for|as_completed|follow)that would hang if an experiment's task was stopped before a job was created.
v1.7.2 - 2022-09-06
- Fixes an issue where a job that was canceled during initialization or provisioning might not get marked as a failure.
v1.7.1 - 2022-08-31
- Fixed bug with
Beaker.(job|experiment).follow()where final line wasn't returned.
- Removed deprecated
urloption forDataMount.
v1.7.0 - 2022-08-30
- Added argument
include_timestamps: booltoBeaker.(job|experiment).follow().
- Fixed returning duplicate log lines from
Beaker.(job|experiment).follow().
v1.6.9 - 2022-08-01
- Fixed a bug in
Beaker.group.create()where thedescriptionargument would be ignored.
v1.6.8 - 2022-07-27
- Shortened URLs for
datasetandimage.
v1.6.7 - 2022-07-20
- Fixed a bug in
Beaker.(job|experiment).follow()where some final log lines might not be yielded before the method returns.
v1.6.6 - 2022-07-19
- Fixed bug where
Beaker.experiment.delete()would fail if the result dataset was already deleted.
v1.6.5 - 2022-07-15
- Fixed bug with checking job status. Sometimes a successful job would be marked as failed.
v1.6.4 - 2022-07-14
- Removed outdated field
ownerfromExperiment,Task, andDataset.
v1.6.3 - 2022-07-05
- Handling empty string values in Beaker config YAML files for compatibility with
beakerCLI. Any empty string values in a Beaker config YAML file are now converted toNonewhen theConfigobject is loaded from the file. On the other hand, if you try to explicitly set the value of a field to an empty string when initializing theBeakerclient (e.g.Beaker.from_env(default_org='')) you'll get aValueError.
v1.6.2 - 2022-06-27
- Fixed a bug where the
sessionparameter toBeaker.from_env()wasn't actually passed through to the class'__init__()method.
v1.6.1 - 2022-06-24
- Added support for older versions of Pydantic (back to v1.8.2).
v1.6.0 - 2022-06-17
- Added
Beaker.job.follow()andBeaker.experiment.follow()methods for live streaming logs.
- The return type of
Beaker.experiment.tasks()behaves like both aSequence[Task]and aMapping[str, Task], i.e. you can call__getitem__()with either anint,slice, or astrfor the name of a task.
- Fixed a bug where
Beaker.(job|experiment).(wait_for|as_completed)()methods could hang if a job was canceled or failed to ever start for some reason.
v1.5.1 - 2022-06-16
Beaker.(job|experiment).(wait_for|as_completed)()methods now raises a more specificJobTimeoutError(which inherits fromTimeoutError) instead of a genericTimeoutError.
v1.5.0 - 2022-06-16
- Added
sinceparameter toBeaker.job.logs()andBeaker.experiment.logs().
v1.4.2 - 2022-06-13
- Fixed bug in loading config where encountering unknown fields would cause an exception.
beaker-pynow gracefully handles this.
v1.4.1 - 2022-06-10
- Added
sessionargument toBeakerclient constructors (.from_env()and__init__()). You can use this argument to force the client to use a single HTTPSessionfor all requests to the server for the life of the client. Using this approach it's not necessary to use theBeaker.session()context manager, but you should only use this if the client is short-lived.
v1.4.0 - 2022-06-09
- Added
Beaker.session()context manager for improving performance when calling a series of client methods in a row. - Added
timeoutparameter toBeakerclient initialization methods with a default of5(seconds). This controls the connect and read timeouts of HTTP requests sent to the Beaker server.
v1.3.0 - 2022-05-31
- Added
Beaker.group.export_experiments()method.
- Fixed
Jobpriority validation.
v1.2.0 - 2022-05-25
- Added
Beaker.dataset.file_info()method. - Added
.workspace(WorkspaceRef) property toDataset,Image,Group, andExperiment. This is just an alias for the.workspace_refproperty.
Beaker.dataset.stream_file()now can also take aFileInfoobject as the 2nd argument instead of a file path.Digestclass is now hashable.
v1.1.0 - 2022-05-18
- Added
ExperimentSpec.to_file()method.
v1.0.0 - 2022-05-13
- Removed deprecated
Beaker.experiment.await_all()method.
v0.15.3 - 2022-05-10
- Added
Digesttype and changed type ofFileInfo.digestfromstrtoDigest.
v0.15.2 - 2022-05-09
- Added
Beaker.experiment.latest_job()method. - Added
strict: boolargument toBeaker.(experiment|job).(wait_for|as_completed)methods. - Added
descriptionandsource_executionfields toDataset. - Added
descriptionfield toExperiment. - Added
descriptionfield toImage. - Added
descriptionfield toWorkspace.
v0.15.1 - 2022-05-06
- Docker images released with major and major+minor version tags in addition to full version tag.
v0.15.0 - 2022-05-06
- Added
ExperimentSpec.with_description(). - Added
TaskSpec.with_image(),.with_result(),.with_context(),.with_name(),.with_command(), and.with_arguments().
- Renamed
delete_results_datasetparam todelete_results_datasetsinBeaker.experiment.delete(). - Renamed
TaskSpec.with_data()toTaskSpec.with_dataset().
- Fixed bug with
Beaker.experiment.delete()that would lead to aValueErrorbeing raised when the experiment to delete has multiple tasks.
v0.14.1 - 2022-05-05
- Replaced
id: strfield ofClusterUtilizationwithcluster: Cluster.idis still available as a property for backwards compatibility.
v0.14.0 - 2022-05-04
- Added
descriptionparameter toBeaker.dataset.create(),Beaker.image.create(),Beaker.workspace.create(). - Added
publicparameter toBeaker.workspace.create().
Beaker.workspace.grant_permissionsnow takes aPermissionenum type instead of a raw string, but raw strings will still work.
v0.13.2 - 2022-04-29
- The
Beaker.account.nameproperty is now cached for performance reasons with a TTL cache. - Renamed
Cluster.nodeCosttoCluster.node_costfor consistency. - Fixed some issues around mutable data models with properties that have different snake case vs lower camel case names.
v0.13.1 - 2022-04-28
Beaker.dataset.fetch()andBeaker.dataset.stream_file()now verify the digest of the downloaded bytes against the expected digest by default. AChecksumFailedErroris raised if they don't match. You can skip validating the checksum by passingvalidate_checksum=False.- Added a progress bar to
Beaker.dataset.stream_file(). This can be disabled by passingquiet=True.
v0.13.0 - 2022-04-27
- 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.
- Improved performance of
Beaker.cluster.filter_available()by using aThreadPoolExecutorfor concurrency. - Changed behavior of
Beaker.dataset.create()andBeaker.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 passingstrip_paths=True. - Changed default value of
max_workerstoNoneinBeaker.dataset.create()and.sync(). When left asNone, the number of workers will be determined by theThreadPoolExecutor. - "." now allowed in beaker names.
v0.12.0 - 2022-04-26
- 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 = Trueparameter toBeaker.experiment.delete(). - Added
Cluster.is_cloudandCluster.is_activeproperties.
- Changed the return type of
Beaker.cluster.filter_available()fromList[Cluster]toList[ClusterUtilization]. - Renamed and consolidated
NodeSpecandNodeShapetoNodeResources.
v0.11.0 - 2022-04-21
- Added
Task.latest_jobproperty.
- Changed signature of
Beaker.experiment.(logs|metrics|results)methods: replaced parametertask_name: Optional[str]withtask: Optional[Union[str, Task]].
v0.10.0 - 2022-04-20
- Added
Beaker.image.rename()method. - Added
Beaker.image.pull()method. - Added
Beaker.experiment.url()method.
- Changed return type of
Beaker.cluster.utilization()toClusterUtilization.
v0.9.0 - 2022-04-19
- Added
Beaker.groupclient 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
commitparameter toBeaker.image.create().
- Changed the signature of
Beaker.experiment.results(). Added thetask_nameparameter and changed the return type toOptional[Dataset]. - Changed the signature of
Beaker.experiment.logs(). Removed thejob_idparameter and added thetask_nameparameter. - Deprecated
Beaker.experiment.await_all(). UseBeaker.experiment.wait_for()instead.
- Fixed bug with
Beaker.image.create().
v0.8.4 - 2022-04-18
- Fixed issue in data model for
Experiment.nameandfull_nameare now optional. - Fixed issue in data model for
Image.nameandfull_nameare now optional.
v0.8.3 - 2022-04-14
- Added
Beaker.workspace.(get|set|grant|revoke)_permissions()and.set_visibility()methods.
- 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.
v0.8.2 - 2022-04-13
- Implemented
Beaker.workspace.archive(),.unarchive(),.rename(),.move(), andcreate()methods. - Implemented
Beaker.job.stop()andBeaker.job.finalize()methods. - Added
WorkspaceWriteErrorfor when you attempt to write to an archived workspace. Before this would just result in anHTTPErrorwith a 403 status code.
- Allowed using workspace name without organization when
Config.default_orgis set. OtherwiseOrganizationNotSeterror is raised.
v0.8.1 - 2022-04-12
- Implemented
__str__method onBeakerclient for debugging. - Improved documentation for
ExperimentSpec,TaskSpec, and other related data models, and added new convenience constructors such asTaskSpec.new().
- Changed default spec version to
v2.
- Improved experiment spec validation in
Beaker.experiment.create()to raise more specific error types.
v0.8.0 - 2022-04-12
Beaker.experiment.await_all()now takes a variable number of experiments and returns a list with the same length and order of the finished experiments.
- Fixed bug where
Beaker.experiment.create()would fail with anHTTPErrorif the image in the spec doesn't exist. Now this will fail withImageNotFound.
v0.7.0 - 2022-04-11
- Made
orgparameter optional, defaulting toConfig.default_org.
- Fixed the behavior of some methods that take a
workspaceparameter. Previously, if the workspace didn't exist, it would be silently created. Now aWorkspaceNotFounderror is raised.
v0.6.1 - 2022-04-11
- Added
Beaker.workspace.secrets(). - Added
Beaker.secret.get(). - Added
Beaker.secret.read(). - Added
Beaker.secret.write(). - Added
Beaker.secret.delete().
v0.6.0 - 2022-04-11
- Added
Beaker.experiment.rename(). - Added
Beaker.experiment.tasks(). - Added
Beaker.experiment.results(). - Added
Beaker.experiment.spec(). - Added
Beaker.workspace.datasets(). - Added
Beaker.workspace.experiments(). - Added
Beaker.workspace.images(). - Added
Beaker.workspace.list(). - Added
Beaker.account.get().
- Removed
Beaker.experiment.list(). Please useBeaker.workspace.experiments()instead.
v0.5.5 - 2022-04-10
- Added
callbackparameter toBeaker.experiment.await_all().
v0.5.4 - 2022-04-10
- Added
Beaker.dataset.size(). - Added
Beaker.dataset.rename(). - Added
ExperimentSpec.from_file(). - Added
Beaker.cluster.filter_available().
v0.5.3 - 2022-04-08
- Added
Beaker.dataset.commit(). - Added
Beaker.dataset.ls(). - Added
Beaker.dataset.stream_file().
- Changed behavior of
targetparameter inBeaker.dataset.create(). It now always represents the name of a directory. - Changed the signature of
Beaker.dataset.create(). It now accepts a variable number of source files or directories.
v0.5.2 - 2022-04-07
- Added
Beaker.experiment.stop().
- Fixed bug with
Beaker.experiment.await_all().
v0.5.1 - 2022-04-07
- Fixed bug with
Beaker.jobs.list().
v0.5.0 - 2022-04-07
- Added
Beaker.nodeservice client. - Added
Beaker.job.get()andBeaker.job.list()methods. - Added
Beaker.cluster.utilization().
- Fixed warning about newer version.
- Removed
Executiondata model, since it's deprecated and redundant withJob.
v0.4.3 - 2022-04-06
- Added
Beaker.account.nameproperty andBeaker.account.list_organizations()method. - Added
ExperimentSpecand all components to the data model. - Added
Beaker.clusterservice client for managing Beaker clusters. - Added
Beaker.organizationservice client for managing Beaker organizations.
Beaker.experiment.create()now accepts either anExperimentSpecinstance or the path to a YAML spec file.
v0.4.2 - 2022-04-04
- Added support for large files with
Beaker.dataset.create(). - Added
Beaker.dataset.fetch().
v0.4.1 - 2022-04-03
- Added
Beaker.experiment.delete()andBeaker.experiment.await_all()methods. Beaker.dataset.createcan now handle directories.
v0.4.0 - 2022-04-03
- Breaking changs to
Beakerclient API. Methods for services have been split up into seperate service clients. For example, previously you would create an image withbeaker.create_image(), whereas now you would dobeaker.image.create().
v0.3.9 - 2022-04-01
- Fixed bug in
delete_image()that would result inImageNotFounderror when using image full name instead of ID.
v0.3.8 - 2022-04-01
- All
Beakerclient methods now return strongly typed data models. - Replaced old progress diplays with prettier diplays from
rich.
v0.2.8 - 2022-03-31
- Fixed getting experiment from name.
v0.2.7 - 2022-03-31
- Added
Beaker.create_dataset()method.
v0.2.6 - 2022-01-19
- Added
list_experiments()method.
v0.2.5 - 2021-12-14
- Fixed bug where
Beaker.from_env()would fail with missingBEAKER_TOKENeven if you passed the token to the method.
v0.2.4 - 2021-12-09
- Docker Client is initialized lazily so that some functionality of
Beakerclient can be used on systems without Docker.
v0.2.3 - 2021-12-09
- Fixed crash that could occur when
$HOMEdirectory doesn't exist.
v0.2.2 - 2021-12-08
v0.2.1 - 2021-12-08
- Fixed bug with
Config.save(). - Fixed bug with
create_image()where it would fail if workspace doesn't exist yet.
v0.2.0 - 2021-12-07
- Added many new methods.
- Added
beaker.exceptionsmodule.
- Several breaking changes to
Beakermethod names.
v0.1.0 - 2021-11-19
- Added
Beakerclient class.