modAL 1.5.6.dev7__py3-none-any.whl → 1.5.6.dev9__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.
modal/client.pyi CHANGED
@@ -77,7 +77,7 @@ class _Client:
77
77
  server_url: str,
78
78
  client_type: int,
79
79
  credentials: typing.Optional[tuple[str, str]],
80
- version: str = "1.5.6.dev7",
80
+ version: str = "1.5.6.dev9",
81
81
  *,
82
82
  oauth_credentials: typing.Optional[_OAuthCredentials] = None,
83
83
  ):
@@ -277,7 +277,7 @@ class Client:
277
277
  server_url: str,
278
278
  client_type: int,
279
279
  credentials: typing.Optional[tuple[str, str]],
280
- version: str = "1.5.6.dev7",
280
+ version: str = "1.5.6.dev9",
281
281
  *,
282
282
  oauth_credentials: typing.Optional[_OAuthCredentials] = None,
283
283
  ):
modal/exception.py CHANGED
@@ -195,7 +195,7 @@ class SandboxTimeoutError(TimeoutError):
195
195
 
196
196
 
197
197
  class SnapshotCreationError(Error):
198
- """Raised when a Sandbox fails to create an exit snapshot."""
198
+ """Snapshot operation is done and failed. Polling again will not produce an Image; filesystem state is gone."""
199
199
 
200
200
 
201
201
  class ExecTimeoutError(TimeoutError):
modal/sandbox.py CHANGED
@@ -1462,6 +1462,11 @@ class _Sandbox(_Object, type_prefix="sb"):
1462
1462
  async def _experimental_get_exit_snapshot(self, timeout: float | None = None) -> _Image:
1463
1463
  """Get the exit filesystem snapshot image.
1464
1464
 
1465
+ An exit snapshot captures the Sandbox filesystem when the Sandbox exits,
1466
+ whether its entrypoint finishes gracefully, abruptly, or it is stopped with
1467
+ `terminate()`. Exit snapshots are opt-in: the Sandbox must have been
1468
+ created with `experimental_options={"enable_exit_snapshot": True}`.
1469
+
1465
1470
  Args:
1466
1471
  timeout: Total time to wait in seconds, spread across repeated long
1467
1472
  polls of at most `_EXIT_SNAPSHOT_LONG_POLL_TIMEOUT` seconds each.
@@ -1477,7 +1482,8 @@ class _Sandbox(_Object, type_prefix="sb"):
1477
1482
  TimeoutError: If `timeout` elapses before the snapshot reaches a
1478
1483
  terminal state. This includes `timeout=0` when the snapshot is
1479
1484
  still pending.
1480
- SnapshotCreationError: If no exit snapshot image will be produced.
1485
+ SnapshotCreationError: Snapshot operation is done and failed.
1486
+ Polling again will not produce an Image; filesystem state is gone.
1481
1487
  NotFoundError: If the sandbox does not exist.
1482
1488
  PermissionDeniedError: If the caller cannot access the sandbox.
1483
1489
  """
modal/sandbox.pyi CHANGED
@@ -597,6 +597,11 @@ class _Sandbox(modal._object._Object):
597
597
  async def _experimental_get_exit_snapshot(self, timeout: typing.Optional[float] = None) -> modal._image._Image:
598
598
  """Get the exit filesystem snapshot image.
599
599
 
600
+ An exit snapshot captures the Sandbox filesystem when the Sandbox exits,
601
+ whether its entrypoint finishes gracefully, abruptly, or it is stopped with
602
+ `terminate()`. Exit snapshots are opt-in: the Sandbox must have been
603
+ created with `experimental_options={"enable_exit_snapshot": True}`.
604
+
600
605
  Args:
601
606
  timeout: Total time to wait in seconds, spread across repeated long
602
607
  polls of at most `_EXIT_SNAPSHOT_LONG_POLL_TIMEOUT` seconds each.
@@ -612,7 +617,8 @@ class _Sandbox(modal._object._Object):
612
617
  TimeoutError: If `timeout` elapses before the snapshot reaches a
613
618
  terminal state. This includes `timeout=0` when the snapshot is
614
619
  still pending.
615
- SnapshotCreationError: If no exit snapshot image will be produced.
620
+ SnapshotCreationError: Snapshot operation is done and failed.
621
+ Polling again will not produce an Image; filesystem state is gone.
616
622
  NotFoundError: If the sandbox does not exist.
617
623
  PermissionDeniedError: If the caller cannot access the sandbox.
618
624
  """
@@ -2457,6 +2463,11 @@ class Sandbox(modal.object.Object):
2457
2463
  def __call__(self, /, timeout: typing.Optional[float] = None) -> modal.image.Image:
2458
2464
  """Get the exit filesystem snapshot image.
2459
2465
 
2466
+ An exit snapshot captures the Sandbox filesystem when the Sandbox exits,
2467
+ whether its entrypoint finishes gracefully, abruptly, or it is stopped with
2468
+ `terminate()`. Exit snapshots are opt-in: the Sandbox must have been
2469
+ created with `experimental_options={"enable_exit_snapshot": True}`.
2470
+
2460
2471
  Args:
2461
2472
  timeout: Total time to wait in seconds, spread across repeated long
2462
2473
  polls of at most `_EXIT_SNAPSHOT_LONG_POLL_TIMEOUT` seconds each.
@@ -2472,7 +2483,8 @@ class Sandbox(modal.object.Object):
2472
2483
  TimeoutError: If `timeout` elapses before the snapshot reaches a
2473
2484
  terminal state. This includes `timeout=0` when the snapshot is
2474
2485
  still pending.
2475
- SnapshotCreationError: If no exit snapshot image will be produced.
2486
+ SnapshotCreationError: Snapshot operation is done and failed.
2487
+ Polling again will not produce an Image; filesystem state is gone.
2476
2488
  NotFoundError: If the sandbox does not exist.
2477
2489
  PermissionDeniedError: If the caller cannot access the sandbox.
2478
2490
  """
@@ -2481,6 +2493,11 @@ class Sandbox(modal.object.Object):
2481
2493
  async def aio(self, /, timeout: typing.Optional[float] = None) -> modal.image.Image:
2482
2494
  """Get the exit filesystem snapshot image.
2483
2495
 
2496
+ An exit snapshot captures the Sandbox filesystem when the Sandbox exits,
2497
+ whether its entrypoint finishes gracefully, abruptly, or it is stopped with
2498
+ `terminate()`. Exit snapshots are opt-in: the Sandbox must have been
2499
+ created with `experimental_options={"enable_exit_snapshot": True}`.
2500
+
2484
2501
  Args:
2485
2502
  timeout: Total time to wait in seconds, spread across repeated long
2486
2503
  polls of at most `_EXIT_SNAPSHOT_LONG_POLL_TIMEOUT` seconds each.
@@ -2496,7 +2513,8 @@ class Sandbox(modal.object.Object):
2496
2513
  TimeoutError: If `timeout` elapses before the snapshot reaches a
2497
2514
  terminal state. This includes `timeout=0` when the snapshot is
2498
2515
  still pending.
2499
- SnapshotCreationError: If no exit snapshot image will be produced.
2516
+ SnapshotCreationError: Snapshot operation is done and failed.
2517
+ Polling again will not produce an Image; filesystem state is gone.
2500
2518
  NotFoundError: If the sandbox does not exist.
2501
2519
  PermissionDeniedError: If the caller cannot access the sandbox.
2502
2520
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.5.6.dev7
3
+ Version: 1.5.6.dev9
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -34,7 +34,7 @@ modal/billing.py,sha256=E1-P_P8bJFLp-bTaggYd4BaaViImPB5UdtXiY8VeAZQ,390
34
34
  modal/billing.pyi,sha256=4m7VLYNS8IiJ2I3CJx0awvrOM6BILWRVLfdeqtAYr8M,7189
35
35
  modal/call_graph.py,sha256=XGALIDn1bLchWo_goyX23bcPjzCZcfqKUo8INIfDapo,1775
36
36
  modal/client.py,sha256=CiBsT2XuUuKps5RYc3jwJcfI_VQKK09cbkqeHfHpx3E,21476
37
- modal/client.pyi,sha256=cvANMaQaZzmzH3-LI3hcC-HIA70qwMhWKnk5n_g1Hv0,22281
37
+ modal/client.pyi,sha256=DFL2DypzS-vsW5bZcH0Xhn2GbL3ZL29K6Dy7UfAKBSk,22281
38
38
  modal/cloud_bucket_mount.py,sha256=UlLYi8M-5FY64uGiTZwb3R4UlJAqHZHDdByaakPzrjU,6886
39
39
  modal/cloud_bucket_mount.pyi,sha256=cAkMjjochpV1QLyDa5cPsqAse1_uNBsEH0ivawJFQew,8188
40
40
  modal/cls.py,sha256=JE5KfVyQEvlc40Sjsn3lwaU5Ue0Zs4esQ5QBLxmxqBU,42508
@@ -46,7 +46,7 @@ modal/dict.py,sha256=Lzf3mo16wkV5tPucbRyjr2XQEoB8tH2-1-9dU6q-pBA,24072
46
46
  modal/dict.pyi,sha256=SPafrdRoStNJFt3YtO2H6PucXfbP-rDPB9zAWgY91sY,38253
47
47
  modal/environments.py,sha256=gKxjaaMS6YzVhl_rHgDqFZy6qlTgBkX9FOTSVVuCvds,1694
48
48
  modal/environments.pyi,sha256=DMoXQhzuiJ46cGq6hO69Z6rg8gPuuBSMhFx32Q4Igrs,21732
49
- modal/exception.py,sha256=2AwHPwv9vTAG4sxMCI5vrbaT5JfKq2l9TfS9k2KUeP4,12288
49
+ modal/exception.py,sha256=mCeYo0Kl-fDa3qTW3TK4ookvc88H6VlcP0xve1AgyNs,12338
50
50
  modal/file_io.py,sha256=GYTa67mrmbTTTBsYQnb51VmwGIo0YY-1qQ3YBhagkmA,21795
51
51
  modal/file_io.pyi,sha256=3181-DS07flFWLf2BKjqCOiWIjieEOolf33wx6fBp5c,15377
52
52
  modal/file_pattern_matcher.py,sha256=CpaNNj7oBlOSewX-AAUZCF8KDxH0_DmgwzfpVGbPYJ4,8138
@@ -76,8 +76,8 @@ modal/retries.py,sha256=tSGB5bGM5xZZUDXMkuelIEoQJY0vOukOssZhwc6tXAo,5014
76
76
  modal/runner.py,sha256=5auTijqKFvMleYfVaK01sRdXd1dWQLilXlSqWx9gMAM,31344
77
77
  modal/runner.pyi,sha256=jIdnTwYv5AH-c8weyeCFzJ0hIekw81QqUsxVzXbgkcc,9954
78
78
  modal/running_app.py,sha256=xSR1VVlhxEFytmjx2x697_0GpD25Vc9crhp6r117_QY,1145
79
- modal/sandbox.py,sha256=AOvNw9Uoz40UtHmx2tGZ5B84PEDv6lWbiA-qBT8FBIM,134876
80
- modal/sandbox.pyi,sha256=shhenvSkuFYqrozmY6AbnmEuS0-Sp-zbNgeNTTQr378,157117
79
+ modal/sandbox.py,sha256=reBAg1ddT8p8ZXr2kYwzerKVfbvYvhOKyZtqBJ6JVVg,135273
80
+ modal/sandbox.pyi,sha256=nqBDpNYbyS5NOqXZ7gKf20-3PtY3hkXPnFqMNp7CBcA,158348
81
81
  modal/sandbox_fs.py,sha256=GSuPlrLSdQ7fG7c_TGMd-VWs_s6RqQxMvLivdvC6s4s,27002
82
82
  modal/sandbox_fs.pyi,sha256=TJWx8h7x3yRC7KUxeF7q62_0a7w1IHufnJL7AYEojAg,45285
83
83
  modal/schedule.py,sha256=wsOrZEKOWH6lw2H50AERFsxSd_DafDH6blME1ukkf8U,3260
@@ -198,7 +198,7 @@ modal/experimental/flash.py,sha256=m803RsPvMgLCSNJfT_11da1sz9l1BIr1MDxAA_qtK2k,1
198
198
  modal/experimental/flash.pyi,sha256=tHS2un-PxndcxV27l7CAWnPhRPmiIs2cCNzKLXBNxJA,8520
199
199
  modal/experimental/ipython.py,sha256=kJ6o9wkAY_MiSb7paewI7f1MJAeqdi8TX5pBdhr_mUI,2925
200
200
  modal/skills/modal/SKILL.md,sha256=ERhA-zss3OoPXU_d3Qo8-PNrK2QI_ctyhGavou3egd0,5276
201
- modal-1.5.6.dev7.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
201
+ modal-1.5.6.dev9.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
202
202
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
203
203
  modal_docs/gen_cli_docs.py,sha256=9-b8vl2EsLWD9zJqpCK8IUi5h44Bjn3i3rSdedZV4bA,6415
204
204
  modal_docs/gen_cli_docs_main.py,sha256=UPGr7O1DYTIRLwfINe2rbdh89J3cPVTU1OWL-SjxnOQ,198
@@ -222,10 +222,10 @@ modal_proto/task_command_router_pb2.py,sha256=rMwEVv6DV1Hpv8_hi7SE0zxCkrv6elWgwK
222
222
  modal_proto/task_command_router_pb2.pyi,sha256=OQ2jBFSduSEPtP3llAhFhW2dZJJxsqBy3Y5s8Yj40nA,47640
223
223
  modal_proto/task_command_router_pb2_grpc.py,sha256=zuFkJgKcswB2ftjnyEgs70dp61VMA7gK0h0uzR3gYFw,42563
224
224
  modal_proto/task_command_router_pb2_grpc.pyi,sha256=UjAJFqz9DpOFXP04fVm5lB2eAyTtjOg3oKjfWei8yLU,14262
225
- modal_version/__init__.py,sha256=1skhWBFkW3rhWtAL_PsFZELSWQjFajxAjFVH7eMskp4,120
225
+ modal_version/__init__.py,sha256=FfH6Y2Xy5qWZtz0MbIe4-xPYvHZuKHtli4CIHwOe4kw,120
226
226
  modal_version/__main__.py,sha256=nLUbubxKx7GXNzJIkTB7M7_u8080LyLM0IS0rzFkC_c,119
227
- modal-1.5.6.dev7.dist-info/METADATA,sha256=eYL6tFJetskj-gTc753a_qxnRVJ7jTAkzJnCoidWEWk,2512
228
- modal-1.5.6.dev7.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
229
- modal-1.5.6.dev7.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
230
- modal-1.5.6.dev7.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
231
- modal-1.5.6.dev7.dist-info/RECORD,,
227
+ modal-1.5.6.dev9.dist-info/METADATA,sha256=6Wrd_pahgljNRPA8qYHqYnIl0W5fjAY2AIEgRuKvCNw,2512
228
+ modal-1.5.6.dev9.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
229
+ modal-1.5.6.dev9.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
230
+ modal-1.5.6.dev9.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
231
+ modal-1.5.6.dev9.dist-info/RECORD,,
modal_version/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2026
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.5.6.dev7"
4
+ __version__ = "1.5.6.dev9"