modal 0.73.7__py3-none-any.whl → 0.73.8__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/_functions.py +3 -0
- modal/app.py +4 -0
- modal/app.pyi +4 -0
- modal/client.pyi +2 -2
- modal/functions.pyi +1 -0
- {modal-0.73.7.dist-info → modal-0.73.8.dist-info}/METADATA +1 -1
- {modal-0.73.7.dist-info → modal-0.73.8.dist-info}/RECORD +15 -15
- modal_proto/api.proto +3 -0
- modal_proto/api_pb2.py +542 -542
- modal_proto/api_pb2.pyi +9 -2
- modal_version/_version_generated.py +1 -1
- {modal-0.73.7.dist-info → modal-0.73.8.dist-info}/LICENSE +0 -0
- {modal-0.73.7.dist-info → modal-0.73.8.dist-info}/WHEEL +0 -0
- {modal-0.73.7.dist-info → modal-0.73.8.dist-info}/entry_points.txt +0 -0
- {modal-0.73.7.dist-info → modal-0.73.8.dist-info}/top_level.txt +0 -0
modal/_functions.py
CHANGED
@@ -476,6 +476,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
476
476
|
_experimental_buffer_containers: Optional[int] = None,
|
477
477
|
_experimental_proxy_ip: Optional[str] = None,
|
478
478
|
_experimental_custom_scaling_factor: Optional[float] = None,
|
479
|
+
_experimental_enable_gpu_snapshot: bool = False,
|
479
480
|
) -> "_Function":
|
480
481
|
"""mdmd:hidden"""
|
481
482
|
# Needed to avoid circular imports
|
@@ -824,6 +825,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
824
825
|
_experimental_buffer_containers=_experimental_buffer_containers or 0,
|
825
826
|
_experimental_proxy_ip=_experimental_proxy_ip,
|
826
827
|
_experimental_custom_scaling=_experimental_custom_scaling_factor is not None,
|
828
|
+
_experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
|
827
829
|
)
|
828
830
|
|
829
831
|
if isinstance(gpu, list):
|
@@ -851,6 +853,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
851
853
|
_experimental_group_size=function_definition._experimental_group_size,
|
852
854
|
_experimental_buffer_containers=function_definition._experimental_buffer_containers,
|
853
855
|
_experimental_custom_scaling=function_definition._experimental_custom_scaling,
|
856
|
+
_experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
|
854
857
|
_experimental_proxy_ip=function_definition._experimental_proxy_ip,
|
855
858
|
snapshot_debug=function_definition.snapshot_debug,
|
856
859
|
runtime_perf_record=function_definition.runtime_perf_record,
|
modal/app.py
CHANGED
@@ -617,6 +617,7 @@ class _App:
|
|
617
617
|
_experimental_buffer_containers: Optional[int] = None, # Number of additional, idle containers to keep around.
|
618
618
|
_experimental_proxy_ip: Optional[str] = None, # IP address of proxy
|
619
619
|
_experimental_custom_scaling_factor: Optional[float] = None, # Custom scaling factor
|
620
|
+
_experimental_enable_gpu_snapshot: bool = False, # Experimentally enable GPU memory snapshots.
|
620
621
|
) -> _FunctionDecoratorType:
|
621
622
|
"""Decorator to register a new Modal [Function](/docs/reference/modal.Function) with this App."""
|
622
623
|
if isinstance(_warn_parentheses_missing, _Image):
|
@@ -759,6 +760,7 @@ class _App:
|
|
759
760
|
i6pn_enabled=i6pn_enabled,
|
760
761
|
cluster_size=cluster_size, # Experimental: Clustered functions
|
761
762
|
include_source=include_source if include_source is not None else self._include_source_default,
|
763
|
+
_experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
|
762
764
|
)
|
763
765
|
|
764
766
|
self._add_function(function, webhook_config is not None)
|
@@ -816,6 +818,7 @@ class _App:
|
|
816
818
|
_experimental_buffer_containers: Optional[int] = None, # Number of additional, idle containers to keep around.
|
817
819
|
_experimental_proxy_ip: Optional[str] = None, # IP address of proxy
|
818
820
|
_experimental_custom_scaling_factor: Optional[float] = None, # Custom scaling factor
|
821
|
+
_experimental_enable_gpu_snapshot: bool = False, # Experimentally enable GPU memory snapshots.
|
819
822
|
) -> Callable[[CLS_T], CLS_T]:
|
820
823
|
"""
|
821
824
|
Decorator to register a new Modal [Cls](/docs/reference/modal.Cls) with this App.
|
@@ -890,6 +893,7 @@ class _App:
|
|
890
893
|
_experimental_buffer_containers=_experimental_buffer_containers,
|
891
894
|
_experimental_proxy_ip=_experimental_proxy_ip,
|
892
895
|
_experimental_custom_scaling_factor=_experimental_custom_scaling_factor,
|
896
|
+
_experimental_enable_gpu_snapshot=_experimental_enable_gpu_snapshot,
|
893
897
|
)
|
894
898
|
|
895
899
|
self._add_function(cls_func, is_web_endpoint=False)
|
modal/app.pyi
CHANGED
@@ -197,6 +197,7 @@ class _App:
|
|
197
197
|
_experimental_buffer_containers: typing.Optional[int] = None,
|
198
198
|
_experimental_proxy_ip: typing.Optional[str] = None,
|
199
199
|
_experimental_custom_scaling_factor: typing.Optional[float] = None,
|
200
|
+
_experimental_enable_gpu_snapshot: bool = False,
|
200
201
|
) -> _FunctionDecoratorType: ...
|
201
202
|
@typing_extensions.dataclass_transform(
|
202
203
|
field_specifiers=(modal.cls.parameter,),
|
@@ -241,6 +242,7 @@ class _App:
|
|
241
242
|
_experimental_buffer_containers: typing.Optional[int] = None,
|
242
243
|
_experimental_proxy_ip: typing.Optional[str] = None,
|
243
244
|
_experimental_custom_scaling_factor: typing.Optional[float] = None,
|
245
|
+
_experimental_enable_gpu_snapshot: bool = False,
|
244
246
|
) -> collections.abc.Callable[[CLS_T], CLS_T]: ...
|
245
247
|
async def spawn_sandbox(
|
246
248
|
self,
|
@@ -431,6 +433,7 @@ class App:
|
|
431
433
|
_experimental_buffer_containers: typing.Optional[int] = None,
|
432
434
|
_experimental_proxy_ip: typing.Optional[str] = None,
|
433
435
|
_experimental_custom_scaling_factor: typing.Optional[float] = None,
|
436
|
+
_experimental_enable_gpu_snapshot: bool = False,
|
434
437
|
) -> _FunctionDecoratorType: ...
|
435
438
|
@typing_extensions.dataclass_transform(
|
436
439
|
field_specifiers=(modal.cls.parameter,),
|
@@ -475,6 +478,7 @@ class App:
|
|
475
478
|
_experimental_buffer_containers: typing.Optional[int] = None,
|
476
479
|
_experimental_proxy_ip: typing.Optional[str] = None,
|
477
480
|
_experimental_custom_scaling_factor: typing.Optional[float] = None,
|
481
|
+
_experimental_enable_gpu_snapshot: bool = False,
|
478
482
|
) -> collections.abc.Callable[[CLS_T], CLS_T]: ...
|
479
483
|
|
480
484
|
class __spawn_sandbox_spec(typing_extensions.Protocol[SUPERSELF]):
|
modal/client.pyi
CHANGED
@@ -27,7 +27,7 @@ class _Client:
|
|
27
27
|
_snapshotted: bool
|
28
28
|
|
29
29
|
def __init__(
|
30
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.
|
30
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.8"
|
31
31
|
): ...
|
32
32
|
def is_closed(self) -> bool: ...
|
33
33
|
@property
|
@@ -85,7 +85,7 @@ class Client:
|
|
85
85
|
_snapshotted: bool
|
86
86
|
|
87
87
|
def __init__(
|
88
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.
|
88
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.8"
|
89
89
|
): ...
|
90
90
|
def is_closed(self) -> bool: ...
|
91
91
|
@property
|
modal/functions.pyi
CHANGED
@@ -102,6 +102,7 @@ class Function(
|
|
102
102
|
_experimental_buffer_containers: typing.Optional[int] = None,
|
103
103
|
_experimental_proxy_ip: typing.Optional[str] = None,
|
104
104
|
_experimental_custom_scaling_factor: typing.Optional[float] = None,
|
105
|
+
_experimental_enable_gpu_snapshot: bool = False,
|
105
106
|
) -> Function: ...
|
106
107
|
def _bind_parameters(
|
107
108
|
self,
|
@@ -3,7 +3,7 @@ modal/__main__.py,sha256=scYhGFqh8OJcVDo-VOxIT6CCwxOgzgflYWMnIZiMRqE,2871
|
|
3
3
|
modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
|
4
4
|
modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpaQ,771
|
5
5
|
modal/_container_entrypoint.py,sha256=qahIuJvaMmWG85N5vNS1yuAQ9XZoo1ftzfatkos_q7I,29553
|
6
|
-
modal/_functions.py,sha256=
|
6
|
+
modal/_functions.py,sha256=XTcpMIlGqa3MPSTbnCwvbagTCeIHlnV4g8WlkGF5SOs,70352
|
7
7
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
8
8
|
modal/_location.py,sha256=S3lSxIU3h9HkWpkJ3Pwo0pqjIOSB1fjeSgUsY3x7eec,1202
|
9
9
|
modal/_object.py,sha256=ItQcsMNkz9Y3kdTsvfNarbW-paJ2qabDyQ7njaqY0XI,11359
|
@@ -17,11 +17,11 @@ modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
|
|
17
17
|
modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
|
18
18
|
modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
|
19
19
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
20
|
-
modal/app.py,sha256=
|
21
|
-
modal/app.pyi,sha256=
|
20
|
+
modal/app.py,sha256=wRygVSrWH8iIqhDAAl2Ww_RAkz8MCJZ0Jt9qYZCF6SA,44626
|
21
|
+
modal/app.pyi,sha256=lxiuWzE_OLb3WHg-H7Pek9DGBuCUzZ55P594VhJL5LA,26113
|
22
22
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
23
23
|
modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
|
24
|
-
modal/client.pyi,sha256=
|
24
|
+
modal/client.pyi,sha256=kOt17KK6b51zHs9T5vme0cCrLzJu-nw1DTE1kSuxXcQ,7591
|
25
25
|
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
26
26
|
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
27
27
|
modal/cls.py,sha256=kNnZrBYVXOhgEXU0rDWk2Hr-bQRrsZkMKDgC-TD_6Bs,31063
|
@@ -40,7 +40,7 @@ modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
|
|
40
40
|
modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
|
41
41
|
modal/file_pattern_matcher.py,sha256=1cZ4V2wSLiaXqAqStETSwp3bzDD6QZOt6pmmjk3Okz4,6505
|
42
42
|
modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
|
43
|
-
modal/functions.pyi,sha256=
|
43
|
+
modal/functions.pyi,sha256=mtngzj8VlzMOQATe6muBN5oH_Gw9zGKxMKZ56Z-41kU,14288
|
44
44
|
modal/gpu.py,sha256=2qZMNnoMrjU-5Bu7fx68pANUAKTtZq0EWEEeBA9OUVQ,7426
|
45
45
|
modal/image.py,sha256=Vjsi7wS9dEcoj-7m7_LmvbK5iqEuFz-SHKl2K-qWcew,90952
|
46
46
|
modal/image.pyi,sha256=A5mW2dBguEhmRo815Ax1rBIMXTCriu7PqLMHoUPsez8,26372
|
@@ -153,10 +153,10 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
|
|
153
153
|
modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
|
154
154
|
modal_global_objects/mounts/python_standalone.py,sha256=EsC-hdPtiAPOwgW9emHN6muNUkrJwR8dYxroVArxHxM,1841
|
155
155
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
156
|
-
modal_proto/api.proto,sha256=
|
156
|
+
modal_proto/api.proto,sha256=_RV_hQIWR_CmanZcjieKll-P9P5qVsRDDS7TtGWL4AU,85264
|
157
157
|
modal_proto/api_grpc.py,sha256=FYGqDegM_w_qxdtlxum8k31mDibKoMvmNxv_p9cKdKs,109056
|
158
|
-
modal_proto/api_pb2.py,sha256=
|
159
|
-
modal_proto/api_pb2.pyi,sha256=
|
158
|
+
modal_proto/api_pb2.py,sha256=7hj3Dqmv3Xb6nEzLVMt-zai1EGqUT5uAU5nbGjnk85A,311104
|
159
|
+
modal_proto/api_pb2.pyi,sha256=ScYf3xdzV3TQZZR-uPusjrEHoHIxKCRPseS7e8Ee_EI,415384
|
160
160
|
modal_proto/api_pb2_grpc.py,sha256=DNp0Et5i_Ey4dKx_1o1LRtYhyWYyT0NzTcAY4EcHn-c,235765
|
161
161
|
modal_proto/api_pb2_grpc.pyi,sha256=RI6tWC3L8EIN4-izFSEGPPJl5Ta0lXPNuHUJaWAr35s,54892
|
162
162
|
modal_proto/modal_api_grpc.py,sha256=UG8WJU81afrWPwItWB4Ag64E9EpyREMpBbAVGVEYJiM,14550
|
@@ -170,10 +170,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
170
170
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
171
171
|
modal_version/__init__.py,sha256=wiJQ53c-OMs0Xf1UeXOxQ7FwlV1VzIjnX6o-pRYZ_Pk,470
|
172
172
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
173
|
-
modal_version/_version_generated.py,sha256=
|
174
|
-
modal-0.73.
|
175
|
-
modal-0.73.
|
176
|
-
modal-0.73.
|
177
|
-
modal-0.73.
|
178
|
-
modal-0.73.
|
179
|
-
modal-0.73.
|
173
|
+
modal_version/_version_generated.py,sha256=a8LMamoFRZKpp6SoTp5bDH1HRWGljeWLZesEIHf3WIE,148
|
174
|
+
modal-0.73.8.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
175
|
+
modal-0.73.8.dist-info/METADATA,sha256=wsn98lBqsvSVbab7C3DqlgtiyUF8vmevqqGNf7Ir6WE,2329
|
176
|
+
modal-0.73.8.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
177
|
+
modal-0.73.8.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
178
|
+
modal-0.73.8.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
179
|
+
modal-0.73.8.dist-info/RECORD,,
|
modal_proto/api.proto
CHANGED
@@ -1263,6 +1263,8 @@ message Function {
|
|
1263
1263
|
bool _experimental_custom_scaling = 76;
|
1264
1264
|
|
1265
1265
|
string cloud_provider_str = 77; // Supersedes cloud_provider
|
1266
|
+
|
1267
|
+
bool _experimental_enable_gpu_snapshot = 78; // Experimental support for GPU snapshotting
|
1266
1268
|
}
|
1267
1269
|
|
1268
1270
|
message FunctionAsyncInvokeRequest {
|
@@ -1376,6 +1378,7 @@ message FunctionData {
|
|
1376
1378
|
uint32 _experimental_group_size = 19;
|
1377
1379
|
uint32 _experimental_buffer_containers = 22;
|
1378
1380
|
bool _experimental_custom_scaling = 23;
|
1381
|
+
bool _experimental_enable_gpu_snapshot = 30;
|
1379
1382
|
string worker_id = 7; // for internal debugging use only
|
1380
1383
|
|
1381
1384
|
uint32 timeout_secs = 8;
|