modal 1.0.0.dev8__tar.gz → 1.0.0.dev10__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.
Potentially problematic release.
This version of modal might be problematic. Click here for more details.
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/PKG-INFO +1 -1
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_functions.py +1 -25
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_serialization.py +2 -2
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/function_utils.py +3 -6
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/programs/run_jupyter.py +1 -1
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/programs/vscode.py +1 -1
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/client.pyi +2 -2
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/config.py +0 -5
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/functions.pyi +6 -6
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_version/__init__.py +1 -1
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/LICENSE +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/README.md +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/__main__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_clustered_functions.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_clustered_functions.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_container_entrypoint.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_ipython.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_location.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_object.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_output.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_partial_function.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_pty.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_resolver.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_resources.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/asgi.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/execution_context.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/telemetry.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_traceback.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_tunnel.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_tunnel.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_type_manager.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/app_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/async_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/blob_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/deprecation.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/docker_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/git_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/hash_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/http_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/logger.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/mount_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/name_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/package_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_utils/shell_utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_vendor/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_vendor/tblib.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/_watcher.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/app.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/app.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/call_graph.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/_download.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/_traceback.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/app.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/cluster.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/config.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/container.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/dict.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/entry_point.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/environment.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/import_refs.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/launch.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/network_file_system.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/profile.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/programs/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/queues.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/run.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/secret.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/token.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/utils.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cli/volume.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/client.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cls.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/cls.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/container_process.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/container_process.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/dict.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/dict.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/environments.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/environments.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/exception.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/experimental/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/experimental/ipython.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/file_io.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/file_io.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/file_pattern_matcher.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/functions.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/gpu.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/image.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/image.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/io_streams.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/io_streams.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/mount.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/mount.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/network_file_system.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/network_file_system.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/object.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/object.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/output.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/parallel_map.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/parallel_map.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/partial_function.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/partial_function.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/proxy.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/proxy.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/py.typed +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/queue.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/queue.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/2023.12.312.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/2023.12.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/2024.04.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/2024.10.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/PREVIEW.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/README.md +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/requirements/base-images.json +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/retries.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/runner.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/runner.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/running_app.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/sandbox.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/sandbox.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/schedule.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/scheduler_placement.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/secret.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/secret.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/serving.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/serving.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/snapshot.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/snapshot.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/stream_type.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/token_flow.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/token_flow.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/volume.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal/volume.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal.egg-info/requires.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal.egg-info/top_level.txt +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_docs/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/__init__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/api.proto +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/api_grpc.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/api_pb2.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/modal_options_grpc.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/options.proto +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/options_grpc.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/options_pb2.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/options_pb2.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_proto/py.typed +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/modal_version/__main__.py +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/pyproject.toml +0 -0
- {modal-1.0.0.dev8 → modal-1.0.0.dev10}/setup.cfg +0 -0
@@ -71,7 +71,7 @@ from .exception import (
|
|
71
71
|
)
|
72
72
|
from .gpu import GPU_T, parse_gpu_config
|
73
73
|
from .image import _Image
|
74
|
-
from .mount import _get_client_mount, _Mount
|
74
|
+
from .mount import _get_client_mount, _Mount
|
75
75
|
from .network_file_system import _NetworkFileSystem, network_file_system_mount_protos
|
76
76
|
from .output import _get_output_manager
|
77
77
|
from .parallel_map import (
|
@@ -581,30 +581,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
581
581
|
*entrypoint_mounts.values(),
|
582
582
|
]
|
583
583
|
|
584
|
-
if include_source_mode is IncludeSourceMode.INCLUDE_FIRST_PARTY and is_local():
|
585
|
-
auto_mounts = get_sys_modules_mounts()
|
586
|
-
# don't need to add entrypoint modules to automounts:
|
587
|
-
for entrypoint_module in entrypoint_mounts:
|
588
|
-
auto_mounts.pop(entrypoint_module, None)
|
589
|
-
|
590
|
-
warn_missing_modules = set(auto_mounts.keys()) - image._added_python_source_set
|
591
|
-
|
592
|
-
if warn_missing_modules:
|
593
|
-
python_stringified_modules = ", ".join(f'"{mod}"' for mod in sorted(warn_missing_modules))
|
594
|
-
deprecation_warning(
|
595
|
-
(2025, 2, 3),
|
596
|
-
(
|
597
|
-
'Modal will stop implicitly adding local Python modules to the Image ("automounting") in a '
|
598
|
-
"future update. The following modules need to be explicitly added for future "
|
599
|
-
"compatibility:\n"
|
600
|
-
)
|
601
|
-
+ "\n".join(sorted([f"* {m}" for m in warn_missing_modules]))
|
602
|
-
+ "\n\n"
|
603
|
-
+ (f"e.g.:\nimage_with_source = my_image.add_local_python_source({python_stringified_modules})\n\n")
|
604
|
-
+ "For more information, see https://modal.com/docs/guide/modal-1-0-migration",
|
605
|
-
)
|
606
|
-
all_mounts += auto_mounts.values()
|
607
|
-
|
608
584
|
retry_policy = _parse_retries(
|
609
585
|
retries, f"Function '{info.get_tag()}'" if info.raw_f else f"Class '{info.get_tag()}'"
|
610
586
|
)
|
@@ -324,8 +324,8 @@ def _deserialize_asgi(asgi: api_pb2.Asgi) -> Any:
|
|
324
324
|
elif msg_type == "websocket_send":
|
325
325
|
return {
|
326
326
|
"type": "websocket.send",
|
327
|
-
"bytes": asgi.websocket_send.bytes if asgi.websocket_send.HasField("bytes") else
|
328
|
-
"text": asgi.websocket_send.text if asgi.websocket_send.HasField("text") else
|
327
|
+
**({"bytes": asgi.websocket_send.bytes} if asgi.websocket_send.HasField("bytes") else {}),
|
328
|
+
**({"text": asgi.websocket_send.text} if asgi.websocket_send.HasField("text") else {}),
|
329
329
|
}
|
330
330
|
elif msg_type == "websocket_disconnect":
|
331
331
|
return {
|
@@ -23,7 +23,7 @@ from .._serialization import (
|
|
23
23
|
signature_to_parameter_specs,
|
24
24
|
)
|
25
25
|
from .._traceback import append_modal_tb
|
26
|
-
from ..config import
|
26
|
+
from ..config import logger
|
27
27
|
from ..exception import (
|
28
28
|
DeserializationError,
|
29
29
|
ExecutionError,
|
@@ -627,8 +627,7 @@ class FunctionCreationStatus:
|
|
627
627
|
|
628
628
|
class IncludeSourceMode(enum.Enum):
|
629
629
|
INCLUDE_NOTHING = False # can only be set in source, can't be set in config
|
630
|
-
INCLUDE_MAIN_PACKAGE = True #
|
631
|
-
INCLUDE_FIRST_PARTY = "legacy" # mounts all "local" modules in sys.modules - represented by AUTOMOUNT=1 in config
|
630
|
+
INCLUDE_MAIN_PACKAGE = True # Default behavior
|
632
631
|
|
633
632
|
|
634
633
|
def get_include_source_mode(function_or_app_specific) -> IncludeSourceMode:
|
@@ -650,6 +649,4 @@ def get_include_source_mode(function_or_app_specific) -> IncludeSourceMode:
|
|
650
649
|
# explicitly set in app/function
|
651
650
|
return IncludeSourceMode(function_or_app_specific)
|
652
651
|
|
653
|
-
|
654
|
-
legacy_automount_mode: bool = config.get("automount")
|
655
|
-
return IncludeSourceMode.INCLUDE_FIRST_PARTY if legacy_automount_mode else IncludeSourceMode.INCLUDE_MAIN_PACKAGE
|
652
|
+
return IncludeSourceMode.INCLUDE_MAIN_PACKAGE
|
@@ -15,7 +15,7 @@ from modal import App, Image, Queue, Secret, Volume, forward
|
|
15
15
|
# Passed by `modal launch` locally via CLI, plumbed to remote runner through secrets.
|
16
16
|
args: dict[str, Any] = json.loads(os.environ.get("MODAL_LAUNCH_ARGS", "{}"))
|
17
17
|
|
18
|
-
app = App(
|
18
|
+
app = App()
|
19
19
|
|
20
20
|
image = Image.from_registry(args.get("image"), add_python=args.get("add_python")).pip_install("jupyterlab")
|
21
21
|
|
@@ -22,7 +22,7 @@ CODE_SERVER_ENTRYPOINT = (
|
|
22
22
|
FIXUD_INSTALLER = "https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-$ARCH.tar.gz"
|
23
23
|
|
24
24
|
|
25
|
-
app = App(
|
25
|
+
app = App()
|
26
26
|
image = (
|
27
27
|
Image.from_registry(args.get("image"), add_python="3.11")
|
28
28
|
.apt_install("curl", "dumb-init", "git", "git-lfs")
|
@@ -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 = "1.0.0.
|
34
|
+
version: str = "1.0.0.dev10",
|
35
35
|
): ...
|
36
36
|
def is_closed(self) -> bool: ...
|
37
37
|
@property
|
@@ -94,7 +94,7 @@ class Client:
|
|
94
94
|
server_url: str,
|
95
95
|
client_type: int,
|
96
96
|
credentials: typing.Optional[tuple[str, str]],
|
97
|
-
version: str = "1.0.0.
|
97
|
+
version: str = "1.0.0.dev10",
|
98
98
|
): ...
|
99
99
|
def is_closed(self) -> bool: ...
|
100
100
|
@property
|
@@ -51,10 +51,6 @@ Other possible configuration options are:
|
|
51
51
|
Defaults to 10.
|
52
52
|
Number of seconds to wait for logs to drain when closing the session,
|
53
53
|
before giving up.
|
54
|
-
* `automount` (in the .toml file) / `MODAL_AUTOMOUNT` (as an env var).
|
55
|
-
Defaults to True.
|
56
|
-
By default, Modal automatically mounts modules imported in the current scope, that
|
57
|
-
are deemed to be "local". This can be turned off by setting this to False.
|
58
54
|
* `force_build` (in the .toml file) / `MODAL_FORCE_BUILD` (as an env var).
|
59
55
|
Defaults to False.
|
60
56
|
When set, ignores the Image cache and builds all Image layers. Note that this
|
@@ -233,7 +229,6 @@ _SETTINGS = {
|
|
233
229
|
"sync_entrypoint": _Setting(),
|
234
230
|
"logs_timeout": _Setting(10, float),
|
235
231
|
"image_id": _Setting(),
|
236
|
-
"automount": _Setting(True, transform=_to_boolean),
|
237
232
|
"heartbeat_interval": _Setting(15, float),
|
238
233
|
"function_runtime": _Setting(),
|
239
234
|
"function_runtime_debug": _Setting(False, transform=_to_boolean), # For internal debugging use.
|
@@ -234,11 +234,11 @@ class Function(
|
|
234
234
|
|
235
235
|
_call_generator_nowait: ___call_generator_nowait_spec[typing_extensions.Self]
|
236
236
|
|
237
|
-
class __remote_spec(typing_extensions.Protocol[
|
237
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
238
238
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
239
239
|
async def aio(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
240
240
|
|
241
|
-
remote: __remote_spec[modal._functions.
|
241
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
|
242
242
|
|
243
243
|
class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
|
244
244
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]: ...
|
@@ -253,12 +253,12 @@ class Function(
|
|
253
253
|
self, *args: modal._functions.P.args, **kwargs: modal._functions.P.kwargs
|
254
254
|
) -> modal._functions.OriginalReturnType: ...
|
255
255
|
|
256
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
256
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
257
257
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
258
258
|
async def aio(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
259
259
|
|
260
260
|
_experimental_spawn: ___experimental_spawn_spec[
|
261
|
-
modal._functions.
|
261
|
+
modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
|
262
262
|
]
|
263
263
|
|
264
264
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
|
@@ -267,11 +267,11 @@ class Function(
|
|
267
267
|
|
268
268
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
|
269
269
|
|
270
|
-
class __spawn_spec(typing_extensions.Protocol[
|
270
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
271
271
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
272
272
|
async def aio(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
273
273
|
|
274
|
-
spawn: __spawn_spec[modal._functions.
|
274
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
|
275
275
|
|
276
276
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]: ...
|
277
277
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|