beaker-py 2.7.0__tar.gz → 2.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {beaker_py-2.7.0 → beaker_py-2.7.2}/PKG-INFO +5 -3
- {beaker_py-2.7.0 → beaker_py-2.7.2}/README.md +3 -1
- {beaker_py-2.7.0 → beaker_py-2.7.2}/pyproject.toml +1 -1
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_service_client.py +10 -0
- beaker_py-2.7.2/src/beaker/beaker_pb2.py +1752 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/beaker_pb2.pyi +394 -129
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/beaker_pb2_grpc.py +400 -13
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/client.py +2 -0
- beaker_py-2.7.2/src/beaker/version.py +1 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker_py.egg-info/PKG-INFO +5 -3
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker_py.egg-info/requires.txt +1 -1
- beaker_py-2.7.0/src/beaker/beaker_pb2.py +0 -1646
- beaker_py-2.7.0/src/beaker/version.py +0 -1
- {beaker_py-2.7.0 → beaker_py-2.7.2}/setup.cfg +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/__init__.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_cluster.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_dataset.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_deprecations.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_experiment.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_group.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_image.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_job.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_node.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_organization.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_queue.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_secret.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_user.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_workload.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/_workspace.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/common.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/config.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/exceptions.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/py.typed +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/types.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker/utils.py +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker_py.egg-info/SOURCES.txt +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker_py.egg-info/dependency_links.txt +0 -0
- {beaker_py-2.7.0 → beaker_py-2.7.2}/src/beaker_py.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: beaker-py
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.2
|
|
4
4
|
Summary: A Python Beaker client
|
|
5
5
|
Author-email: Allen Institute for Artificial Intelligence <contact@allenai.org>, Pete Walsh <petew@allenai.org>
|
|
6
6
|
Project-URL: Homepage, https://github.com/allenai/beaker
|
|
@@ -21,7 +21,7 @@ Requires-Dist: google-crc32c
|
|
|
21
21
|
Provides-Extra: docker
|
|
22
22
|
Requires-Dist: docker<8.0,>=5.0; extra == "docker"
|
|
23
23
|
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: ruff; extra == "dev"
|
|
24
|
+
Requires-Dist: ruff<0.16,>=0.15; extra == "dev"
|
|
25
25
|
Requires-Dist: mypy<1.6,>=1.0; extra == "dev"
|
|
26
26
|
Requires-Dist: types-requests; extra == "dev"
|
|
27
27
|
Requires-Dist: types-cachetools; extra == "dev"
|
|
@@ -186,7 +186,9 @@ See the [integration tests](https://github.com/allenai/beaker/tree/main/bindings
|
|
|
186
186
|
|
|
187
187
|
## Development
|
|
188
188
|
|
|
189
|
-
After [installing from source](#installing-from-source),
|
|
189
|
+
After [installing from source](#installing-from-source), set BEAKER_TOKEN in your environment.
|
|
190
|
+
|
|
191
|
+
Then, you can run checks and tests locally with:
|
|
190
192
|
|
|
191
193
|
```bash
|
|
192
194
|
make checks
|
|
@@ -145,7 +145,9 @@ See the [integration tests](https://github.com/allenai/beaker/tree/main/bindings
|
|
|
145
145
|
|
|
146
146
|
## Development
|
|
147
147
|
|
|
148
|
-
After [installing from source](#installing-from-source),
|
|
148
|
+
After [installing from source](#installing-from-source), set BEAKER_TOKEN in your environment.
|
|
149
|
+
|
|
150
|
+
Then, you can run checks and tests locally with:
|
|
149
151
|
|
|
150
152
|
```bash
|
|
151
153
|
make checks
|
|
@@ -224,6 +224,12 @@ class ServiceClient:
|
|
|
224
224
|
if status_code == 400 and msg is not None and "already in use" in msg:
|
|
225
225
|
status_code = 409
|
|
226
226
|
|
|
227
|
+
# A native 409 is a transient serialization/deadlock conflict
|
|
228
|
+
# (service/error.go), not a name conflict, so retry it instead of
|
|
229
|
+
# surfacing e.g. BeakerExperimentConflict.
|
|
230
|
+
if status_code == 409 and msg == "a retryable database conflict occurred":
|
|
231
|
+
raise BeakerServerError(msg)
|
|
232
|
+
|
|
227
233
|
if exceptions_for_status is not None and status_code in exceptions_for_status:
|
|
228
234
|
raise exceptions_for_status[status_code]
|
|
229
235
|
|
|
@@ -246,6 +252,10 @@ class ServiceClient:
|
|
|
246
252
|
# We assume HEAD and GET calls won't modify state, so they're
|
|
247
253
|
# safe to retry for any recoverable error.
|
|
248
254
|
make_request = self._retriable()(make_request)
|
|
255
|
+
else:
|
|
256
|
+
# Other methods only retry transient serialization conflicts; the
|
|
257
|
+
# aborted transaction rolled back, so replaying is safe.
|
|
258
|
+
make_request = self._retriable(recoverable_errors=(BeakerServerError,))(make_request)
|
|
249
259
|
|
|
250
260
|
with self.beaker.http_session() as session:
|
|
251
261
|
return make_request(session)
|