modal 1.0.6.dev60__py3-none-any.whl → 1.0.6.dev61__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 -11
- modal/_utils/function_utils.py +0 -28
- modal/app.py +8 -7
- modal/app.pyi +4 -4
- modal/client.pyi +2 -2
- modal/functions.pyi +1 -1
- modal/image.py +8 -7
- modal/image.pyi +16 -14
- {modal-1.0.6.dev60.dist-info → modal-1.0.6.dev61.dist-info}/METADATA +1 -1
- {modal-1.0.6.dev60.dist-info → modal-1.0.6.dev61.dist-info}/RECORD +15 -15
- modal_version/__init__.py +1 -1
- {modal-1.0.6.dev60.dist-info → modal-1.0.6.dev61.dist-info}/WHEEL +0 -0
- {modal-1.0.6.dev60.dist-info → modal-1.0.6.dev61.dist-info}/entry_points.txt +0 -0
- {modal-1.0.6.dev60.dist-info → modal-1.0.6.dev61.dist-info}/licenses/LICENSE +0 -0
- {modal-1.0.6.dev60.dist-info → modal-1.0.6.dev61.dist-info}/top_level.txt +0 -0
modal/_functions.py
CHANGED
@@ -47,12 +47,10 @@ from ._utils.function_utils import (
|
|
47
47
|
OUTPUTS_TIMEOUT,
|
48
48
|
FunctionCreationStatus,
|
49
49
|
FunctionInfo,
|
50
|
-
IncludeSourceMode,
|
51
50
|
_create_input,
|
52
51
|
_process_result,
|
53
52
|
_stream_function_call_data,
|
54
53
|
get_function_type,
|
55
|
-
get_include_source_mode,
|
56
54
|
is_async,
|
57
55
|
)
|
58
56
|
from ._utils.grpc_utils import RetryWarningMessage, retry_transient_errors
|
@@ -598,8 +596,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
598
596
|
rdma: Optional[bool] = None,
|
599
597
|
max_inputs: Optional[int] = None,
|
600
598
|
ephemeral_disk: Optional[int] = None,
|
601
|
-
|
602
|
-
include_source: Optional[bool] = None,
|
599
|
+
include_source: bool = True,
|
603
600
|
experimental_options: Optional[dict[str, str]] = None,
|
604
601
|
_experimental_proxy_ip: Optional[str] = None,
|
605
602
|
_experimental_custom_scaling_factor: Optional[float] = None,
|
@@ -624,15 +621,10 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
624
621
|
assert not webhook_config
|
625
622
|
assert not schedule
|
626
623
|
|
627
|
-
|
628
|
-
if include_source_mode != IncludeSourceMode.INCLUDE_NOTHING:
|
629
|
-
entrypoint_mounts = info.get_entrypoint_mount()
|
630
|
-
else:
|
631
|
-
entrypoint_mounts = {}
|
632
|
-
|
624
|
+
entrypoint_mount = info.get_entrypoint_mount() if include_source else {}
|
633
625
|
all_mounts = [
|
634
626
|
_get_client_mount(),
|
635
|
-
*
|
627
|
+
*entrypoint_mount.values(),
|
636
628
|
]
|
637
629
|
|
638
630
|
retry_policy = _parse_retries(
|
modal/_utils/function_utils.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# Copyright Modal Labs 2022
|
2
2
|
import asyncio
|
3
|
-
import enum
|
4
3
|
import inspect
|
5
4
|
import os
|
6
5
|
from collections.abc import AsyncGenerator
|
@@ -660,30 +659,3 @@ class FunctionCreationStatus:
|
|
660
659
|
f"Custom domain for {method_definition.function_name} => [magenta underline]"
|
661
660
|
f"{custom_domain.url}[/magenta underline]"
|
662
661
|
)
|
663
|
-
|
664
|
-
|
665
|
-
class IncludeSourceMode(enum.Enum):
|
666
|
-
INCLUDE_NOTHING = False # can only be set in source, can't be set in config
|
667
|
-
INCLUDE_MAIN_PACKAGE = True # Default behavior
|
668
|
-
|
669
|
-
|
670
|
-
def get_include_source_mode(function_or_app_specific) -> IncludeSourceMode:
|
671
|
-
"""Which "automount" behavior should a function use
|
672
|
-
|
673
|
-
function_or_app_specific: explicit value given in the @function or @cls decorator, in an App constructor, or None
|
674
|
-
|
675
|
-
If function_or_app_specific is specified, validate and return the IncludeSourceMode
|
676
|
-
If function_or_app_specific is None, infer it from config
|
677
|
-
"""
|
678
|
-
if function_or_app_specific is not None:
|
679
|
-
if not isinstance(function_or_app_specific, bool):
|
680
|
-
raise ValueError(
|
681
|
-
f"Invalid `include_source` value: {function_or_app_specific}. Use one of:\n"
|
682
|
-
f"True - include function's package source\n"
|
683
|
-
f"False - include no Python source (module expected to be present in Image)\n"
|
684
|
-
)
|
685
|
-
|
686
|
-
# explicitly set in app/function
|
687
|
-
return IncludeSourceMode(function_or_app_specific)
|
688
|
-
|
689
|
-
return IncludeSourceMode.INCLUDE_MAIN_PACKAGE
|
modal/app.py
CHANGED
@@ -171,10 +171,10 @@ class _App:
|
|
171
171
|
self,
|
172
172
|
name: Optional[str] = None,
|
173
173
|
*,
|
174
|
-
image: Optional[_Image] = None, #
|
175
|
-
secrets: Sequence[_Secret] = [], #
|
176
|
-
volumes: dict[Union[str, PurePosixPath], _Volume] = {}, #
|
177
|
-
include_source:
|
174
|
+
image: Optional[_Image] = None, # Default Image for the App (otherwise default to `modal.Image.debian_slim()`)
|
175
|
+
secrets: Sequence[_Secret] = [], # Secrets to add for all Functions in the App
|
176
|
+
volumes: dict[Union[str, PurePosixPath], _Volume] = {}, # Volume mounts to use for all Functions
|
177
|
+
include_source: bool = True, # Default configuration for adding Function source file(s) to the Modal container
|
178
178
|
) -> None:
|
179
179
|
"""Construct a new app, optionally with default image, mounts, secrets, or volumes.
|
180
180
|
|
@@ -655,8 +655,9 @@ class _App:
|
|
655
655
|
# With `max_inputs = 1`, containers will be single-use.
|
656
656
|
max_inputs: Optional[int] = None,
|
657
657
|
i6pn: Optional[bool] = None, # Whether to enable IPv6 container networking within the region.
|
658
|
-
# Whether the
|
659
|
-
|
658
|
+
# Whether the file or directory containing the Function's source should automatically be included
|
659
|
+
# in the container. When unset, falls back to the App-level configuration, or is otherwise True by default.
|
660
|
+
include_source: Optional[bool] = None,
|
660
661
|
experimental_options: Optional[dict[str, Any]] = None,
|
661
662
|
# Parameters below here are experimental. Use with caution!
|
662
663
|
_experimental_scheduler_placement: Optional[
|
@@ -670,8 +671,8 @@ class _App:
|
|
670
671
|
concurrency_limit: Optional[int] = None, # Replaced with `max_containers`
|
671
672
|
container_idle_timeout: Optional[int] = None, # Replaced with `scaledown_window`
|
672
673
|
allow_concurrent_inputs: Optional[int] = None, # Replaced with the `@modal.concurrent` decorator
|
673
|
-
_experimental_buffer_containers: Optional[int] = None, # Now stable API with `buffer_containers`
|
674
674
|
allow_cross_region_volumes: Optional[bool] = None, # Always True on the Modal backend now
|
675
|
+
_experimental_buffer_containers: Optional[int] = None, # Now stable API with `buffer_containers`
|
675
676
|
) -> _FunctionDecoratorType:
|
676
677
|
"""Decorator to register a new Modal Function with this App."""
|
677
678
|
if isinstance(_warn_parentheses_missing, _Image):
|
modal/app.pyi
CHANGED
@@ -129,7 +129,7 @@ class _App:
|
|
129
129
|
image: typing.Optional[modal.image._Image] = None,
|
130
130
|
secrets: collections.abc.Sequence[modal.secret._Secret] = [],
|
131
131
|
volumes: dict[typing.Union[str, pathlib.PurePosixPath], modal.volume._Volume] = {},
|
132
|
-
include_source:
|
132
|
+
include_source: bool = True,
|
133
133
|
) -> None:
|
134
134
|
"""Construct a new app, optionally with default image, mounts, secrets, or volumes.
|
135
135
|
|
@@ -430,8 +430,8 @@ class _App:
|
|
430
430
|
concurrency_limit: typing.Optional[int] = None,
|
431
431
|
container_idle_timeout: typing.Optional[int] = None,
|
432
432
|
allow_concurrent_inputs: typing.Optional[int] = None,
|
433
|
-
_experimental_buffer_containers: typing.Optional[int] = None,
|
434
433
|
allow_cross_region_volumes: typing.Optional[bool] = None,
|
434
|
+
_experimental_buffer_containers: typing.Optional[int] = None,
|
435
435
|
) -> _FunctionDecoratorType:
|
436
436
|
"""Decorator to register a new Modal Function with this App."""
|
437
437
|
...
|
@@ -591,7 +591,7 @@ class App:
|
|
591
591
|
image: typing.Optional[modal.image.Image] = None,
|
592
592
|
secrets: collections.abc.Sequence[modal.secret.Secret] = [],
|
593
593
|
volumes: dict[typing.Union[str, pathlib.PurePosixPath], modal.volume.Volume] = {},
|
594
|
-
include_source:
|
594
|
+
include_source: bool = True,
|
595
595
|
) -> None:
|
596
596
|
"""Construct a new app, optionally with default image, mounts, secrets, or volumes.
|
597
597
|
|
@@ -1035,8 +1035,8 @@ class App:
|
|
1035
1035
|
concurrency_limit: typing.Optional[int] = None,
|
1036
1036
|
container_idle_timeout: typing.Optional[int] = None,
|
1037
1037
|
allow_concurrent_inputs: typing.Optional[int] = None,
|
1038
|
-
_experimental_buffer_containers: typing.Optional[int] = None,
|
1039
1038
|
allow_cross_region_volumes: typing.Optional[bool] = None,
|
1039
|
+
_experimental_buffer_containers: typing.Optional[int] = None,
|
1040
1040
|
) -> _FunctionDecoratorType:
|
1041
1041
|
"""Decorator to register a new Modal Function with this App."""
|
1042
1042
|
...
|
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.0.6.
|
36
|
+
version: str = "1.0.6.dev61",
|
37
37
|
):
|
38
38
|
"""mdmd:hidden
|
39
39
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -163,7 +163,7 @@ class Client:
|
|
163
163
|
server_url: str,
|
164
164
|
client_type: int,
|
165
165
|
credentials: typing.Optional[tuple[str, str]],
|
166
|
-
version: str = "1.0.6.
|
166
|
+
version: str = "1.0.6.dev61",
|
167
167
|
):
|
168
168
|
"""mdmd:hidden
|
169
169
|
The Modal client object is not intended to be instantiated directly by users.
|
modal/functions.pyi
CHANGED
@@ -105,7 +105,7 @@ class Function(
|
|
105
105
|
rdma: typing.Optional[bool] = None,
|
106
106
|
max_inputs: typing.Optional[int] = None,
|
107
107
|
ephemeral_disk: typing.Optional[int] = None,
|
108
|
-
include_source:
|
108
|
+
include_source: bool = True,
|
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,
|
modal/image.py
CHANGED
@@ -2095,23 +2095,24 @@ class _Image(_Object, type_prefix="im"):
|
|
2095
2095
|
raw_f: Callable[..., Any],
|
2096
2096
|
*,
|
2097
2097
|
secrets: Sequence[_Secret] = (), # Optional Modal Secret objects with environment variables for the container
|
2098
|
-
gpu: Union[GPU_T, list[GPU_T]] = None, # Requested GPU or or list of acceptable GPUs( e.g. ["A10", "A100"])
|
2099
2098
|
volumes: dict[Union[str, PurePosixPath], Union[_Volume, _CloudBucketMount]] = {}, # Volume mount paths
|
2100
2099
|
network_file_systems: dict[Union[str, PurePosixPath], _NetworkFileSystem] = {}, # NFS mount paths
|
2100
|
+
gpu: Union[GPU_T, list[GPU_T]] = None, # Requested GPU or or list of acceptable GPUs( e.g. ["A10", "A100"])
|
2101
2101
|
cpu: Optional[float] = None, # How many CPU cores to request. This is a soft limit.
|
2102
2102
|
memory: Optional[int] = None, # How much memory to request, in MiB. This is a soft limit.
|
2103
2103
|
timeout: Optional[int] = 60 * 60, # Maximum execution time of the function in seconds.
|
2104
|
-
force_build: bool = False, # Ignore cached builds, similar to 'docker build --no-cache'
|
2105
2104
|
cloud: Optional[str] = None, # Cloud provider to run the function on. Possible values are aws, gcp, oci, auto.
|
2106
2105
|
region: Optional[Union[str, Sequence[str]]] = None, # Region or regions to run the function on.
|
2106
|
+
force_build: bool = False, # Ignore cached builds, similar to 'docker build --no-cache'
|
2107
2107
|
args: Sequence[Any] = (), # Positional arguments to the function.
|
2108
2108
|
kwargs: dict[str, Any] = {}, # Keyword arguments to the function.
|
2109
|
-
include_source:
|
2109
|
+
include_source: bool = True, # Whether the builder container should have the Function's source added
|
2110
2110
|
) -> "_Image":
|
2111
|
-
"""Run user-defined function `raw_f` as an image build step.
|
2112
|
-
|
2113
|
-
|
2114
|
-
|
2111
|
+
"""Run user-defined function `raw_f` as an image build step.
|
2112
|
+
|
2113
|
+
The function runs like an ordinary Modal Function, accepting a resource configuration and integrating
|
2114
|
+
with Modal features like Secrets and Volumes. Unlike ordinary Modal Functions, any changes to the
|
2115
|
+
filesystem state will be captured on container exit and saved as a new Image.
|
2115
2116
|
|
2116
2117
|
**Note**
|
2117
2118
|
|
modal/image.pyi
CHANGED
@@ -833,7 +833,6 @@ class _Image(modal._object._Object):
|
|
833
833
|
raw_f: collections.abc.Callable[..., typing.Any],
|
834
834
|
*,
|
835
835
|
secrets: collections.abc.Sequence[modal.secret._Secret] = (),
|
836
|
-
gpu: typing.Union[None, str, modal.gpu._GPUConfig, list[typing.Union[None, str, modal.gpu._GPUConfig]]] = None,
|
837
836
|
volumes: dict[
|
838
837
|
typing.Union[str, pathlib.PurePosixPath],
|
839
838
|
typing.Union[modal.volume._Volume, modal.cloud_bucket_mount._CloudBucketMount],
|
@@ -841,20 +840,22 @@ class _Image(modal._object._Object):
|
|
841
840
|
network_file_systems: dict[
|
842
841
|
typing.Union[str, pathlib.PurePosixPath], modal.network_file_system._NetworkFileSystem
|
843
842
|
] = {},
|
843
|
+
gpu: typing.Union[None, str, modal.gpu._GPUConfig, list[typing.Union[None, str, modal.gpu._GPUConfig]]] = None,
|
844
844
|
cpu: typing.Optional[float] = None,
|
845
845
|
memory: typing.Optional[int] = None,
|
846
846
|
timeout: typing.Optional[int] = 3600,
|
847
|
-
force_build: bool = False,
|
848
847
|
cloud: typing.Optional[str] = None,
|
849
848
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
849
|
+
force_build: bool = False,
|
850
850
|
args: collections.abc.Sequence[typing.Any] = (),
|
851
851
|
kwargs: dict[str, typing.Any] = {},
|
852
|
-
include_source:
|
852
|
+
include_source: bool = True,
|
853
853
|
) -> _Image:
|
854
|
-
"""Run user-defined function `raw_f` as an image build step.
|
855
|
-
|
856
|
-
|
857
|
-
|
854
|
+
"""Run user-defined function `raw_f` as an image build step.
|
855
|
+
|
856
|
+
The function runs like an ordinary Modal Function, accepting a resource configuration and integrating
|
857
|
+
with Modal features like Secrets and Volumes. Unlike ordinary Modal Functions, any changes to the
|
858
|
+
filesystem state will be captured on container exit and saved as a new Image.
|
858
859
|
|
859
860
|
**Note**
|
860
861
|
|
@@ -1672,7 +1673,6 @@ class Image(modal.object.Object):
|
|
1672
1673
|
raw_f: collections.abc.Callable[..., typing.Any],
|
1673
1674
|
*,
|
1674
1675
|
secrets: collections.abc.Sequence[modal.secret.Secret] = (),
|
1675
|
-
gpu: typing.Union[None, str, modal.gpu._GPUConfig, list[typing.Union[None, str, modal.gpu._GPUConfig]]] = None,
|
1676
1676
|
volumes: dict[
|
1677
1677
|
typing.Union[str, pathlib.PurePosixPath],
|
1678
1678
|
typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount],
|
@@ -1680,20 +1680,22 @@ class Image(modal.object.Object):
|
|
1680
1680
|
network_file_systems: dict[
|
1681
1681
|
typing.Union[str, pathlib.PurePosixPath], modal.network_file_system.NetworkFileSystem
|
1682
1682
|
] = {},
|
1683
|
+
gpu: typing.Union[None, str, modal.gpu._GPUConfig, list[typing.Union[None, str, modal.gpu._GPUConfig]]] = None,
|
1683
1684
|
cpu: typing.Optional[float] = None,
|
1684
1685
|
memory: typing.Optional[int] = None,
|
1685
1686
|
timeout: typing.Optional[int] = 3600,
|
1686
|
-
force_build: bool = False,
|
1687
1687
|
cloud: typing.Optional[str] = None,
|
1688
1688
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
1689
|
+
force_build: bool = False,
|
1689
1690
|
args: collections.abc.Sequence[typing.Any] = (),
|
1690
1691
|
kwargs: dict[str, typing.Any] = {},
|
1691
|
-
include_source:
|
1692
|
+
include_source: bool = True,
|
1692
1693
|
) -> Image:
|
1693
|
-
"""Run user-defined function `raw_f` as an image build step.
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1694
|
+
"""Run user-defined function `raw_f` as an image build step.
|
1695
|
+
|
1696
|
+
The function runs like an ordinary Modal Function, accepting a resource configuration and integrating
|
1697
|
+
with Modal features like Secrets and Volumes. Unlike ordinary Modal Functions, any changes to the
|
1698
|
+
filesystem state will be captured on container exit and saved as a new Image.
|
1697
1699
|
|
1698
1700
|
**Note**
|
1699
1701
|
|
@@ -3,7 +3,7 @@ modal/__main__.py,sha256=sTJcc9EbDuCKSwg3tL6ZckFw9WWdlkXW8mId1IvJCNc,2846
|
|
3
3
|
modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
|
4
4
|
modal/_clustered_functions.pyi,sha256=_QKM87tdYwcALSGth8a0-9qXl02fZK6zMfEGEoYz7eA,1007
|
5
5
|
modal/_container_entrypoint.py,sha256=1qBMNY_E9ICC_sRCtillMxmKPsmxJl1J0_qOAG8rH-0,28288
|
6
|
-
modal/_functions.py,sha256=
|
6
|
+
modal/_functions.py,sha256=sfE0cYRMGIr22zhCNGH2VBVLuuxQx4WNM7h1LqdTYNI,80869
|
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=vzRWhAcFJDM8ZmiUSDgSj9gJhLZJA-wjLVvTl984N4A,11295
|
@@ -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=BBR2NmGzZbFGfhKAmtzllD0o4TbVDBbOEs0O2ysSdQo,48277
|
22
|
+
modal/app.pyi,sha256=h6JtBA6a7wobdZAuS3QuXrWCUZqfyKPuGV3XdjCqT3k,43753
|
23
23
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
24
24
|
modal/client.py,sha256=pBSZ7lv5dezIL9U9H4tpE0Yz6qA1n0NoNbnJ3KCQMMA,18252
|
25
|
-
modal/client.pyi,sha256=
|
25
|
+
modal/client.pyi,sha256=IJcV98G7PkXHQXA1dW0kaBHPn421H7bpkdfSC8qUvOA,15390
|
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=sht8252nY3f7y20vURdjz4R-NU0_EvHjHVl97PQ1t_4,34823
|
43
43
|
modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
|
44
|
-
modal/image.py,sha256=
|
45
|
-
modal/image.pyi,sha256=
|
44
|
+
modal/image.py,sha256=0E3Tge4W3JLS-8dzFy1AVlkdccMhYs3TQkv5kQwv3G0,102368
|
45
|
+
modal/image.pyi,sha256=s_AQaFoWmjLzffJGmiedFf9K1qQkedVIlsC6vRtlKS8,68161
|
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=q-pPeVxAmte-G_LDpbFwaNs2Rb2MIpscfnCXzkhxrOI,36734
|
@@ -97,7 +97,7 @@ modal/_utils/blob_utils.py,sha256=v2NAQVVGx1AQjHQ7-2T64x5rYtwjFFykxDXb-0grrzA,21
|
|
97
97
|
modal/_utils/bytes_io_segment_payload.py,sha256=vaXPq8b52-x6G2hwE7SrjS58pg_aRm7gV3bn3yjmTzQ,4261
|
98
98
|
modal/_utils/deprecation.py,sha256=-Bgg7jZdcJU8lROy18YyVnQYbM8hue-hVmwJqlWAGH0,5504
|
99
99
|
modal/_utils/docker_utils.py,sha256=h1uETghR40mp_y3fSWuZAfbIASH1HMzuphJHghAL6DU,3722
|
100
|
-
modal/_utils/function_utils.py,sha256=
|
100
|
+
modal/_utils/function_utils.py,sha256=mFdEKMAgMC_1jgnH9_-0N0DgIlrIlKO6bBeseWbM3TE,27026
|
101
101
|
modal/_utils/git_utils.py,sha256=qtUU6JAttF55ZxYq51y55OR58B0tDPZsZWK5dJe6W5g,3182
|
102
102
|
modal/_utils/grpc_testing.py,sha256=H1zHqthv19eGPJz2HKXDyWXWGSqO4BRsxah3L5Xaa8A,8619
|
103
103
|
modal/_utils/grpc_utils.py,sha256=HBZdMcBHCk6uozILYTjGnR0mV8fg7WOdJldoyZ-ZhSg,10137
|
@@ -151,7 +151,7 @@ modal/requirements/2025.06.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqr
|
|
151
151
|
modal/requirements/PREVIEW.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqrs,312
|
152
152
|
modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
|
153
153
|
modal/requirements/base-images.json,sha256=JYSDAgHTl-WrV_TZW5icY-IJEnbe2eQ4CZ_KN6EOZKU,1304
|
154
|
-
modal-1.0.6.
|
154
|
+
modal-1.0.6.dev61.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=YE4any51Y4tqwNuA5XgXJh6SIIK3WHXj4AdH_DEGMb0,121
|
178
178
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
179
|
-
modal-1.0.6.
|
180
|
-
modal-1.0.6.
|
181
|
-
modal-1.0.6.
|
182
|
-
modal-1.0.6.
|
183
|
-
modal-1.0.6.
|
179
|
+
modal-1.0.6.dev61.dist-info/METADATA,sha256=YHPQDR5AI60UQZnbQRf2yNsUYo8cPDew3IeX4BmYFVQ,2462
|
180
|
+
modal-1.0.6.dev61.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
181
|
+
modal-1.0.6.dev61.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
182
|
+
modal-1.0.6.dev61.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
183
|
+
modal-1.0.6.dev61.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|