modal 0.72.30__py3-none-any.whl → 0.72.31__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/runner.py +12 -1
- {modal-0.72.30.dist-info → modal-0.72.31.dist-info}/METADATA +1 -1
- {modal-0.72.30.dist-info → modal-0.72.31.dist-info}/RECORD +9 -9
- modal_version/_version_generated.py +1 -1
- {modal-0.72.30.dist-info → modal-0.72.31.dist-info}/LICENSE +0 -0
- {modal-0.72.30.dist-info → modal-0.72.31.dist-info}/WHEEL +0 -0
- {modal-0.72.30.dist-info → modal-0.72.31.dist-info}/entry_points.txt +0 -0
- {modal-0.72.30.dist-info → modal-0.72.31.dist-info}/top_level.txt +0 -0
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.72.
|
30
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.31"
|
31
31
|
): ...
|
32
32
|
def is_closed(self) -> bool: ...
|
33
33
|
@property
|
@@ -83,7 +83,7 @@ class Client:
|
|
83
83
|
_snapshotted: bool
|
84
84
|
|
85
85
|
def __init__(
|
86
|
-
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.
|
86
|
+
self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.31"
|
87
87
|
): ...
|
88
88
|
def is_closed(self) -> bool: ...
|
89
89
|
@property
|
modal/runner.py
CHANGED
@@ -4,6 +4,7 @@ import dataclasses
|
|
4
4
|
import os
|
5
5
|
import time
|
6
6
|
import typing
|
7
|
+
import warnings
|
7
8
|
from collections.abc import AsyncGenerator
|
8
9
|
from multiprocessing.synchronize import Event
|
9
10
|
from typing import TYPE_CHECKING, Any, Optional, TypeVar
|
@@ -287,6 +288,16 @@ async def _run_app(
|
|
287
288
|
client = await _Client.from_env()
|
288
289
|
|
289
290
|
app_state = api_pb2.APP_STATE_DETACHED if detach else api_pb2.APP_STATE_EPHEMERAL
|
291
|
+
|
292
|
+
output_mgr = _get_output_manager()
|
293
|
+
if interactive and output_mgr is None:
|
294
|
+
warnings.warn(
|
295
|
+
"Interactive mode is disabled because no output manager is active. "
|
296
|
+
"Use 'with modal.enable_output():' to enable interactive mode and see logs.",
|
297
|
+
stacklevel=2,
|
298
|
+
)
|
299
|
+
interactive = False
|
300
|
+
|
290
301
|
running_app: RunningApp = await _init_local_app_new(
|
291
302
|
client,
|
292
303
|
app.description or "",
|
@@ -306,7 +317,7 @@ async def _run_app(
|
|
306
317
|
tc.infinite_loop(heartbeat, sleep=HEARTBEAT_INTERVAL, log_exception=not detach)
|
307
318
|
logs_loop: Optional[asyncio.Task] = None
|
308
319
|
|
309
|
-
if output_mgr
|
320
|
+
if output_mgr is not None:
|
310
321
|
# Defer import so this module is rich-safe
|
311
322
|
# TODO(michael): The get_app_logs_loop function is itself rich-safe aside from accepting an OutputManager
|
312
323
|
# as an argument, so with some refactoring we could avoid the need for this deferred import.
|
@@ -20,7 +20,7 @@ modal/app.py,sha256=UOuqlCKlFAjOXCacXmoEMM90FnqFwPRXUhLh0Gi6xzg,45344
|
|
20
20
|
modal/app.pyi,sha256=5D3LkPP6qvTIl2_YgiyhNQ9X4VsOVuxd69a23UmohDg,25477
|
21
21
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
22
22
|
modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
|
23
|
-
modal/client.pyi,sha256=
|
23
|
+
modal/client.pyi,sha256=cnBbWcX5u74Ayif_XGR8dRx77KFQ5VpG2uBLYZ8UKlk,7326
|
24
24
|
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
25
25
|
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
26
26
|
modal/cls.py,sha256=xHgZZAmymplw0I2YZGAA8raBboixdNKKTrnsxQZI7G8,32159
|
@@ -61,7 +61,7 @@ modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
61
|
modal/queue.py,sha256=HPnyJuX-THDEl2ak-xqf2lxYJMiQw4e37y4vHz6FRCg,18557
|
62
62
|
modal/queue.pyi,sha256=JhJBSRerN0l3dK9f8Ut8uslgkJWnE8s4tGB8c4SAYe4,9840
|
63
63
|
modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
|
64
|
-
modal/runner.py,sha256=
|
64
|
+
modal/runner.py,sha256=0SCMgKO8lZ9W1C7le1EcgViKERMXpi_-QBd6PF_MH0Q,24450
|
65
65
|
modal/runner.pyi,sha256=YmP4EOCNjjkwSIPi2Gl6hF_ji_ytkxz9dw3iB9KXaOI,5275
|
66
66
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
67
67
|
modal/sandbox.py,sha256=6Z-ull5wI5WDKG6v4JVw-6CHx4Y8cMmpzp9CU3uNrtA,28678
|
@@ -166,10 +166,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
166
166
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
167
167
|
modal_version/__init__.py,sha256=kGya2ZlItX2zB7oHORs-wvP4PG8lg_mtbi1QIK3G6SQ,470
|
168
168
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
169
|
-
modal_version/_version_generated.py,sha256
|
170
|
-
modal-0.72.
|
171
|
-
modal-0.72.
|
172
|
-
modal-0.72.
|
173
|
-
modal-0.72.
|
174
|
-
modal-0.72.
|
175
|
-
modal-0.72.
|
169
|
+
modal_version/_version_generated.py,sha256=-r4jFK4gt6akJGlNLN7Z8PAhIsFmB6pCOZfCQ179Xh4,149
|
170
|
+
modal-0.72.31.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
171
|
+
modal-0.72.31.dist-info/METADATA,sha256=Kcoa-WABVasN7VpLXWqmEyEef_h2n_ULb95qsQ3z8mY,2329
|
172
|
+
modal-0.72.31.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
173
|
+
modal-0.72.31.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
174
|
+
modal-0.72.31.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
175
|
+
modal-0.72.31.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|