modal 1.1.5.dev23__py3-none-any.whl → 1.1.5.dev24__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/_container_entrypoint.py +1 -1
- modal/_runtime/user_code_imports.py +13 -53
- modal/client.pyi +2 -2
- {modal-1.1.5.dev23.dist-info → modal-1.1.5.dev24.dist-info}/METADATA +1 -1
- {modal-1.1.5.dev23.dist-info → modal-1.1.5.dev24.dist-info}/RECORD +10 -10
- modal_version/__init__.py +1 -1
- {modal-1.1.5.dev23.dist-info → modal-1.1.5.dev24.dist-info}/WHEEL +0 -0
- {modal-1.1.5.dev23.dist-info → modal-1.1.5.dev24.dist-info}/entry_points.txt +0 -0
- {modal-1.1.5.dev23.dist-info → modal-1.1.5.dev24.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.5.dev23.dist-info → modal-1.1.5.dev24.dist-info}/top_level.txt +0 -0
modal/_container_entrypoint.py
CHANGED
|
@@ -93,9 +93,9 @@ def construct_webhook_callable(
|
|
|
93
93
|
|
|
94
94
|
@dataclass
|
|
95
95
|
class ImportedFunction(Service):
|
|
96
|
-
user_cls_instance: Any
|
|
97
96
|
app: modal.app._App
|
|
98
97
|
service_deps: Optional[Sequence["modal._object._Object"]]
|
|
98
|
+
user_cls_instance = None
|
|
99
99
|
|
|
100
100
|
_user_defined_callable: Callable[..., Any]
|
|
101
101
|
|
|
@@ -199,7 +199,6 @@ def get_user_class_instance(_cls: modal.cls._Cls, args: tuple[Any, ...], kwargs:
|
|
|
199
199
|
|
|
200
200
|
def import_single_function_service(
|
|
201
201
|
function_def: api_pb2.Function,
|
|
202
|
-
ser_cls: Optional[type], # used only for @build functions
|
|
203
202
|
ser_fun: Optional[Callable[..., Any]],
|
|
204
203
|
) -> Service:
|
|
205
204
|
"""Imports a function dynamically, and locates the app.
|
|
@@ -228,12 +227,9 @@ def import_single_function_service(
|
|
|
228
227
|
service_deps: Optional[Sequence["modal._object._Object"]] = None
|
|
229
228
|
active_app: modal.app._App
|
|
230
229
|
|
|
231
|
-
user_cls_or_cls: typing.Union[None, type, modal.cls.Cls]
|
|
232
|
-
user_cls_instance = None
|
|
233
|
-
|
|
234
230
|
if ser_fun is not None:
|
|
235
231
|
# This is a serialized function we already fetched from the server
|
|
236
|
-
|
|
232
|
+
user_defined_callable = ser_fun
|
|
237
233
|
active_app = get_active_app_fallback(function_def)
|
|
238
234
|
else:
|
|
239
235
|
# Load the module dynamically
|
|
@@ -244,58 +240,22 @@ def import_single_function_service(
|
|
|
244
240
|
raise LocalFunctionError("Attempted to load a function defined in a function scope")
|
|
245
241
|
|
|
246
242
|
parts = qual_name.split(".")
|
|
247
|
-
if len(parts)
|
|
248
|
-
# This is a function
|
|
249
|
-
user_cls_or_cls = None
|
|
250
|
-
f = getattr(module, qual_name)
|
|
251
|
-
if isinstance(f, Function):
|
|
252
|
-
_function: modal._functions._Function[Any, Any, Any] = synchronizer._translate_in(f) # type: ignore
|
|
253
|
-
service_deps = _function.deps(only_explicit_mounts=True)
|
|
254
|
-
user_defined_callable = _function.get_raw_f()
|
|
255
|
-
assert _function._app # app should always be set on a decorated function
|
|
256
|
-
active_app = _function._app
|
|
257
|
-
else:
|
|
258
|
-
user_defined_callable = f
|
|
259
|
-
active_app = get_active_app_fallback(function_def)
|
|
260
|
-
|
|
261
|
-
elif len(parts) == 2:
|
|
262
|
-
# This path should only be triggered by @build class builder methods and can be removed
|
|
263
|
-
# once @build is deprecated.
|
|
264
|
-
assert not function_def.use_method_name # new "placeholder methods" should not be invoked directly!
|
|
265
|
-
assert function_def.is_builder_function
|
|
266
|
-
cls_name, fun_name = parts
|
|
267
|
-
user_cls_or_cls = getattr(module, cls_name)
|
|
268
|
-
if isinstance(user_cls_or_cls, modal.cls.Cls):
|
|
269
|
-
# The cls decorator is in global scope
|
|
270
|
-
_cls = typing.cast(modal.cls._Cls, synchronizer._translate_in(user_cls_or_cls))
|
|
271
|
-
user_defined_callable = _cls._callables[fun_name]
|
|
272
|
-
# Intentionally not including these, since @build functions don't actually
|
|
273
|
-
# forward the information from their parent class.
|
|
274
|
-
# service_deps = _cls._get_class_service_function().deps(only_explicit_mounts=True)
|
|
275
|
-
assert _cls._app
|
|
276
|
-
active_app = _cls._app
|
|
277
|
-
else:
|
|
278
|
-
# This is non-decorated class
|
|
279
|
-
user_defined_callable = getattr(user_cls_or_cls, fun_name) # unbound method
|
|
280
|
-
active_app = get_active_app_fallback(function_def)
|
|
281
|
-
else:
|
|
243
|
+
if len(parts) != 1:
|
|
282
244
|
raise InvalidError(f"Invalid function qualname {qual_name}")
|
|
283
245
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
246
|
+
f = getattr(module, qual_name)
|
|
247
|
+
if isinstance(f, Function):
|
|
248
|
+
_function: modal._functions._Function[Any, Any, Any] = synchronizer._translate_in(f) # type: ignore
|
|
249
|
+
service_deps = _function.deps(only_explicit_mounts=True)
|
|
250
|
+
user_defined_callable = _function.get_raw_f()
|
|
251
|
+
assert _function._app # app should always be set on a decorated function
|
|
252
|
+
active_app = _function._app
|
|
291
253
|
else:
|
|
292
|
-
#
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
user_defined_callable = user_defined_callable.__get__(user_cls_instance)
|
|
254
|
+
# function isn't decorated in global scope
|
|
255
|
+
user_defined_callable = f
|
|
256
|
+
active_app = get_active_app_fallback(function_def)
|
|
296
257
|
|
|
297
258
|
return ImportedFunction(
|
|
298
|
-
user_cls_instance,
|
|
299
259
|
active_app,
|
|
300
260
|
service_deps,
|
|
301
261
|
user_defined_callable,
|
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.5.
|
|
36
|
+
version: str = "1.1.5.dev24",
|
|
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.5.
|
|
167
|
+
version: str = "1.1.5.dev24",
|
|
168
168
|
):
|
|
169
169
|
"""mdmd:hidden
|
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -2,7 +2,7 @@ modal/__init__.py,sha256=WMaRW-2IJRGA9ioNAaBhJYuyLvu-GS01L8wQD90fKBs,2682
|
|
|
2
2
|
modal/__main__.py,sha256=45H-GtwzaDfN-1nP4_HYvzN3s7AG_HXR4-ynrsjO_OI,2803
|
|
3
3
|
modal/_clustered_functions.py,sha256=Sy4Sf_17EO8OL-FUe8LYcm4hrqLyQFCssNhr3p0SroU,3013
|
|
4
4
|
modal/_clustered_functions.pyi,sha256=JmYwAGOLEnD5AF-gYF9O5tu-SgGjeoJz-X1j48b1Ijg,1157
|
|
5
|
-
modal/_container_entrypoint.py,sha256=
|
|
5
|
+
modal/_container_entrypoint.py,sha256=fLluT_sU34vGPCTG1Q58VI1RvxF5n7vQzCVCsL-MMk8,29033
|
|
6
6
|
modal/_functions.py,sha256=1ZG8TvI3TTByfzArrjSww6pQB1iH4be0I3yQfkMfgAY,89780
|
|
7
7
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
|
8
8
|
modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
|
|
@@ -22,7 +22,7 @@ modal/app.py,sha256=OBFaL-8KVMtBMEmspHA76LvblPdnSgdoGioLkQBjhdQ,48851
|
|
|
22
22
|
modal/app.pyi,sha256=Cqk3pOeEEroCLejj3yJ3XHDqt0rMzeSA295gMKEx6Ww,43955
|
|
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=us36PiyarU0FrCAtcpfcLAMUCNlMDWGJOEm-Mbg5LiM,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=qb9h_ZKiz2q7fwKQ-5bdkz1x3tdu6sIm-UI09aQjPPc,41101
|
|
@@ -88,7 +88,7 @@ modal/_runtime/execution_context.py,sha256=AYrNQRHHXEqX2MwMf8zxelKZnYf25RE_B-NRL
|
|
|
88
88
|
modal/_runtime/execution_context.pyi,sha256=FVzakehz72ndL-ufe8-EC7TM4IHO_MEBcAdgWuU4W9k,2426
|
|
89
89
|
modal/_runtime/gpu_memory_snapshot.py,sha256=BWIMKkH-UXTQOJJuXbM15UWCHHSYlJ0XxGlZunKb0Ug,11877
|
|
90
90
|
modal/_runtime/telemetry.py,sha256=T1RoAGyjBDr1swiM6pPsGRSITm7LI5FDK18oNXxY08U,5163
|
|
91
|
-
modal/_runtime/user_code_imports.py,sha256=
|
|
91
|
+
modal/_runtime/user_code_imports.py,sha256=SSkrluFuOtcM0NIOwqVlcFhAKhkAGjnPKjJj_Ht_nzk,15574
|
|
92
92
|
modal/_utils/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
|
93
93
|
modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
|
|
94
94
|
modal/_utils/async_utils.py,sha256=7uA4KJV7XRgak5nXZSGRE-RN1h91UOyNwK6v_ilUQMQ,29737
|
|
@@ -153,7 +153,7 @@ modal/experimental/__init__.py,sha256=fCqzo_f3vcY750vHtd7CtLs5dvdM_C0ZLLGb3zXuK9
|
|
|
153
153
|
modal/experimental/flash.py,sha256=7qRAL2Nrwbb60YKobcnpM0zJ8vw4xGJqabLPFgEzMZE,28295
|
|
154
154
|
modal/experimental/flash.pyi,sha256=R9VV0UDotiY9BRUjacB-xI4qhR3yBymAvEZFRFHztLs,15143
|
|
155
155
|
modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
|
|
156
|
-
modal-1.1.5.
|
|
156
|
+
modal-1.1.5.dev24.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
157
157
|
modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
|
158
158
|
modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
|
|
159
159
|
modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
|
|
@@ -176,10 +176,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
|
|
|
176
176
|
modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
177
177
|
modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
|
|
178
178
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
|
-
modal_version/__init__.py,sha256=
|
|
179
|
+
modal_version/__init__.py,sha256=BRQ3z_a6RSG8-f9fEnDvMa3yRNG-JxSWmyy5uTbRnvQ,121
|
|
180
180
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
|
181
|
-
modal-1.1.5.
|
|
182
|
-
modal-1.1.5.
|
|
183
|
-
modal-1.1.5.
|
|
184
|
-
modal-1.1.5.
|
|
185
|
-
modal-1.1.5.
|
|
181
|
+
modal-1.1.5.dev24.dist-info/METADATA,sha256=abLubH9UXnekHrhffWoQzTIpKyOvq-h_Ix5EIfeYi7Y,2460
|
|
182
|
+
modal-1.1.5.dev24.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
183
|
+
modal-1.1.5.dev24.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
|
184
|
+
modal-1.1.5.dev24.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
|
185
|
+
modal-1.1.5.dev24.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|