modal 0.68.39__py3-none-any.whl → 0.68.41__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 +2 -2
- modal/dict.py +1 -10
- modal/dict.pyi +0 -4
- modal/network_file_system.py +1 -11
- modal/network_file_system.pyi +0 -4
- modal/partial_function.py +0 -23
- modal/queue.py +1 -10
- modal/queue.pyi +0 -4
- modal/volume.py +0 -9
- modal/volume.pyi +0 -4
- {modal-0.68.39.dist-info → modal-0.68.41.dist-info}/METADATA +1 -1
- {modal-0.68.39.dist-info → modal-0.68.41.dist-info}/RECORD +17 -17
- modal_version/_version_generated.py +1 -1
- {modal-0.68.39.dist-info → modal-0.68.41.dist-info}/LICENSE +0 -0
- {modal-0.68.39.dist-info → modal-0.68.41.dist-info}/WHEEL +0 -0
- {modal-0.68.39.dist-info → modal-0.68.41.dist-info}/entry_points.txt +0 -0
- {modal-0.68.39.dist-info → modal-0.68.41.dist-info}/top_level.txt +0 -0
modal/client.pyi
CHANGED
@@ -26,7 +26,7 @@ class _Client:
|
|
26
26
|
_stub: typing.Optional[modal_proto.api_grpc.ModalClientStub]
|
27
27
|
|
28
28
|
def __init__(
|
29
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.68.
|
29
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.68.41"
|
30
30
|
): ...
|
31
31
|
def is_closed(self) -> bool: ...
|
32
32
|
@property
|
@@ -81,7 +81,7 @@ class Client:
|
|
81
81
|
_stub: typing.Optional[modal_proto.api_grpc.ModalClientStub]
|
82
82
|
|
83
83
|
def __init__(
|
84
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.68.
|
84
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.68.41"
|
85
85
|
): ...
|
86
86
|
def is_closed(self) -> bool: ...
|
87
87
|
@property
|
modal/dict.py
CHANGED
@@ -10,7 +10,7 @@ from modal_proto import api_pb2
|
|
10
10
|
from ._resolver import Resolver
|
11
11
|
from ._serialization import deserialize, serialize
|
12
12
|
from ._utils.async_utils import TaskContext, synchronize_api
|
13
|
-
from ._utils.deprecation import
|
13
|
+
from ._utils.deprecation import renamed_parameter
|
14
14
|
from ._utils.grpc_utils import retry_transient_errors
|
15
15
|
from ._utils.name_utils import check_object_name
|
16
16
|
from .client import _Client
|
@@ -58,15 +58,6 @@ class _Dict(_Object, type_prefix="di"):
|
|
58
58
|
For more examples, see the [guide](/docs/guide/dicts-and-queues#modal-dicts).
|
59
59
|
"""
|
60
60
|
|
61
|
-
@staticmethod
|
62
|
-
def new(data: Optional[dict] = None):
|
63
|
-
"""mdmd:hidden"""
|
64
|
-
message = (
|
65
|
-
"`Dict.new` is deprecated."
|
66
|
-
" Please use `Dict.from_name` (for persisted) or `Dict.ephemeral` (for ephemeral) dicts instead."
|
67
|
-
)
|
68
|
-
deprecation_error((2024, 3, 19), message)
|
69
|
-
|
70
61
|
def __init__(self, data={}):
|
71
62
|
"""mdmd:hidden"""
|
72
63
|
raise RuntimeError(
|
modal/dict.pyi
CHANGED
@@ -8,8 +8,6 @@ import typing_extensions
|
|
8
8
|
def _serialize_dict(data): ...
|
9
9
|
|
10
10
|
class _Dict(modal.object._Object):
|
11
|
-
@staticmethod
|
12
|
-
def new(data: typing.Optional[dict] = None): ...
|
13
11
|
def __init__(self, data={}): ...
|
14
12
|
@classmethod
|
15
13
|
def ephemeral(
|
@@ -60,8 +58,6 @@ class _Dict(modal.object._Object):
|
|
60
58
|
|
61
59
|
class Dict(modal.object.Object):
|
62
60
|
def __init__(self, data={}): ...
|
63
|
-
@staticmethod
|
64
|
-
def new(data: typing.Optional[dict] = None): ...
|
65
61
|
@classmethod
|
66
62
|
def ephemeral(
|
67
63
|
cls: type[Dict],
|
modal/network_file_system.py
CHANGED
@@ -15,7 +15,7 @@ from modal_proto import api_pb2
|
|
15
15
|
from ._resolver import Resolver
|
16
16
|
from ._utils.async_utils import TaskContext, aclosing, async_map, sync_or_async_iter, synchronize_api
|
17
17
|
from ._utils.blob_utils import LARGE_FILE_LIMIT, blob_iter, blob_upload_file
|
18
|
-
from ._utils.deprecation import
|
18
|
+
from ._utils.deprecation import renamed_parameter
|
19
19
|
from ._utils.grpc_utils import retry_transient_errors
|
20
20
|
from ._utils.hash_utils import get_sha256_hex
|
21
21
|
from ._utils.name_utils import check_object_name
|
@@ -90,16 +90,6 @@ class _NetworkFileSystem(_Object, type_prefix="sv"):
|
|
90
90
|
```
|
91
91
|
"""
|
92
92
|
|
93
|
-
@staticmethod
|
94
|
-
def new(cloud: Optional[str] = None):
|
95
|
-
"""mdmd:hidden"""
|
96
|
-
message = (
|
97
|
-
"`NetworkFileSystem.new` is deprecated."
|
98
|
-
" Please use `NetworkFileSystem.from_name` (for persisted)"
|
99
|
-
" or `NetworkFileSystem.ephemeral` (for ephemeral) network filesystems instead."
|
100
|
-
)
|
101
|
-
deprecation_error((2024, 3, 20), message)
|
102
|
-
|
103
93
|
@staticmethod
|
104
94
|
@renamed_parameter((2024, 12, 18), "label", "name")
|
105
95
|
def from_name(
|
modal/network_file_system.pyi
CHANGED
@@ -13,8 +13,6 @@ def network_file_system_mount_protos(
|
|
13
13
|
) -> list[modal_proto.api_pb2.SharedVolumeMount]: ...
|
14
14
|
|
15
15
|
class _NetworkFileSystem(modal.object._Object):
|
16
|
-
@staticmethod
|
17
|
-
def new(cloud: typing.Optional[str] = None): ...
|
18
16
|
@staticmethod
|
19
17
|
def from_name(
|
20
18
|
name: str, namespace=1, environment_name: typing.Optional[str] = None, create_if_missing: bool = False
|
@@ -71,8 +69,6 @@ class _NetworkFileSystem(modal.object._Object):
|
|
71
69
|
class NetworkFileSystem(modal.object.Object):
|
72
70
|
def __init__(self, *args, **kwargs): ...
|
73
71
|
@staticmethod
|
74
|
-
def new(cloud: typing.Optional[str] = None): ...
|
75
|
-
@staticmethod
|
76
72
|
def from_name(
|
77
73
|
name: str, namespace=1, environment_name: typing.Optional[str] = None, create_if_missing: bool = False
|
78
74
|
) -> NetworkFileSystem: ...
|
modal/partial_function.py
CHANGED
@@ -138,29 +138,6 @@ PartialFunction = synchronize_api(_PartialFunction)
|
|
138
138
|
def _find_partial_methods_for_user_cls(user_cls: type[Any], flags: int) -> dict[str, _PartialFunction]:
|
139
139
|
"""Grabs all method on a user class, and returns partials. Includes legacy methods."""
|
140
140
|
|
141
|
-
# Build up a list of legacy attributes to check
|
142
|
-
check_attrs: list[str] = []
|
143
|
-
if flags & _PartialFunctionFlags.BUILD:
|
144
|
-
check_attrs += ["__build__", "__abuild__"]
|
145
|
-
if flags & _PartialFunctionFlags.ENTER_POST_SNAPSHOT:
|
146
|
-
check_attrs += ["__enter__", "__aenter__"]
|
147
|
-
if flags & _PartialFunctionFlags.EXIT:
|
148
|
-
check_attrs += ["__exit__", "__aexit__"]
|
149
|
-
|
150
|
-
# Grab legacy lifecycle methods
|
151
|
-
for attr in check_attrs:
|
152
|
-
if hasattr(user_cls, attr):
|
153
|
-
suggested = attr.strip("_")
|
154
|
-
if is_async := suggested.startswith("a"):
|
155
|
-
suggested = suggested[1:]
|
156
|
-
async_suggestion = " (on an async method)" if is_async else ""
|
157
|
-
message = (
|
158
|
-
f"Using `{attr}` methods for class lifecycle management is deprecated."
|
159
|
-
f" Please try using the `modal.{suggested}` decorator{async_suggestion} instead."
|
160
|
-
" See https://modal.com/docs/guide/lifecycle-functions for more information."
|
161
|
-
)
|
162
|
-
deprecation_error((2024, 2, 21), message)
|
163
|
-
|
164
141
|
partial_functions: dict[str, _PartialFunction] = {}
|
165
142
|
for parent_cls in reversed(user_cls.mro()):
|
166
143
|
if parent_cls is not object:
|
modal/queue.py
CHANGED
@@ -13,7 +13,7 @@ from modal_proto import api_pb2
|
|
13
13
|
from ._resolver import Resolver
|
14
14
|
from ._serialization import deserialize, serialize
|
15
15
|
from ._utils.async_utils import TaskContext, synchronize_api, warn_if_generator_is_not_consumed
|
16
|
-
from ._utils.deprecation import
|
16
|
+
from ._utils.deprecation import renamed_parameter
|
17
17
|
from ._utils.grpc_utils import retry_transient_errors
|
18
18
|
from ._utils.name_utils import check_object_name
|
19
19
|
from .client import _Client
|
@@ -94,15 +94,6 @@ class _Queue(_Object, type_prefix="qu"):
|
|
94
94
|
Partition keys must be non-empty and must not exceed 64 bytes.
|
95
95
|
"""
|
96
96
|
|
97
|
-
@staticmethod
|
98
|
-
def new():
|
99
|
-
"""mdmd:hidden"""
|
100
|
-
message = (
|
101
|
-
"`Queue.new` is deprecated."
|
102
|
-
" Please use `Queue.from_name` (for persisted) or `Queue.ephemeral` (for ephemeral) queues instead."
|
103
|
-
)
|
104
|
-
deprecation_error((2024, 3, 19), message)
|
105
|
-
|
106
97
|
def __init__(self):
|
107
98
|
"""mdmd:hidden"""
|
108
99
|
raise RuntimeError("Queue() is not allowed. Please use `Queue.from_name(...)` or `Queue.ephemeral()` instead.")
|
modal/queue.pyi
CHANGED
@@ -6,8 +6,6 @@ import typing
|
|
6
6
|
import typing_extensions
|
7
7
|
|
8
8
|
class _Queue(modal.object._Object):
|
9
|
-
@staticmethod
|
10
|
-
def new(): ...
|
11
9
|
def __init__(self): ...
|
12
10
|
@staticmethod
|
13
11
|
def validate_partition_key(partition: typing.Optional[str]) -> bytes: ...
|
@@ -89,8 +87,6 @@ class _Queue(modal.object._Object):
|
|
89
87
|
class Queue(modal.object.Object):
|
90
88
|
def __init__(self): ...
|
91
89
|
@staticmethod
|
92
|
-
def new(): ...
|
93
|
-
@staticmethod
|
94
90
|
def validate_partition_key(partition: typing.Optional[str]) -> bytes: ...
|
95
91
|
@classmethod
|
96
92
|
def ephemeral(
|
modal/volume.py
CHANGED
@@ -134,15 +134,6 @@ class _Volume(_Object, type_prefix="vo"):
|
|
134
134
|
self._lock = asyncio.Lock()
|
135
135
|
return self._lock
|
136
136
|
|
137
|
-
@staticmethod
|
138
|
-
def new():
|
139
|
-
"""mdmd:hidden"""
|
140
|
-
message = (
|
141
|
-
"`Volume.new` is deprecated."
|
142
|
-
" Please use `Volume.from_name` (for persisted) or `Volume.ephemeral` (for ephemeral) volumes instead."
|
143
|
-
)
|
144
|
-
deprecation_error((2024, 3, 20), message)
|
145
|
-
|
146
137
|
@staticmethod
|
147
138
|
@renamed_parameter((2024, 12, 18), "label", "name")
|
148
139
|
def from_name(
|
modal/volume.pyi
CHANGED
@@ -38,8 +38,6 @@ class _Volume(modal.object._Object):
|
|
38
38
|
|
39
39
|
async def _get_lock(self): ...
|
40
40
|
@staticmethod
|
41
|
-
def new(): ...
|
42
|
-
@staticmethod
|
43
41
|
def from_name(
|
44
42
|
name: str,
|
45
43
|
namespace=1,
|
@@ -133,8 +131,6 @@ class Volume(modal.object.Object):
|
|
133
131
|
|
134
132
|
_get_lock: ___get_lock_spec
|
135
133
|
|
136
|
-
@staticmethod
|
137
|
-
def new(): ...
|
138
134
|
@staticmethod
|
139
135
|
def from_name(
|
140
136
|
name: str,
|
@@ -19,7 +19,7 @@ modal/app.py,sha256=JWefPs4yB70BKQwSZejB_4_muhxn63cC9UmnNvpQ9XY,45526
|
|
19
19
|
modal/app.pyi,sha256=FYPCEJNhof4YF6HIuNP_2yG6s2PgZnKW9tO1hFE6sfA,25194
|
20
20
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
21
21
|
modal/client.py,sha256=JAnd4-GCN093BwkvOFAK5a6iy5ycxofjpUncMxlrIMw,15253
|
22
|
-
modal/client.pyi,sha256=
|
22
|
+
modal/client.pyi,sha256=MnX---mq4AoF-q6gHxlDuiaBO61Daf94PLTrmEDvxPI,7280
|
23
23
|
modal/cloud_bucket_mount.py,sha256=G7T7jWLD0QkmrfKR75mSTwdUZ2xNfj7pkVqb4ipmxmI,5735
|
24
24
|
modal/cloud_bucket_mount.pyi,sha256=CEi7vrH3kDUF4LAy4qP6tfImy2UJuFRcRbsgRNM1wo8,1403
|
25
25
|
modal/cls.py,sha256=3hjb0JcoPjxKZNeK22f5rR43bZRBjoRI7_EMZXY7YrE,31172
|
@@ -27,8 +27,8 @@ modal/cls.pyi,sha256=ooDU2IaGgD5VQ3jDX2KCrqb3a91-AdKv8yKYSkjnW8Y,8230
|
|
27
27
|
modal/config.py,sha256=BzhZYUUwOmvVwf6x5kf0ywMC257s648dmuhsnB6g3gk,11041
|
28
28
|
modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
|
29
29
|
modal/container_process.pyi,sha256=dqtqBmyRpXXpRrDooESL6WBVU_1Rh6OG-66P2Hk9E5U,2666
|
30
|
-
modal/dict.py,sha256=
|
31
|
-
modal/dict.pyi,sha256=
|
30
|
+
modal/dict.py,sha256=ei9jsA5iTj4UFGPJxTAed6vjd49W47ezDtj0koUmVts,12497
|
31
|
+
modal/dict.pyi,sha256=VmbzxltA2vFlIHZCxpNGtd-ieXwcUwdw3iyy3WCweqU,7115
|
32
32
|
modal/environments.py,sha256=wbv9ttFCbzATGfwcmvYiG608PfHovx0AQmawsg-jmic,6660
|
33
33
|
modal/environments.pyi,sha256=rF7oaaELoSNuoD6qImGnIbuGPtgWwR5SlcExyYJ61hQ,3515
|
34
34
|
modal/exception.py,sha256=GEV6xMnVnkle0gsFZVLB4B7cUMyw8HzVDvAvPr34ZV4,5185
|
@@ -45,20 +45,20 @@ modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
|
|
45
45
|
modal/io_streams.pyi,sha256=bCCVSxkMcosYd8O3PQDDwJw7TQ8JEcnYonLJ5t27TQs,4804
|
46
46
|
modal/mount.py,sha256=tlHjosr7aY52wtOvnZxiVXmBOBSC2JeAxqwSJCutQx0,29175
|
47
47
|
modal/mount.pyi,sha256=7dKl_JeVka3g4oKw7D-FFRU-Zpadt9LJEcfNUnhj540,10491
|
48
|
-
modal/network_file_system.py,sha256=
|
49
|
-
modal/network_file_system.pyi,sha256=
|
48
|
+
modal/network_file_system.py,sha256=INj1TfN_Fsmabmlte7anvey1epodjbMmjBW_TIJSST4,14406
|
49
|
+
modal/network_file_system.pyi,sha256=61M-sdWrtaRjmuNVsvusI6kf1Qw-jUOVXvEAeOkM8Aw,7751
|
50
50
|
modal/object.py,sha256=HZs3N59C6JxlMuPQWJYvrWV1FEEkH9txUovVDorVUbs,9763
|
51
51
|
modal/object.pyi,sha256=MO78H9yFSE5i1gExPEwyyQzLdlshkcGHN1aQ0ylyvq0,8802
|
52
52
|
modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
|
53
53
|
modal/parallel_map.py,sha256=4aoMXIrlG3wl5Ifk2YDNOQkXsGRsm6Xbfm6WtJ2t3WY,16002
|
54
54
|
modal/parallel_map.pyi,sha256=pOhT0P3DDYlwLx0fR3PTsecA7DI8uOdXC1N8i-ZkyOY,2328
|
55
|
-
modal/partial_function.py,sha256=
|
55
|
+
modal/partial_function.py,sha256=61ctSak-xQrMfxSjf-rGlhkbnTWyylSvUpD1QSWV3uk,28166
|
56
56
|
modal/partial_function.pyi,sha256=pO6kf8i5HVsZ7CF0z_KkzLk4Aeq7NJhFJ_VNIycRXaU,9260
|
57
57
|
modal/proxy.py,sha256=ZrOsuQP7dSZFq1OrIxalNnt0Zvsnp1h86Th679sSL40,1417
|
58
58
|
modal/proxy.pyi,sha256=UvygdOYneLTuoDY6hVaMNCyZ947Tmx93IdLjErUqkvM,368
|
59
59
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
|
-
modal/queue.py,sha256=
|
61
|
-
modal/queue.pyi,sha256=
|
60
|
+
modal/queue.py,sha256=zMUQtdAyqZzBg-2iAo3c3G54HLP7TEWfVhiQXLjewb4,18556
|
61
|
+
modal/queue.pyi,sha256=gGV97pWelSSYqMV9Bl4ys3mSP7q82fS71oqSWeAwyDE,9818
|
62
62
|
modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
|
63
63
|
modal/runner.py,sha256=qfkB0OM97kb_-oP-D5KPj_jUwfd8ePUA3R_zLkjSTBQ,24586
|
64
64
|
modal/runner.pyi,sha256=BvMS1ZVzWSn8B8q0KnIZOJKPkN5L-i5b-USbV6SWWHQ,5177
|
@@ -74,8 +74,8 @@ modal/serving.pyi,sha256=ncV-9jY_vZYFnGs5ZnMb3ffrX8LmcLdIMHBC56xRbtE,1711
|
|
74
74
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
75
75
|
modal/token_flow.py,sha256=LcgSce_MSQ2p7j55DPwpVRpiAtCDe8GRSEwzO7muNR8,6774
|
76
76
|
modal/token_flow.pyi,sha256=gOYtYujrWt_JFZeiI8EmfahXPx5GCR5Na-VaPQcWgEY,1937
|
77
|
-
modal/volume.py,sha256=
|
78
|
-
modal/volume.pyi,sha256=
|
77
|
+
modal/volume.py,sha256=T-pLxCYqmqRO6OolpAXlPxomMu0RWjti2e4kUpaj2cQ,29229
|
78
|
+
modal/volume.pyi,sha256=eekb2dnAAwFK_NO9ciAOOTthl8NP1iAmMFrCGgjDA2k,11100
|
79
79
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
80
80
|
modal/_runtime/asgi.py,sha256=H68KAN8bz8Zp7EcRl2c_ite1Y3kP1MHvjQAf-uUpCx8,21691
|
81
81
|
modal/_runtime/container_io_manager.py,sha256=ctgyNFiHjq1brCrabXmlurkAXjnrCeWPRvTVa735vRw,44215
|
@@ -164,10 +164,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
164
164
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
165
165
|
modal_version/__init__.py,sha256=RT6zPoOdFO99u5Wcxxaoir4ZCuPTbQ22cvzFAXl3vUY,470
|
166
166
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
167
|
-
modal_version/_version_generated.py,sha256=
|
168
|
-
modal-0.68.
|
169
|
-
modal-0.68.
|
170
|
-
modal-0.68.
|
171
|
-
modal-0.68.
|
172
|
-
modal-0.68.
|
173
|
-
modal-0.68.
|
167
|
+
modal_version/_version_generated.py,sha256=xxS5aefLaRGA4uZSlaDf-vr7pX3q3tMd1y2iDxB9x-E,149
|
168
|
+
modal-0.68.41.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
169
|
+
modal-0.68.41.dist-info/METADATA,sha256=uFV6t19lWlLMnWI-TWjEU5QVRZimgt2jDgqUcZ2lz0o,2329
|
170
|
+
modal-0.68.41.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
171
|
+
modal-0.68.41.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
172
|
+
modal-0.68.41.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
173
|
+
modal-0.68.41.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|