modal 1.1.1.dev29__py3-none-any.whl → 1.1.1.dev31__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 +0 -3
- modal/app.py +0 -4
- modal/app.pyi +0 -4
- modal/client.pyi +2 -2
- modal/functions.pyi +0 -1
- modal/image.py +4 -2
- modal/image.pyi +8 -4
- modal/sandbox.py +16 -16
- modal/sandbox.pyi +15 -15
- {modal-1.1.1.dev29.dist-info → modal-1.1.1.dev31.dist-info}/METADATA +1 -1
- {modal-1.1.1.dev29.dist-info → modal-1.1.1.dev31.dist-info}/RECORD +16 -16
- modal_version/__init__.py +1 -1
- {modal-1.1.1.dev29.dist-info → modal-1.1.1.dev31.dist-info}/WHEEL +0 -0
- {modal-1.1.1.dev29.dist-info → modal-1.1.1.dev31.dist-info}/entry_points.txt +0 -0
- {modal-1.1.1.dev29.dist-info → modal-1.1.1.dev31.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.1.dev29.dist-info → modal-1.1.1.dev31.dist-info}/top_level.txt +0 -0
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.
|
|
36
|
+
version: str = "1.1.1.dev31",
|
|
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.
|
|
167
|
+
version: str = "1.1.1.dev31",
|
|
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
|
...
|
modal/image.py
CHANGED
|
@@ -1561,7 +1561,7 @@ class _Image(_Object, type_prefix="im"):
|
|
|
1561
1561
|
self,
|
|
1562
1562
|
entrypoint_commands: list[str],
|
|
1563
1563
|
) -> "_Image":
|
|
1564
|
-
"""Set the
|
|
1564
|
+
"""Set the ENTRYPOINT for the image."""
|
|
1565
1565
|
if not isinstance(entrypoint_commands, list) or not all(isinstance(x, str) for x in entrypoint_commands):
|
|
1566
1566
|
raise InvalidError("entrypoint_commands must be a list of strings.")
|
|
1567
1567
|
args_str = _flatten_str_args("entrypoint", "entrypoint_commands", entrypoint_commands)
|
|
@@ -2237,7 +2237,9 @@ class _Image(_Object, type_prefix="im"):
|
|
|
2237
2237
|
)
|
|
2238
2238
|
|
|
2239
2239
|
def cmd(self, cmd: list[str]) -> "_Image":
|
|
2240
|
-
"""Set the default
|
|
2240
|
+
"""Set the default command (`CMD`) to run when a container is started.
|
|
2241
|
+
|
|
2242
|
+
Used with `modal.Sandbox`. Has no effect on `modal.Function`.
|
|
2241
2243
|
|
|
2242
2244
|
**Example**
|
|
2243
2245
|
|
modal/image.pyi
CHANGED
|
@@ -584,7 +584,7 @@ class _Image(modal._object._Object):
|
|
|
584
584
|
...
|
|
585
585
|
|
|
586
586
|
def entrypoint(self, entrypoint_commands: list[str]) -> _Image:
|
|
587
|
-
"""Set the
|
|
587
|
+
"""Set the ENTRYPOINT for the image."""
|
|
588
588
|
...
|
|
589
589
|
|
|
590
590
|
def shell(self, shell_commands: list[str]) -> _Image:
|
|
@@ -912,7 +912,9 @@ class _Image(modal._object._Object):
|
|
|
912
912
|
...
|
|
913
913
|
|
|
914
914
|
def cmd(self, cmd: list[str]) -> _Image:
|
|
915
|
-
"""Set the default
|
|
915
|
+
"""Set the default command (`CMD`) to run when a container is started.
|
|
916
|
+
|
|
917
|
+
Used with `modal.Sandbox`. Has no effect on `modal.Function`.
|
|
916
918
|
|
|
917
919
|
**Example**
|
|
918
920
|
|
|
@@ -1424,7 +1426,7 @@ class Image(modal.object.Object):
|
|
|
1424
1426
|
...
|
|
1425
1427
|
|
|
1426
1428
|
def entrypoint(self, entrypoint_commands: list[str]) -> Image:
|
|
1427
|
-
"""Set the
|
|
1429
|
+
"""Set the ENTRYPOINT for the image."""
|
|
1428
1430
|
...
|
|
1429
1431
|
|
|
1430
1432
|
def shell(self, shell_commands: list[str]) -> Image:
|
|
@@ -1752,7 +1754,9 @@ class Image(modal.object.Object):
|
|
|
1752
1754
|
...
|
|
1753
1755
|
|
|
1754
1756
|
def cmd(self, cmd: list[str]) -> Image:
|
|
1755
|
-
"""Set the default
|
|
1757
|
+
"""Set the default command (`CMD`) to run when a container is started.
|
|
1758
|
+
|
|
1759
|
+
Used with `modal.Sandbox`. Has no effect on `modal.Function`.
|
|
1756
1760
|
|
|
1757
1761
|
**Example**
|
|
1758
1762
|
|
modal/sandbox.py
CHANGED
|
@@ -60,15 +60,15 @@ if TYPE_CHECKING:
|
|
|
60
60
|
import modal.app
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
def _validate_exec_args(
|
|
63
|
+
def _validate_exec_args(args: Sequence[str]) -> None:
|
|
64
64
|
# Entrypoint args must be strings.
|
|
65
|
-
if not all(isinstance(arg, str) for arg in
|
|
65
|
+
if not all(isinstance(arg, str) for arg in args):
|
|
66
66
|
raise InvalidError("All entrypoint arguments must be strings")
|
|
67
67
|
# Avoid "[Errno 7] Argument list too long" errors.
|
|
68
|
-
total_arg_len = sum(len(arg) for arg in
|
|
68
|
+
total_arg_len = sum(len(arg) for arg in args)
|
|
69
69
|
if total_arg_len > ARG_MAX_BYTES:
|
|
70
70
|
raise InvalidError(
|
|
71
|
-
f"Total length of
|
|
71
|
+
f"Total length of CMD arguments must be less than {ARG_MAX_BYTES} bytes (ARG_MAX). "
|
|
72
72
|
f"Got {total_arg_len} bytes."
|
|
73
73
|
)
|
|
74
74
|
|
|
@@ -104,7 +104,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
104
104
|
|
|
105
105
|
@staticmethod
|
|
106
106
|
def _new(
|
|
107
|
-
|
|
107
|
+
args: Sequence[str],
|
|
108
108
|
image: _Image,
|
|
109
109
|
secrets: Sequence[_Secret],
|
|
110
110
|
name: Optional[str] = None,
|
|
@@ -208,7 +208,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
208
208
|
|
|
209
209
|
ephemeral_disk = None # Ephemeral disk requests not supported on Sandboxes.
|
|
210
210
|
definition = api_pb2.Sandbox(
|
|
211
|
-
entrypoint_args=
|
|
211
|
+
entrypoint_args=args,
|
|
212
212
|
image_id=image.object_id,
|
|
213
213
|
mount_ids=[mount.object_id for mount in mounts] + [mount.object_id for mount in image._mount_layers],
|
|
214
214
|
secret_ids=[secret.object_id for secret in secrets],
|
|
@@ -250,7 +250,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
250
250
|
|
|
251
251
|
@staticmethod
|
|
252
252
|
async def create(
|
|
253
|
-
*
|
|
253
|
+
*args: str, # Set the CMD of the Sandbox, overriding any CMD of the container image.
|
|
254
254
|
# Associate the sandbox with an app. Required unless creating from a container.
|
|
255
255
|
app: Optional["modal.app._App"] = None,
|
|
256
256
|
name: Optional[str] = None, # Optionally give the sandbox a name. Unique within an app.
|
|
@@ -316,7 +316,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
316
316
|
)
|
|
317
317
|
|
|
318
318
|
return await _Sandbox._create(
|
|
319
|
-
*
|
|
319
|
+
*args,
|
|
320
320
|
app=app,
|
|
321
321
|
name=name,
|
|
322
322
|
image=image,
|
|
@@ -346,7 +346,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
346
346
|
|
|
347
347
|
@staticmethod
|
|
348
348
|
async def _create(
|
|
349
|
-
*
|
|
349
|
+
*args: str, # Set the CMD of the Sandbox, overriding any CMD of the container image.
|
|
350
350
|
# Associate the sandbox with an app. Required unless creating from a container.
|
|
351
351
|
app: Optional["modal.app._App"] = None,
|
|
352
352
|
name: Optional[str] = None, # Optionally give the sandbox a name. Unique within an app.
|
|
@@ -395,11 +395,11 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
395
395
|
# sandbox that runs the shell session
|
|
396
396
|
from .app import _App
|
|
397
397
|
|
|
398
|
-
_validate_exec_args(
|
|
398
|
+
_validate_exec_args(args)
|
|
399
399
|
|
|
400
400
|
# TODO(erikbern): Get rid of the `_new` method and create an already-hydrated object
|
|
401
401
|
obj = _Sandbox._new(
|
|
402
|
-
|
|
402
|
+
args,
|
|
403
403
|
image=image or _default_image,
|
|
404
404
|
secrets=secrets,
|
|
405
405
|
name=name,
|
|
@@ -648,7 +648,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
648
648
|
@overload
|
|
649
649
|
async def exec(
|
|
650
650
|
self,
|
|
651
|
-
*
|
|
651
|
+
*args: str,
|
|
652
652
|
pty_info: Optional[api_pb2.PTYInfo] = None,
|
|
653
653
|
stdout: StreamType = StreamType.PIPE,
|
|
654
654
|
stderr: StreamType = StreamType.PIPE,
|
|
@@ -663,7 +663,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
663
663
|
@overload
|
|
664
664
|
async def exec(
|
|
665
665
|
self,
|
|
666
|
-
*
|
|
666
|
+
*args: str,
|
|
667
667
|
pty_info: Optional[api_pb2.PTYInfo] = None,
|
|
668
668
|
stdout: StreamType = StreamType.PIPE,
|
|
669
669
|
stderr: StreamType = StreamType.PIPE,
|
|
@@ -677,7 +677,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
677
677
|
|
|
678
678
|
async def exec(
|
|
679
679
|
self,
|
|
680
|
-
*
|
|
680
|
+
*args: str,
|
|
681
681
|
pty_info: Optional[api_pb2.PTYInfo] = None, # Deprecated: internal use only
|
|
682
682
|
stdout: StreamType = StreamType.PIPE,
|
|
683
683
|
stderr: StreamType = StreamType.PIPE,
|
|
@@ -713,7 +713,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
713
713
|
|
|
714
714
|
if workdir is not None and not workdir.startswith("/"):
|
|
715
715
|
raise InvalidError(f"workdir must be an absolute path, got: {workdir}")
|
|
716
|
-
_validate_exec_args(
|
|
716
|
+
_validate_exec_args(args)
|
|
717
717
|
|
|
718
718
|
# Force secret resolution so we can pass the secret IDs to the backend.
|
|
719
719
|
secret_coros = [secret.hydrate(client=self._client) for secret in secrets]
|
|
@@ -722,7 +722,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
722
722
|
task_id = await self._get_task_id()
|
|
723
723
|
req = api_pb2.ContainerExecRequest(
|
|
724
724
|
task_id=task_id,
|
|
725
|
-
command=
|
|
725
|
+
command=args,
|
|
726
726
|
pty_info=_pty_info or pty_info,
|
|
727
727
|
runtime_debug=config.get("function_runtime_debug"),
|
|
728
728
|
timeout_secs=timeout or 0,
|
modal/sandbox.pyi
CHANGED
|
@@ -25,7 +25,7 @@ import os
|
|
|
25
25
|
import typing
|
|
26
26
|
import typing_extensions
|
|
27
27
|
|
|
28
|
-
def _validate_exec_args(
|
|
28
|
+
def _validate_exec_args(args: collections.abc.Sequence[str]) -> None: ...
|
|
29
29
|
|
|
30
30
|
class DefaultSandboxNameOverride(str):
|
|
31
31
|
"""A singleton class that represents the default sandbox name override.
|
|
@@ -55,7 +55,7 @@ class _Sandbox(modal._object._Object):
|
|
|
55
55
|
|
|
56
56
|
@staticmethod
|
|
57
57
|
def _new(
|
|
58
|
-
|
|
58
|
+
args: collections.abc.Sequence[str],
|
|
59
59
|
image: modal.image._Image,
|
|
60
60
|
secrets: collections.abc.Sequence[modal.secret._Secret],
|
|
61
61
|
name: typing.Optional[str] = None,
|
|
@@ -89,7 +89,7 @@ class _Sandbox(modal._object._Object):
|
|
|
89
89
|
|
|
90
90
|
@staticmethod
|
|
91
91
|
async def create(
|
|
92
|
-
*
|
|
92
|
+
*args: str,
|
|
93
93
|
app: typing.Optional[modal.app._App] = None,
|
|
94
94
|
name: typing.Optional[str] = None,
|
|
95
95
|
image: typing.Optional[modal.image._Image] = None,
|
|
@@ -136,7 +136,7 @@ class _Sandbox(modal._object._Object):
|
|
|
136
136
|
|
|
137
137
|
@staticmethod
|
|
138
138
|
async def _create(
|
|
139
|
-
*
|
|
139
|
+
*args: str,
|
|
140
140
|
app: typing.Optional[modal.app._App] = None,
|
|
141
141
|
name: typing.Optional[str] = None,
|
|
142
142
|
image: typing.Optional[modal.image._Image] = None,
|
|
@@ -244,7 +244,7 @@ class _Sandbox(modal._object._Object):
|
|
|
244
244
|
@typing.overload
|
|
245
245
|
async def exec(
|
|
246
246
|
self,
|
|
247
|
-
*
|
|
247
|
+
*args: str,
|
|
248
248
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
249
249
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
250
250
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
@@ -258,7 +258,7 @@ class _Sandbox(modal._object._Object):
|
|
|
258
258
|
@typing.overload
|
|
259
259
|
async def exec(
|
|
260
260
|
self,
|
|
261
|
-
*
|
|
261
|
+
*args: str,
|
|
262
262
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
263
263
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
264
264
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
@@ -364,7 +364,7 @@ class Sandbox(modal.object.Object):
|
|
|
364
364
|
|
|
365
365
|
@staticmethod
|
|
366
366
|
def _new(
|
|
367
|
-
|
|
367
|
+
args: collections.abc.Sequence[str],
|
|
368
368
|
image: modal.image.Image,
|
|
369
369
|
secrets: collections.abc.Sequence[modal.secret.Secret],
|
|
370
370
|
name: typing.Optional[str] = None,
|
|
@@ -399,7 +399,7 @@ class Sandbox(modal.object.Object):
|
|
|
399
399
|
def __call__(
|
|
400
400
|
self,
|
|
401
401
|
/,
|
|
402
|
-
*
|
|
402
|
+
*args: str,
|
|
403
403
|
app: typing.Optional[modal.app.App] = None,
|
|
404
404
|
name: typing.Optional[str] = None,
|
|
405
405
|
image: typing.Optional[modal.image.Image] = None,
|
|
@@ -449,7 +449,7 @@ class Sandbox(modal.object.Object):
|
|
|
449
449
|
async def aio(
|
|
450
450
|
self,
|
|
451
451
|
/,
|
|
452
|
-
*
|
|
452
|
+
*args: str,
|
|
453
453
|
app: typing.Optional[modal.app.App] = None,
|
|
454
454
|
name: typing.Optional[str] = None,
|
|
455
455
|
image: typing.Optional[modal.image.Image] = None,
|
|
@@ -502,7 +502,7 @@ class Sandbox(modal.object.Object):
|
|
|
502
502
|
def __call__(
|
|
503
503
|
self,
|
|
504
504
|
/,
|
|
505
|
-
*
|
|
505
|
+
*args: str,
|
|
506
506
|
app: typing.Optional[modal.app.App] = None,
|
|
507
507
|
name: typing.Optional[str] = None,
|
|
508
508
|
image: typing.Optional[modal.image.Image] = None,
|
|
@@ -538,7 +538,7 @@ class Sandbox(modal.object.Object):
|
|
|
538
538
|
async def aio(
|
|
539
539
|
self,
|
|
540
540
|
/,
|
|
541
|
-
*
|
|
541
|
+
*args: str,
|
|
542
542
|
app: typing.Optional[modal.app.App] = None,
|
|
543
543
|
name: typing.Optional[str] = None,
|
|
544
544
|
image: typing.Optional[modal.image.Image] = None,
|
|
@@ -758,7 +758,7 @@ class Sandbox(modal.object.Object):
|
|
|
758
758
|
def __call__(
|
|
759
759
|
self,
|
|
760
760
|
/,
|
|
761
|
-
*
|
|
761
|
+
*args: str,
|
|
762
762
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
763
763
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
764
764
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
@@ -773,7 +773,7 @@ class Sandbox(modal.object.Object):
|
|
|
773
773
|
def __call__(
|
|
774
774
|
self,
|
|
775
775
|
/,
|
|
776
|
-
*
|
|
776
|
+
*args: str,
|
|
777
777
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
778
778
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
779
779
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
@@ -788,7 +788,7 @@ class Sandbox(modal.object.Object):
|
|
|
788
788
|
async def aio(
|
|
789
789
|
self,
|
|
790
790
|
/,
|
|
791
|
-
*
|
|
791
|
+
*args: str,
|
|
792
792
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
793
793
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
794
794
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
@@ -803,7 +803,7 @@ class Sandbox(modal.object.Object):
|
|
|
803
803
|
async def aio(
|
|
804
804
|
self,
|
|
805
805
|
/,
|
|
806
|
-
*
|
|
806
|
+
*args: str,
|
|
807
807
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
808
808
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
809
809
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
@@ -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=
|
|
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=
|
|
22
|
-
modal/app.pyi,sha256
|
|
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=
|
|
25
|
+
modal/client.pyi,sha256=TGUMj-cxhG_LJH_qGldPxP4JolsucbWZ9WAAWPDhiCc,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,10 +39,10 @@ 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=
|
|
42
|
+
modal/functions.pyi,sha256=VYPnfnCLfHRDAl6t5AaVHmZEz0T5f2igjTeMOtHPie8,34766
|
|
43
43
|
modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
|
|
44
|
-
modal/image.py,sha256=
|
|
45
|
-
modal/image.pyi,sha256=
|
|
44
|
+
modal/image.py,sha256=aCxkC4OvM6WQyEU0aO1YUfNnQ6xP0tOKlRLhuAWWkx8,102715
|
|
45
|
+
modal/image.pyi,sha256=nzUn5l527w5TSnZ01hqhkJBm_7XJ-5NK1rxOUvmXvK4,68321
|
|
46
46
|
modal/io_streams.py,sha256=ut9tY_yEtiBsgQ40u_72Ns87IZHfbMxfnh8t6U9RSGA,16204
|
|
47
47
|
modal/io_streams.pyi,sha256=aOun_jUFKHSJyUY6-7gKvNoxzcULsa8_hxdtEO7v-gk,13980
|
|
48
48
|
modal/mount.py,sha256=EHttd7D0HNtGUDyB3DS26dJMdabG-SlIaD5c52dJnbE,36729
|
|
@@ -65,8 +65,8 @@ modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
|
|
|
65
65
|
modal/runner.py,sha256=ostdzYpQb-20tlD6dIq7bpWTkZkOhjJBNuMNektqnJA,24068
|
|
66
66
|
modal/runner.pyi,sha256=lbwLljm1cC8d6PcNvmYQhkE8501V9fg0bYqqKX6G4r4,8489
|
|
67
67
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
|
68
|
-
modal/sandbox.py,sha256=
|
|
69
|
-
modal/sandbox.pyi,sha256=
|
|
68
|
+
modal/sandbox.py,sha256=eQd0Cf9yTFCNshnj7oH8WvecbhVIwsEsmuXB9O-REis,40927
|
|
69
|
+
modal/sandbox.pyi,sha256=_ddnvZGauSRG-WelsMB5oPil8KVWb0PSvmuAzAzrLIw,41713
|
|
70
70
|
modal/schedule.py,sha256=ng0g0AqNY5GQI9KhkXZQ5Wam5G42glbkqVQsNpBtbDE,3078
|
|
71
71
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
|
72
72
|
modal/secret.py,sha256=UaUmwYmT52VarDh92b0QzAa8_BNUAgBs-wE4eMQ6-B8,11967
|
|
@@ -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.
|
|
154
|
+
modal-1.1.1.dev31.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
|
|
@@ -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=
|
|
177
|
+
modal_version/__init__.py,sha256=AJ4iVXLOyGjPCfflRW5L7FEk9nN3G4Toulz-go7fnhw,121
|
|
178
178
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
|
179
|
-
modal-1.1.1.
|
|
180
|
-
modal-1.1.1.
|
|
181
|
-
modal-1.1.1.
|
|
182
|
-
modal-1.1.1.
|
|
183
|
-
modal-1.1.1.
|
|
179
|
+
modal-1.1.1.dev31.dist-info/METADATA,sha256=v0QNfHwwAHT1AkImYBQAKyxJMeqio2yyLqR9kBmkAMI,2460
|
|
180
|
+
modal-1.1.1.dev31.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
181
|
+
modal-1.1.1.dev31.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
|
182
|
+
modal-1.1.1.dev31.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
|
183
|
+
modal-1.1.1.dev31.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|