modal 1.1.1.dev28__py3-none-any.whl → 1.1.1.dev30__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 CHANGED
@@ -629,7 +629,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
629
629
  experimental_options: Optional[dict[str, str]] = None,
630
630
  _experimental_proxy_ip: Optional[str] = None,
631
631
  _experimental_custom_scaling_factor: Optional[float] = None,
632
- _experimental_enable_gpu_snapshot: bool = False,
633
632
  ) -> "_Function":
634
633
  """mdmd:hidden"""
635
634
  # Needed to avoid circular imports
@@ -930,7 +929,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
930
929
  _experimental_concurrent_cancellations=True,
931
930
  _experimental_proxy_ip=_experimental_proxy_ip,
932
931
  _experimental_custom_scaling=_experimental_custom_scaling_factor is not None,
933
- _experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
934
932
  # --- These are deprecated in favor of autoscaler_settings
935
933
  warm_pool_size=min_containers or 0,
936
934
  concurrency_limit=max_containers or 0,
@@ -967,7 +965,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
967
965
  _experimental_group_size=function_definition._experimental_group_size,
968
966
  _experimental_buffer_containers=function_definition._experimental_buffer_containers,
969
967
  _experimental_custom_scaling=function_definition._experimental_custom_scaling,
970
- _experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
971
968
  _experimental_proxy_ip=function_definition._experimental_proxy_ip,
972
969
  snapshot_debug=function_definition.snapshot_debug,
973
970
  runtime_perf_record=function_definition.runtime_perf_record,
modal/app.py CHANGED
@@ -665,7 +665,6 @@ class _App:
665
665
  ] = None, # Experimental controls over fine-grained scheduling (alpha).
666
666
  _experimental_proxy_ip: Optional[str] = None, # IP address of proxy
667
667
  _experimental_custom_scaling_factor: Optional[float] = None, # Custom scaling factor
668
- _experimental_enable_gpu_snapshot: bool = False, # Experimentally enable GPU memory snapshots.
669
668
  # Parameters below here are deprecated. Please update your code as suggested
670
669
  keep_warm: Optional[int] = None, # Replaced with `min_containers`
671
670
  concurrency_limit: Optional[int] = None, # Replaced with `max_containers`
@@ -830,7 +829,6 @@ class _App:
830
829
  include_source=include_source if include_source is not None else self._include_source_default,
831
830
  experimental_options={k: str(v) for k, v in (experimental_options or {}).items()},
832
831
  _experimental_proxy_ip=_experimental_proxy_ip,
833
- _experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
834
832
  )
835
833
 
836
834
  self._add_function(function, webhook_config is not None)
@@ -889,7 +887,6 @@ class _App:
889
887
  ] = None, # Experimental controls over fine-grained scheduling (alpha).
890
888
  _experimental_proxy_ip: Optional[str] = None, # IP address of proxy
891
889
  _experimental_custom_scaling_factor: Optional[float] = None, # Custom scaling factor
892
- _experimental_enable_gpu_snapshot: bool = False, # Experimentally enable GPU memory snapshots.
893
890
  # Parameters below here are deprecated. Please update your code as suggested
894
891
  keep_warm: Optional[int] = None, # Replaced with `min_containers`
895
892
  concurrency_limit: Optional[int] = None, # Replaced with `max_containers`
@@ -1014,7 +1011,6 @@ class _App:
1014
1011
  experimental_options={k: str(v) for k, v in (experimental_options or {}).items()},
1015
1012
  _experimental_proxy_ip=_experimental_proxy_ip,
1016
1013
  _experimental_custom_scaling_factor=_experimental_custom_scaling_factor,
1017
- _experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
1018
1014
  )
1019
1015
 
1020
1016
  self._add_function(cls_func, is_web_endpoint=False)
modal/app.pyi CHANGED
@@ -425,7 +425,6 @@ class _App:
425
425
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
426
426
  _experimental_proxy_ip: typing.Optional[str] = None,
427
427
  _experimental_custom_scaling_factor: typing.Optional[float] = None,
428
- _experimental_enable_gpu_snapshot: bool = False,
429
428
  keep_warm: typing.Optional[int] = None,
430
429
  concurrency_limit: typing.Optional[int] = None,
431
430
  container_idle_timeout: typing.Optional[int] = None,
@@ -477,7 +476,6 @@ class _App:
477
476
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
478
477
  _experimental_proxy_ip: typing.Optional[str] = None,
479
478
  _experimental_custom_scaling_factor: typing.Optional[float] = None,
480
- _experimental_enable_gpu_snapshot: bool = False,
481
479
  keep_warm: typing.Optional[int] = None,
482
480
  concurrency_limit: typing.Optional[int] = None,
483
481
  container_idle_timeout: typing.Optional[int] = None,
@@ -1030,7 +1028,6 @@ class App:
1030
1028
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
1031
1029
  _experimental_proxy_ip: typing.Optional[str] = None,
1032
1030
  _experimental_custom_scaling_factor: typing.Optional[float] = None,
1033
- _experimental_enable_gpu_snapshot: bool = False,
1034
1031
  keep_warm: typing.Optional[int] = None,
1035
1032
  concurrency_limit: typing.Optional[int] = None,
1036
1033
  container_idle_timeout: typing.Optional[int] = None,
@@ -1082,7 +1079,6 @@ class App:
1082
1079
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
1083
1080
  _experimental_proxy_ip: typing.Optional[str] = None,
1084
1081
  _experimental_custom_scaling_factor: typing.Optional[float] = None,
1085
- _experimental_enable_gpu_snapshot: bool = False,
1086
1082
  keep_warm: typing.Optional[int] = None,
1087
1083
  concurrency_limit: typing.Optional[int] = None,
1088
1084
  container_idle_timeout: typing.Optional[int] = None,
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.1.dev28",
36
+ version: str = "1.1.1.dev30",
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.1.dev28",
167
+ version: str = "1.1.1.dev30",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
modal/functions.pyi CHANGED
@@ -109,7 +109,6 @@ class Function(
109
109
  experimental_options: typing.Optional[dict[str, str]] = None,
110
110
  _experimental_proxy_ip: typing.Optional[str] = None,
111
111
  _experimental_custom_scaling_factor: typing.Optional[float] = None,
112
- _experimental_enable_gpu_snapshot: bool = False,
113
112
  ) -> Function:
114
113
  """mdmd:hidden"""
115
114
  ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.1.dev28
3
+ Version: 1.1.1.dev30
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -3,7 +3,7 @@ modal/__main__.py,sha256=uBjSb_5cdlxmr9AwLkznYsW2tGEJRBjEcCGILvgR_1s,2844
3
3
  modal/_clustered_functions.py,sha256=zmrKbptRbqp4euS3LWncKaLXb8Kjj4YreusOzpEpRMk,2856
4
4
  modal/_clustered_functions.pyi,sha256=_wtFjWocGf1WgI-qYBpbJPArNkg2H9JV7BVaGgMesEQ,1103
5
5
  modal/_container_entrypoint.py,sha256=1qBMNY_E9ICC_sRCtillMxmKPsmxJl1J0_qOAG8rH-0,28288
6
- modal/_functions.py,sha256=c1EeAcHcYP76wHbLomV0mFe73AoL-TUSjJNSDu6CELI,83065
6
+ modal/_functions.py,sha256=MVQEkih76OLsmy-QbphuyTH1gien8hTwjGs3Jxwx6cA,82826
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=nCkQeLibSuvVAEIheGaLnUfN5PIh1CGpJCnzPIXymGY,11563
@@ -18,11 +18,11 @@ modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
18
18
  modal/_tunnel.pyi,sha256=rvC7USR2BcKkbZIeCJXwf7-UfGE-LPLjKsGNiK7Lxa4,13366
19
19
  modal/_type_manager.py,sha256=DWjgmjYJuOagw2erin506UUbG2H5UzZCFEekS-7hmfA,9087
20
20
  modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
21
- modal/app.py,sha256=BBR2NmGzZbFGfhKAmtzllD0o4TbVDBbOEs0O2ysSdQo,48277
22
- modal/app.pyi,sha256=h6JtBA6a7wobdZAuS3QuXrWCUZqfyKPuGV3XdjCqT3k,43753
21
+ modal/app.py,sha256=kpq4kXp7pch688y6g55QYAC10wqPTU5FXKoWPMirA3E,47899
22
+ modal/app.pyi,sha256=-jKXlGDBWRPVsuenBhdMRqawK-L2eiJ7gHbmSblhltg,43525
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=lLCQ-T2OTowy_xclR3HuOrUHday0qON2GzIglWlsks4,15831
25
+ modal/client.pyi,sha256=YdBf1Vvb_Jvt3-lDHCVFPfqNQ3wLUYbnpoXunvr3mgQ,15831
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=-qSfYAQvIoO_l2wsCCGTG5ZUwQieNKXdAO00yP1-LYU,7394
28
28
  modal/cls.py,sha256=7A0xGnugQzm8dOfnKMjLjtqekRlRtQ0jPFRYgq6xdUM,40018
@@ -39,7 +39,7 @@ modal/file_io.py,sha256=BVqAJ0sgPUfN8QsYztWiGB4j56he60TncM02KsylnCw,21449
39
39
  modal/file_io.pyi,sha256=cPT_hsplE5iLCXhYOLn1Sp9eDdk7DxdFmicQHanJZyg,15918
40
40
  modal/file_pattern_matcher.py,sha256=urAue8es8jxqX94k9EYoZxxhtfgOlsEES8lbFHOorzc,7734
41
41
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
42
- modal/functions.pyi,sha256=0P4f8ew79lf0lWXObYmNFxKoUPbWmoT0CD5IqGNKFhE,34823
42
+ modal/functions.pyi,sha256=VYPnfnCLfHRDAl6t5AaVHmZEz0T5f2igjTeMOtHPie8,34766
43
43
  modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
44
44
  modal/image.py,sha256=G7JrvObATiT29G3JT_-9O4QychpqW_8b8seWXTVd1fs,102635
45
45
  modal/image.pyi,sha256=s_AQaFoWmjLzffJGmiedFf9K1qQkedVIlsC6vRtlKS8,68161
@@ -151,7 +151,7 @@ modal/experimental/__init__.py,sha256=nuc7AL4r_Fs08DD5dciWFZhrV1nanwoClOfdTcudU0
151
151
  modal/experimental/flash.py,sha256=7-_RBNvm0tEpdxXWuPAj5HCxfN-hSHVBep8SEWgAhCQ,19721
152
152
  modal/experimental/flash.pyi,sha256=A8_qJGtGoXEzKDdHbvhmCw7oqfneFEvJQK3ZdTOvUdU,10830
153
153
  modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
154
- modal-1.1.1.dev28.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
154
+ modal-1.1.1.dev30.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
155
155
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
156
156
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
157
157
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -159,13 +159,13 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
159
159
  modal_docs/mdmd/mdmd.py,sha256=eW5MzrEl7mSclDo4Uv64sQ1-4IyLggldbgUJdBVLDdI,6449
160
160
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
161
161
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
162
- modal_proto/api.proto,sha256=rpL3kteIlLwOqc_SJRV8I5Wf6PN-53gDIwbTqqccwyU,102706
163
- modal_proto/api_grpc.py,sha256=WpGSvMcnGElrDaSQWmVV1XsyLNoJQ7DMbOTX_1mh554,124648
164
- modal_proto/api_pb2.py,sha256=aGfM5udyJQzQWQfAvBKuCFO9zsseBHs1SqGaD09CXYM,360228
165
- modal_proto/api_pb2.pyi,sha256=7u2jVaZAf1vuEK0Asf-5ZI4CXK8Fc2kNsT3cbdGDSVg,494777
166
- modal_proto/api_pb2_grpc.py,sha256=VODlpmFdVjW7Sdo1FENf4vxktCmlmtijz5NryNIsQsc,269266
167
- modal_proto/api_pb2_grpc.pyi,sha256=QIQgbnAmRvRQTZS-euu_KsPKRHD2z3XRlHFHnOY2mtw,63139
168
- modal_proto/modal_api_grpc.py,sha256=0VKviuGtr-LV5-EMCkSSkmF9JivXkmWFZaCyFpMzSl8,18813
162
+ modal_proto/api.proto,sha256=3mqurCFq_Up0dPjsdMqv9pAltDPtveZUoMFOErSMCiE,103299
163
+ modal_proto/api_grpc.py,sha256=B8F07AbQT5s3sCEE_o-MHGwK2lqA3gdnLb_6oTWoIj8,126393
164
+ modal_proto/api_pb2.py,sha256=8MBFdVp0ZwmYtcB-AXAZjo1T0p4NdaXFRtyk3-T5go4,363407
165
+ modal_proto/api_pb2.pyi,sha256=BzL_rKxmq5nDCD8r9vBc3zmBm_EqesP0Ugag-jk-HpM,497475
166
+ modal_proto/api_pb2_grpc.py,sha256=gig1H1894_rLO9C5cYUwbX-JONt6nSpJenjfiFy3ZHk,272831
167
+ modal_proto/api_pb2_grpc.pyi,sha256=kXE43WnhqwacvJ_HB7L-hIBGg0djP3rX4lSliJN49NE,64007
168
+ modal_proto/modal_api_grpc.py,sha256=KL5Nw4AS9hJNxfL6VIeuxHz4jIUN7Unz7hYnoSsqyx0,19071
169
169
  modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
170
170
  modal_proto/options.proto,sha256=zp9h5r61ivsp0XwEWwNBsVqNTbRA1VSY_UtN7sEcHtE,549
171
171
  modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
@@ -174,10 +174,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
174
174
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
175
175
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
176
176
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
- modal_version/__init__.py,sha256=Bhn-Ugb3ll-Q8THvxH35TRv5X0r0MdFbSqaPDwMQcxE,121
177
+ modal_version/__init__.py,sha256=nHgWq15NyjO90KRKos0kXoMvqCjhMIz71qVP66on6mg,121
178
178
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
179
- modal-1.1.1.dev28.dist-info/METADATA,sha256=YXzS8Vb0BSQAE7bFDxldcOyJEBLClAY01vE9LMjpnZQ,2460
180
- modal-1.1.1.dev28.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
181
- modal-1.1.1.dev28.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
182
- modal-1.1.1.dev28.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
183
- modal-1.1.1.dev28.dist-info/RECORD,,
179
+ modal-1.1.1.dev30.dist-info/METADATA,sha256=KoerTFR3tFSsiCFbuYy-9ibqaB5Nfm8Zgmx1qMEQpsk,2460
180
+ modal-1.1.1.dev30.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
181
+ modal-1.1.1.dev30.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
182
+ modal-1.1.1.dev30.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
183
+ modal-1.1.1.dev30.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -2699,6 +2699,26 @@ message SandboxRestoreResponse {
2699
2699
  string sandbox_id = 1;
2700
2700
  }
2701
2701
 
2702
+ message SandboxSnapshotFsAsyncGetRequest {
2703
+ string image_id = 1;
2704
+ float timeout = 2;
2705
+ }
2706
+
2707
+ message SandboxSnapshotFsAsyncGetResponse {
2708
+ string image_id = 1;
2709
+ GenericResult result = 2;
2710
+ ImageMetadata image_metadata = 3;
2711
+ }
2712
+
2713
+ message SandboxSnapshotFsAsyncRequest {
2714
+ string sandbox_id = 1;
2715
+ float timeout = 2;
2716
+ }
2717
+
2718
+ message SandboxSnapshotFsAsyncResponse {
2719
+ string image_id = 1;
2720
+ }
2721
+
2702
2722
  message SandboxSnapshotFsRequest {
2703
2723
  string sandbox_id = 1;
2704
2724
  float timeout = 2;
@@ -3523,6 +3543,8 @@ service ModalClient {
3523
3543
  rpc SandboxRestore(SandboxRestoreRequest) returns (SandboxRestoreResponse);
3524
3544
  rpc SandboxSnapshot(SandboxSnapshotRequest) returns (SandboxSnapshotResponse);
3525
3545
  rpc SandboxSnapshotFs(SandboxSnapshotFsRequest) returns (SandboxSnapshotFsResponse);
3546
+ rpc SandboxSnapshotFsAsync(SandboxSnapshotFsAsyncRequest) returns (SandboxSnapshotFsAsyncResponse);
3547
+ rpc SandboxSnapshotFsAsyncGet(SandboxSnapshotFsAsyncGetRequest) returns (SandboxSnapshotFsAsyncGetResponse);
3526
3548
  rpc SandboxSnapshotGet(SandboxSnapshotGetRequest) returns (SandboxSnapshotGetResponse);
3527
3549
  rpc SandboxSnapshotWait(SandboxSnapshotWaitRequest) returns (SandboxSnapshotWaitResponse);
3528
3550
  rpc SandboxStdinWrite(SandboxStdinWriteRequest) returns (SandboxStdinWriteResponse);
modal_proto/api_grpc.py CHANGED
@@ -490,6 +490,14 @@ class ModalClientBase(abc.ABC):
490
490
  async def SandboxSnapshotFs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFsRequest, modal_proto.api_pb2.SandboxSnapshotFsResponse]') -> None:
491
491
  pass
492
492
 
493
+ @abc.abstractmethod
494
+ async def SandboxSnapshotFsAsync(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFsAsyncRequest, modal_proto.api_pb2.SandboxSnapshotFsAsyncResponse]') -> None:
495
+ pass
496
+
497
+ @abc.abstractmethod
498
+ async def SandboxSnapshotFsAsyncGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFsAsyncGetRequest, modal_proto.api_pb2.SandboxSnapshotFsAsyncGetResponse]') -> None:
499
+ pass
500
+
493
501
  @abc.abstractmethod
494
502
  async def SandboxSnapshotGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotGetRequest, modal_proto.api_pb2.SandboxSnapshotGetResponse]') -> None:
495
503
  pass
@@ -1376,6 +1384,18 @@ class ModalClientBase(abc.ABC):
1376
1384
  modal_proto.api_pb2.SandboxSnapshotFsRequest,
1377
1385
  modal_proto.api_pb2.SandboxSnapshotFsResponse,
1378
1386
  ),
1387
+ '/modal.client.ModalClient/SandboxSnapshotFsAsync': grpclib.const.Handler(
1388
+ self.SandboxSnapshotFsAsync,
1389
+ grpclib.const.Cardinality.UNARY_UNARY,
1390
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncRequest,
1391
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncResponse,
1392
+ ),
1393
+ '/modal.client.ModalClient/SandboxSnapshotFsAsyncGet': grpclib.const.Handler(
1394
+ self.SandboxSnapshotFsAsyncGet,
1395
+ grpclib.const.Cardinality.UNARY_UNARY,
1396
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncGetRequest,
1397
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncGetResponse,
1398
+ ),
1379
1399
  '/modal.client.ModalClient/SandboxSnapshotGet': grpclib.const.Handler(
1380
1400
  self.SandboxSnapshotGet,
1381
1401
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -2354,6 +2374,18 @@ class ModalClientStub:
2354
2374
  modal_proto.api_pb2.SandboxSnapshotFsRequest,
2355
2375
  modal_proto.api_pb2.SandboxSnapshotFsResponse,
2356
2376
  )
2377
+ self.SandboxSnapshotFsAsync = grpclib.client.UnaryUnaryMethod(
2378
+ channel,
2379
+ '/modal.client.ModalClient/SandboxSnapshotFsAsync',
2380
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncRequest,
2381
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncResponse,
2382
+ )
2383
+ self.SandboxSnapshotFsAsyncGet = grpclib.client.UnaryUnaryMethod(
2384
+ channel,
2385
+ '/modal.client.ModalClient/SandboxSnapshotFsAsyncGet',
2386
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncGetRequest,
2387
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncGetResponse,
2388
+ )
2357
2389
  self.SandboxSnapshotGet = grpclib.client.UnaryUnaryMethod(
2358
2390
  channel,
2359
2391
  '/modal.client.ModalClient/SandboxSnapshotGet',