modal 1.1.5.dev40__py3-none-any.whl → 1.1.5.dev41__py3-none-any.whl
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.
Potentially problematic release.
This version of modal might be problematic. Click here for more details.
- modal/_functions.py +25 -26
- modal/client.pyi +2 -2
- {modal-1.1.5.dev40.dist-info → modal-1.1.5.dev41.dist-info}/METADATA +1 -1
- {modal-1.1.5.dev40.dist-info → modal-1.1.5.dev41.dist-info}/RECORD +9 -9
- modal_version/__init__.py +1 -1
- {modal-1.1.5.dev40.dist-info → modal-1.1.5.dev41.dist-info}/WHEEL +0 -0
- {modal-1.1.5.dev40.dist-info → modal-1.1.5.dev41.dist-info}/entry_points.txt +0 -0
- {modal-1.1.5.dev40.dist-info → modal-1.1.5.dev41.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.5.dev40.dist-info → modal-1.1.5.dev41.dist-info}/top_level.txt +0 -0
modal/_functions.py
CHANGED
|
@@ -477,34 +477,34 @@ class _InputPlaneInvocation:
|
|
|
477
477
|
metadata=metadata,
|
|
478
478
|
)
|
|
479
479
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if internal_failure_count < MAX_INTERNAL_FAILURE_COUNT:
|
|
490
|
-
# For system failures on the server, we retry immediately,
|
|
491
|
-
# and the failure does not count towards the retry policy.
|
|
492
|
-
self.attempt_token = await self._retry_input(metadata)
|
|
493
|
-
continue
|
|
480
|
+
# Keep awaiting until we get an output.
|
|
481
|
+
if not await_response.HasField("output"):
|
|
482
|
+
continue
|
|
483
|
+
|
|
484
|
+
# If we have a final output, return.
|
|
485
|
+
if await_response.output.result.status in TERMINAL_STATUSES:
|
|
486
|
+
return await _process_result(
|
|
487
|
+
await_response.output.result, await_response.output.data_format, self.client.stub, self.client
|
|
488
|
+
)
|
|
494
489
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
#
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
490
|
+
# We have a failure (internal or application), so see if there are any retries left, and if so, retry.
|
|
491
|
+
if await_response.output.result.status == api_pb2.GenericResult.GENERIC_STATUS_INTERNAL_FAILURE:
|
|
492
|
+
internal_failure_count += 1
|
|
493
|
+
# Limit the number of times we retry internal failures.
|
|
494
|
+
if internal_failure_count < MAX_INTERNAL_FAILURE_COUNT:
|
|
495
|
+
# We immediately retry internal failures and the failure doesn't count towards the retry policy.
|
|
496
|
+
self.attempt_token = await self._retry_input(metadata)
|
|
497
|
+
continue
|
|
498
|
+
elif (delay_ms := user_retry_manager.get_delay_ms()) is not None:
|
|
499
|
+
# We still have user retries left, so sleep and retry.
|
|
505
500
|
await asyncio.sleep(delay_ms / 1000)
|
|
501
|
+
self.attempt_token = await self._retry_input(metadata)
|
|
502
|
+
continue
|
|
506
503
|
|
|
507
|
-
|
|
504
|
+
# No more retries left.
|
|
505
|
+
return await _process_result(
|
|
506
|
+
await_response.output.result, await_response.output.data_format, self.client.stub, self.client
|
|
507
|
+
)
|
|
508
508
|
|
|
509
509
|
async def _retry_input(self, metadata: list[tuple[str, str]]) -> str:
|
|
510
510
|
retry_request = api_pb2.AttemptRetryRequest(
|
|
@@ -513,7 +513,6 @@ class _InputPlaneInvocation:
|
|
|
513
513
|
input=self.input_item,
|
|
514
514
|
attempt_token=self.attempt_token,
|
|
515
515
|
)
|
|
516
|
-
# TODO(ryan): Add exponential backoff?
|
|
517
516
|
retry_response = await retry_transient_errors(
|
|
518
517
|
self.stub.AttemptRetry,
|
|
519
518
|
retry_request,
|
modal/client.pyi
CHANGED
|
@@ -33,7 +33,7 @@ class _Client:
|
|
|
33
33
|
server_url: str,
|
|
34
34
|
client_type: int,
|
|
35
35
|
credentials: typing.Optional[tuple[str, str]],
|
|
36
|
-
version: str = "1.1.5.
|
|
36
|
+
version: str = "1.1.5.dev41",
|
|
37
37
|
):
|
|
38
38
|
"""mdmd:hidden
|
|
39
39
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -164,7 +164,7 @@ class Client:
|
|
|
164
164
|
server_url: str,
|
|
165
165
|
client_type: int,
|
|
166
166
|
credentials: typing.Optional[tuple[str, str]],
|
|
167
|
-
version: str = "1.1.5.
|
|
167
|
+
version: str = "1.1.5.dev41",
|
|
168
168
|
):
|
|
169
169
|
"""mdmd:hidden
|
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -3,7 +3,7 @@ modal/__main__.py,sha256=45H-GtwzaDfN-1nP4_HYvzN3s7AG_HXR4-ynrsjO_OI,2803
|
|
|
3
3
|
modal/_clustered_functions.py,sha256=Sy4Sf_17EO8OL-FUe8LYcm4hrqLyQFCssNhr3p0SroU,3013
|
|
4
4
|
modal/_clustered_functions.pyi,sha256=JmYwAGOLEnD5AF-gYF9O5tu-SgGjeoJz-X1j48b1Ijg,1157
|
|
5
5
|
modal/_container_entrypoint.py,sha256=fLluT_sU34vGPCTG1Q58VI1RvxF5n7vQzCVCsL-MMk8,29033
|
|
6
|
-
modal/_functions.py,sha256
|
|
6
|
+
modal/_functions.py,sha256=e2HUGJ9Cd1rZnbyzL3DpsAsb_Lnwzs2ud_Khyh-nseE,91399
|
|
7
7
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
|
8
8
|
modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
|
|
9
9
|
modal/_object.py,sha256=gwsLdXb-Ecd8nH8LVCo8oVZPzzdyo9BrN1DjgQmsSuM,11967
|
|
@@ -22,7 +22,7 @@ modal/app.py,sha256=OBFaL-8KVMtBMEmspHA76LvblPdnSgdoGioLkQBjhdQ,48851
|
|
|
22
22
|
modal/app.pyi,sha256=Cqk3pOeEEroCLejj3yJ3XHDqt0rMzeSA295gMKEx6Ww,43955
|
|
23
23
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
|
24
24
|
modal/client.py,sha256=kyAIVB3Ay-XKJizQ_1ufUFB__EagV0MLmHJpyYyJ7J0,18636
|
|
25
|
-
modal/client.pyi,sha256
|
|
25
|
+
modal/client.pyi,sha256=-zQp154zOBW_7NV3OHm3ozST6RxGNCNQPnBiBfrp7Wo,15831
|
|
26
26
|
modal/cloud_bucket_mount.py,sha256=I2GRXYhOWLIz2kJZjXu75jAm9EJkBNcutGc6jR2ReUw,5928
|
|
27
27
|
modal/cloud_bucket_mount.pyi,sha256=VuUOipMIHqFXMkD-3g2bsoqpSxV5qswlFHDOqPQzYAo,7405
|
|
28
28
|
modal/cls.py,sha256=R1uLQbdqWRRjvxs0I57a4hZZELZkBVCxOKxvKryU5_s,41639
|
|
@@ -153,7 +153,7 @@ modal/experimental/__init__.py,sha256=fCqzo_f3vcY750vHtd7CtLs5dvdM_C0ZLLGb3zXuK9
|
|
|
153
153
|
modal/experimental/flash.py,sha256=7qRAL2Nrwbb60YKobcnpM0zJ8vw4xGJqabLPFgEzMZE,28295
|
|
154
154
|
modal/experimental/flash.pyi,sha256=R9VV0UDotiY9BRUjacB-xI4qhR3yBymAvEZFRFHztLs,15143
|
|
155
155
|
modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
|
|
156
|
-
modal-1.1.5.
|
|
156
|
+
modal-1.1.5.dev41.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
157
157
|
modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
|
158
158
|
modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
|
|
159
159
|
modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
|
|
@@ -182,10 +182,10 @@ modal_proto/sandbox_router_pb2.py,sha256=INd9izYaIYqllESQt4MSv2Rj9Hf5bMjAvtCc9b4
|
|
|
182
182
|
modal_proto/sandbox_router_pb2.pyi,sha256=YCK0WnCgRos3-p7t4USQQ7x6WAuM278yeQX2IeU5mLg,13295
|
|
183
183
|
modal_proto/sandbox_router_pb2_grpc.py,sha256=zonC5flvCwxeZYJPENj1IJo2Mr0J58DpoC1_8IdPYik,8243
|
|
184
184
|
modal_proto/sandbox_router_pb2_grpc.pyi,sha256=4QgCB9b7_ykvH8YD-hfnogVH9CLyHVDC5QNb03l4_X8,2735
|
|
185
|
-
modal_version/__init__.py,sha256=
|
|
185
|
+
modal_version/__init__.py,sha256=qrU_-KnQqxtq0V3RY2h8DLNt82xrpCyIZaaXa0aBK8g,121
|
|
186
186
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
|
187
|
-
modal-1.1.5.
|
|
188
|
-
modal-1.1.5.
|
|
189
|
-
modal-1.1.5.
|
|
190
|
-
modal-1.1.5.
|
|
191
|
-
modal-1.1.5.
|
|
187
|
+
modal-1.1.5.dev41.dist-info/METADATA,sha256=KPWQJpgE4fyneRbWLz-BJpF1Mm04GYBoN01qMJorexE,2460
|
|
188
|
+
modal-1.1.5.dev41.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
189
|
+
modal-1.1.5.dev41.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
|
190
|
+
modal-1.1.5.dev41.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
|
191
|
+
modal-1.1.5.dev41.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|