modal 0.73.138__tar.gz → 0.73.140__tar.gz
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-0.73.138 → modal-0.73.140}/PKG-INFO +1 -1
- {modal-0.73.138 → modal-0.73.140}/modal/client.pyi +2 -2
- modal-0.73.138/modal/experimental.py → modal-0.73.140/modal/experimental/__init__.py +9 -9
- modal-0.73.140/modal/experimental/ipython.py +80 -0
- {modal-0.73.138 → modal-0.73.140}/modal/functions.pyi +6 -6
- {modal-0.73.138 → modal-0.73.140}/modal.egg-info/PKG-INFO +1 -1
- {modal-0.73.138 → modal-0.73.140}/modal.egg-info/SOURCES.txt +2 -4
- {modal-0.73.138 → modal-0.73.140}/modal_proto/api.proto +1 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/api_pb2.py +80 -80
- {modal-0.73.138 → modal-0.73.140}/modal_proto/api_pb2.pyi +4 -1
- {modal-0.73.138 → modal-0.73.140}/modal_version/_version_generated.py +1 -1
- modal-0.73.138/modal/experimental.pyi +0 -29
- modal-0.73.138/modal/extensions/__init__.py +0 -1
- modal-0.73.138/modal/extensions/ipython.py +0 -41
- {modal-0.73.138 → modal-0.73.140}/LICENSE +0 -0
- {modal-0.73.138 → modal-0.73.140}/README.md +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/__main__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_clustered_functions.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_clustered_functions.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_container_entrypoint.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_functions.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_ipython.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_location.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_object.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_output.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_partial_function.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_proxy_tunnel.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_pty.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_resolver.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_resources.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/asgi.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/container_io_manager.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/execution_context.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/execution_context.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/telemetry.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_runtime/user_code_imports.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_serialization.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_traceback.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_tunnel.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_tunnel.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_type_manager.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/app_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/async_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/blob_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/deprecation.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/docker_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/function_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/git_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/grpc_testing.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/grpc_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/hash_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/http_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/jwt_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/logger.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/mount_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/name_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/package_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/pattern_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_utils/shell_utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_vendor/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_vendor/cloudpickle.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_vendor/tblib.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/_watcher.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/app.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/app.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/call_graph.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/_download.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/_traceback.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/app.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/config.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/container.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/dict.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/entry_point.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/environment.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/import_refs.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/launch.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/network_file_system.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/profile.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/programs/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/programs/vscode.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/queues.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/run.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/secret.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/token.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/utils.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cli/volume.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/client.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cloud_bucket_mount.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cls.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/cls.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/config.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/container_process.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/container_process.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/dict.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/dict.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/environments.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/environments.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/exception.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/file_io.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/file_io.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/file_pattern_matcher.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/functions.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/gpu.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/image.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/image.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/io_streams.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/io_streams.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/mount.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/mount.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/network_file_system.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/network_file_system.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/object.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/object.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/output.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/parallel_map.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/parallel_map.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/partial_function.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/partial_function.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/proxy.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/proxy.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/py.typed +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/queue.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/queue.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/2023.12.312.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/2023.12.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/2024.04.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/2024.10.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/PREVIEW.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/README.md +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/requirements/base-images.json +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/retries.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/runner.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/runner.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/running_app.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/sandbox.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/sandbox.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/schedule.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/scheduler_placement.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/secret.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/secret.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/serving.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/serving.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/snapshot.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/snapshot.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/stream_type.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/token_flow.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/token_flow.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/volume.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal/volume.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal.egg-info/dependency_links.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal.egg-info/entry_points.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal.egg-info/requires.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal.egg-info/top_level.txt +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_docs/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_docs/gen_cli_docs.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_docs/gen_reference_docs.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_docs/mdmd/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_docs/mdmd/signatures.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/api_grpc.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/modal_api_grpc.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/modal_options_grpc.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/options.proto +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/options_grpc.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/options_pb2.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/options_pb2.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_proto/py.typed +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_version/__init__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/modal_version/__main__.py +0 -0
- {modal-0.73.138 → modal-0.73.140}/pyproject.toml +0 -0
- {modal-0.73.138 → modal-0.73.140}/setup.cfg +0 -0
@@ -31,7 +31,7 @@ class _Client:
|
|
31
31
|
server_url: str,
|
32
32
|
client_type: int,
|
33
33
|
credentials: typing.Optional[tuple[str, str]],
|
34
|
-
version: str = "0.73.
|
34
|
+
version: str = "0.73.140",
|
35
35
|
): ...
|
36
36
|
def is_closed(self) -> bool: ...
|
37
37
|
@property
|
@@ -93,7 +93,7 @@ class Client:
|
|
93
93
|
server_url: str,
|
94
94
|
client_type: int,
|
95
95
|
credentials: typing.Optional[tuple[str, str]],
|
96
|
-
version: str = "0.73.
|
96
|
+
version: str = "0.73.140",
|
97
97
|
): ...
|
98
98
|
def is_closed(self) -> bool: ...
|
99
99
|
@property
|
@@ -1,17 +1,17 @@
|
|
1
|
-
# Copyright Modal Labs
|
1
|
+
# Copyright Modal Labs 2025
|
2
2
|
from dataclasses import dataclass
|
3
3
|
from typing import Any, Callable, Optional
|
4
4
|
|
5
5
|
from modal_proto import api_pb2
|
6
6
|
|
7
|
-
from
|
8
|
-
from
|
9
|
-
from
|
10
|
-
from
|
11
|
-
from
|
12
|
-
from
|
13
|
-
from
|
14
|
-
from
|
7
|
+
from .._clustered_functions import ClusterInfo, get_cluster_info as _get_cluster_info
|
8
|
+
from .._functions import _Function
|
9
|
+
from .._object import _get_environment_name
|
10
|
+
from .._partial_function import _PartialFunction, _PartialFunctionFlags
|
11
|
+
from .._runtime.container_io_manager import _ContainerIOManager
|
12
|
+
from .._utils.async_utils import synchronizer
|
13
|
+
from ..client import _Client
|
14
|
+
from ..exception import InvalidError
|
15
15
|
|
16
16
|
|
17
17
|
def stop_fetching_inputs():
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# Copyright Modal Labs 2025
|
2
|
+
|
3
|
+
"""This module provides Jupyter/IPython extensions for Modal.
|
4
|
+
|
5
|
+
Use in a notebook with `%load_ext modal.experimental.ipython`.
|
6
|
+
"""
|
7
|
+
|
8
|
+
from IPython.core.magic import Magics, line_magic, magics_class
|
9
|
+
|
10
|
+
from ..cls import Cls
|
11
|
+
from ..exception import NotFoundError
|
12
|
+
from ..functions import Function
|
13
|
+
|
14
|
+
|
15
|
+
@magics_class
|
16
|
+
class ModalMagics(Magics):
|
17
|
+
@line_magic
|
18
|
+
def modal(self, line):
|
19
|
+
"""Lookup a deployed Modal Function or Class.
|
20
|
+
|
21
|
+
**Example:**
|
22
|
+
|
23
|
+
```python notest
|
24
|
+
%modal from main/my-app import my_function, MyClass as Foo
|
25
|
+
|
26
|
+
# Now you can call my_function() and Foo from your notebook.
|
27
|
+
my_function.remote()
|
28
|
+
Foo().my_method.remote()
|
29
|
+
```
|
30
|
+
"""
|
31
|
+
line = line.strip()
|
32
|
+
if not line.startswith("from "):
|
33
|
+
print("Invalid syntax. Use: %modal from <env>/<app> import <function|Class>[, <function|Class> [as alias]]")
|
34
|
+
return
|
35
|
+
|
36
|
+
# Remove the initial "from "
|
37
|
+
line_without_from = line[5:]
|
38
|
+
env_app_part, sep, import_part = line_without_from.partition(" import ")
|
39
|
+
if not sep:
|
40
|
+
print("Invalid syntax. Missing 'import' keyword.")
|
41
|
+
return
|
42
|
+
|
43
|
+
# Parse environment and app from "env/app"
|
44
|
+
if "/" not in env_app_part:
|
45
|
+
print("Invalid app specification. Expected format: <env>/<app>")
|
46
|
+
return
|
47
|
+
environment, app = env_app_part.split("/", 1)
|
48
|
+
|
49
|
+
# Parse the import items (multiple imports separated by commas)
|
50
|
+
import_items = [item.strip() for item in import_part.split(",")]
|
51
|
+
for item in import_items:
|
52
|
+
if not item:
|
53
|
+
continue
|
54
|
+
parts = item.split()
|
55
|
+
# Expect either "Model" or "Model as alias"
|
56
|
+
if len(parts) == 0:
|
57
|
+
continue
|
58
|
+
model_name = parts[0]
|
59
|
+
alias = model_name
|
60
|
+
if len(parts) == 3 and parts[1] == "as":
|
61
|
+
alias = parts[2]
|
62
|
+
elif len(parts) > 1:
|
63
|
+
print(f"Invalid syntax in import item: {item!r}. Expected format: <function|Class> [as alias]")
|
64
|
+
return
|
65
|
+
|
66
|
+
# Try to load using Function; if not found, fallback to Cls
|
67
|
+
try:
|
68
|
+
obj: Function | Cls = Function.from_name(app, model_name, environment_name=environment)
|
69
|
+
obj.hydrate()
|
70
|
+
except NotFoundError:
|
71
|
+
obj = Cls.from_name(app, model_name, environment_name=environment)
|
72
|
+
obj.hydrate()
|
73
|
+
|
74
|
+
# Set the loaded object in the notebook namespace
|
75
|
+
self.shell.user_ns[alias] = obj # type: ignore
|
76
|
+
print(f"Loaded {alias!r} from environment {environment!r} and app {app!r}.")
|
77
|
+
|
78
|
+
|
79
|
+
def load_ipython_extension(ipython):
|
80
|
+
ipython.register_magics(ModalMagics)
|
@@ -199,11 +199,11 @@ class Function(
|
|
199
199
|
|
200
200
|
_call_generator_nowait: ___call_generator_nowait_spec[typing_extensions.Self]
|
201
201
|
|
202
|
-
class __remote_spec(typing_extensions.Protocol[
|
202
|
+
class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
203
203
|
def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
204
204
|
async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
205
205
|
|
206
|
-
remote: __remote_spec[modal._functions.
|
206
|
+
remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
|
207
207
|
|
208
208
|
class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
|
209
209
|
def __call__(self, *args, **kwargs) -> typing.Generator[typing.Any, None, None]: ...
|
@@ -218,19 +218,19 @@ class Function(
|
|
218
218
|
self, *args: modal._functions.P.args, **kwargs: modal._functions.P.kwargs
|
219
219
|
) -> modal._functions.OriginalReturnType: ...
|
220
220
|
|
221
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
221
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
222
222
|
def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
223
223
|
async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
224
224
|
|
225
225
|
_experimental_spawn: ___experimental_spawn_spec[
|
226
|
-
modal._functions.
|
226
|
+
modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
|
227
227
|
]
|
228
228
|
|
229
|
-
class __spawn_spec(typing_extensions.Protocol[
|
229
|
+
class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
230
230
|
def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
231
231
|
async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
232
232
|
|
233
|
-
spawn: __spawn_spec[modal._functions.
|
233
|
+
spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
|
234
234
|
|
235
235
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]: ...
|
236
236
|
|
@@ -39,8 +39,6 @@ modal/dict.pyi
|
|
39
39
|
modal/environments.py
|
40
40
|
modal/environments.pyi
|
41
41
|
modal/exception.py
|
42
|
-
modal/experimental.py
|
43
|
-
modal/experimental.pyi
|
44
42
|
modal/file_io.py
|
45
43
|
modal/file_io.pyi
|
46
44
|
modal/file_pattern_matcher.py
|
@@ -148,8 +146,8 @@ modal/cli/volume.py
|
|
148
146
|
modal/cli/programs/__init__.py
|
149
147
|
modal/cli/programs/run_jupyter.py
|
150
148
|
modal/cli/programs/vscode.py
|
151
|
-
modal/
|
152
|
-
modal/
|
149
|
+
modal/experimental/__init__.py
|
150
|
+
modal/experimental/ipython.py
|
153
151
|
modal/requirements/2023.12.312.txt
|
154
152
|
modal/requirements/2023.12.txt
|
155
153
|
modal/requirements/2024.04.txt
|