modal 1.4.3.dev17__tar.gz → 1.4.3.dev18__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-1.4.3.dev17 → modal-1.4.3.dev18}/PKG-INFO +1 -1
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/blob_utils.py +10 -3
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/client.pyi +2 -2
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/file_io.py +0 -7
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/functions.pyi +6 -6
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/sandbox.py +0 -3
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_version/__init__.py +1 -1
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/LICENSE +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/README.md +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/__main__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_billing.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_clustered_functions.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_clustered_functions.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_container_entrypoint.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_environments.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_functions.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_grpc_client.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_ipython.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_load_context.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_location.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_logs.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_object.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_output/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_output/manager.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_output/pty.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_output/rich.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_output/status.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_partial_function.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_resolver.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_resources.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/asgi.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/execution_context.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/telemetry.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_serialization.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_server.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_traceback.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_tunnel.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_tunnel.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_type_manager.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/app_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/async_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/browser_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/deprecation.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/docker_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/function_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/git_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/hash_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/http_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/logger.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/mount_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/name_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/package_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/shell_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_utils/time_utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_vendor/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_vendor/tblib.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_vendor/version.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/_watcher.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/app.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/app.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/billing.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/2023.12.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/2024.04.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/2024.10.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/2025.06.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/README.md +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/builder/base-images.json +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/call_graph.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/_download.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/_help.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/_traceback.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/app.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/billing.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/bootstrap.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/changelog.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/cluster.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/config.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/container.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/dashboard.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/dict.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/entry_point.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/environment.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/import_refs.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/launch.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/logo.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/network_file_system.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/profile.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/programs/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/programs/vscode.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/queues.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/run.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/secret.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/selector.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/shell.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/token.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/utils.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cli/volume.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/client.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cls.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/cls.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/config.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/container_process.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/container_process.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/dict.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/dict.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/environments.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/environments.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/exception.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/experimental/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/experimental/flash.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/experimental/flash.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/experimental/ipython.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/file_io.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/file_pattern_matcher.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/functions.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/image.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/image.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/io_streams.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/io_streams.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/mount.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/mount.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/network_file_system.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/network_file_system.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/object.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/object.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/output.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/parallel_map.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/parallel_map.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/partial_function.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/partial_function.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/proxy.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/proxy.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/py.typed +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/queue.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/queue.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/retries.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/runner.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/runner.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/running_app.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/sandbox.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/sandbox_fs.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/sandbox_fs.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/schedule.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/scheduler_placement.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/secret.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/secret.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/server.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/server.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/serving.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/serving.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/snapshot.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/snapshot.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/stream_type.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/token_flow.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/token_flow.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/volume.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal/volume.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal.egg-info/requires.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal.egg-info/top_level.txt +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/__init__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/api_grpc.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/api_pb2.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/py.typed +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/modal_version/__main__.py +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/pyproject.toml +0 -0
- {modal-1.4.3.dev17 → modal-1.4.3.dev18}/setup.cfg +0 -0
|
@@ -717,7 +717,14 @@ def use_md5(url: str) -> bool:
|
|
|
717
717
|
host = urlparse(url).netloc.split(":")[0]
|
|
718
718
|
if host.endswith(".amazonaws.com") or host.endswith(".r2.cloudflarestorage.com"):
|
|
719
719
|
return True
|
|
720
|
-
|
|
720
|
+
if host == "localhost":
|
|
721
721
|
return False
|
|
722
|
-
|
|
723
|
-
|
|
722
|
+
try:
|
|
723
|
+
import ipaddress
|
|
724
|
+
|
|
725
|
+
addr = ipaddress.ip_address(host)
|
|
726
|
+
if addr.is_private or addr.is_loopback:
|
|
727
|
+
return False
|
|
728
|
+
except ValueError:
|
|
729
|
+
pass
|
|
730
|
+
raise Exception(f"Unknown S3 host: {host}")
|
|
@@ -35,7 +35,7 @@ class _Client:
|
|
|
35
35
|
server_url: str,
|
|
36
36
|
client_type: int,
|
|
37
37
|
credentials: typing.Optional[tuple[str, str]],
|
|
38
|
-
version: str = "1.4.3.
|
|
38
|
+
version: str = "1.4.3.dev18",
|
|
39
39
|
):
|
|
40
40
|
"""mdmd:hidden
|
|
41
41
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -175,7 +175,7 @@ class Client:
|
|
|
175
175
|
server_url: str,
|
|
176
176
|
client_type: int,
|
|
177
177
|
credentials: typing.Optional[tuple[str, str]],
|
|
178
|
-
version: str = "1.4.3.
|
|
178
|
+
version: str = "1.4.3.dev18",
|
|
179
179
|
):
|
|
180
180
|
"""mdmd:hidden
|
|
181
181
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -248,7 +248,6 @@ class _FileIO(Generic[T]):
|
|
|
248
248
|
"`FileIO.read()` is deprecated."
|
|
249
249
|
" Use `Sandbox.filesystem.read_text()`, `Sandbox.filesystem.read_bytes()`,"
|
|
250
250
|
" or `Sandbox.filesystem.copy_to_local()` instead.",
|
|
251
|
-
pending=True,
|
|
252
251
|
)
|
|
253
252
|
self._check_closed()
|
|
254
253
|
self._check_readable()
|
|
@@ -266,7 +265,6 @@ class _FileIO(Generic[T]):
|
|
|
266
265
|
"`FileIO.readline()` is deprecated."
|
|
267
266
|
" Use `Sandbox.filesystem.read_text()`, `Sandbox.filesystem.read_bytes()`,"
|
|
268
267
|
" or `Sandbox.filesystem.copy_to_local()` instead.",
|
|
269
|
-
pending=True,
|
|
270
268
|
)
|
|
271
269
|
self._check_closed()
|
|
272
270
|
self._check_readable()
|
|
@@ -288,7 +286,6 @@ class _FileIO(Generic[T]):
|
|
|
288
286
|
"`FileIO.readlines()` is deprecated."
|
|
289
287
|
" Use `Sandbox.filesystem.read_text()`, `Sandbox.filesystem.read_bytes()`,"
|
|
290
288
|
" or `Sandbox.filesystem.copy_to_local()` instead.",
|
|
291
|
-
pending=True,
|
|
292
289
|
)
|
|
293
290
|
self._check_closed()
|
|
294
291
|
self._check_readable()
|
|
@@ -314,7 +311,6 @@ class _FileIO(Generic[T]):
|
|
|
314
311
|
"`FileIO.write()` is deprecated."
|
|
315
312
|
" Use `Sandbox.filesystem.write_text()`, `Sandbox.filesystem.write_bytes()`,"
|
|
316
313
|
" or `Sandbox.filesystem.copy_from_local()` instead.",
|
|
317
|
-
pending=True,
|
|
318
314
|
)
|
|
319
315
|
self._check_closed()
|
|
320
316
|
self._check_writable()
|
|
@@ -343,7 +339,6 @@ class _FileIO(Generic[T]):
|
|
|
343
339
|
"`FileIO.flush()` is deprecated."
|
|
344
340
|
" Use `Sandbox.filesystem.write_text()`, `Sandbox.filesystem.write_bytes()`,"
|
|
345
341
|
" or `Sandbox.filesystem.copy_from_local()` instead.",
|
|
346
|
-
pending=True,
|
|
347
342
|
)
|
|
348
343
|
self._check_closed()
|
|
349
344
|
self._check_writable()
|
|
@@ -407,7 +402,6 @@ class _FileIO(Generic[T]):
|
|
|
407
402
|
deprecation_warning(
|
|
408
403
|
(2026, 3, 9),
|
|
409
404
|
"`FileIO.mkdir()` is deprecated. Use `Sandbox.filesystem.make_directory()` instead.",
|
|
410
|
-
pending=True,
|
|
411
405
|
)
|
|
412
406
|
await mkdir(path, client, task_id, parents)
|
|
413
407
|
|
|
@@ -417,7 +411,6 @@ class _FileIO(Generic[T]):
|
|
|
417
411
|
deprecation_warning(
|
|
418
412
|
(2026, 3, 9),
|
|
419
413
|
"`FileIO.rm()` is deprecated. Use `Sandbox.filesystem.remove()` instead.",
|
|
420
|
-
pending=True,
|
|
421
414
|
)
|
|
422
415
|
await rm(path, client, task_id, recursive)
|
|
423
416
|
|
|
@@ -347,7 +347,7 @@ class Function(
|
|
|
347
347
|
|
|
348
348
|
_call_generator: ___call_generator_spec
|
|
349
349
|
|
|
350
|
-
class __remote_spec(typing_extensions.Protocol[
|
|
350
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
351
351
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
|
352
352
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
|
353
353
|
...
|
|
@@ -356,7 +356,7 @@ class Function(
|
|
|
356
356
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
|
357
357
|
...
|
|
358
358
|
|
|
359
|
-
remote: __remote_spec[modal._functions.
|
|
359
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
|
|
360
360
|
|
|
361
361
|
class __remote_gen_spec(typing_extensions.Protocol):
|
|
362
362
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
|
@@ -383,7 +383,7 @@ class Function(
|
|
|
383
383
|
"""
|
|
384
384
|
...
|
|
385
385
|
|
|
386
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
|
386
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
387
387
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
388
388
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
|
389
389
|
|
|
@@ -406,7 +406,7 @@ class Function(
|
|
|
406
406
|
"""
|
|
407
407
|
...
|
|
408
408
|
|
|
409
|
-
_experimental_spawn: ___experimental_spawn_spec[modal._functions.
|
|
409
|
+
_experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
410
410
|
|
|
411
411
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
|
|
412
412
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
|
|
@@ -414,7 +414,7 @@ class Function(
|
|
|
414
414
|
|
|
415
415
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
|
|
416
416
|
|
|
417
|
-
class __spawn_spec(typing_extensions.Protocol[
|
|
417
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
418
418
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
419
419
|
"""Calls the function with the given arguments, without waiting for the results.
|
|
420
420
|
|
|
@@ -435,7 +435,7 @@ class Function(
|
|
|
435
435
|
"""
|
|
436
436
|
...
|
|
437
437
|
|
|
438
|
-
spawn: __spawn_spec[modal._functions.
|
|
438
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
439
439
|
|
|
440
440
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
|
|
441
441
|
"""Return the inner Python object wrapped by this Modal Function."""
|
|
@@ -1635,7 +1635,6 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
1635
1635
|
deprecation_warning(
|
|
1636
1636
|
(2026, 3, 9),
|
|
1637
1637
|
"`Sandbox.open()` is deprecated. Use the `Sandbox.filesystem` APIs instead.",
|
|
1638
|
-
pending=True,
|
|
1639
1638
|
)
|
|
1640
1639
|
task_id = await self._get_task_id()
|
|
1641
1640
|
return await _FileIO.create(path, mode, self._client, task_id)
|
|
@@ -1664,7 +1663,6 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
1664
1663
|
deprecation_warning(
|
|
1665
1664
|
(2026, 4, 15),
|
|
1666
1665
|
"`Sandbox.mkdir()` is deprecated. Use `Sandbox.filesystem.make_directory()` instead.",
|
|
1667
|
-
pending=True,
|
|
1668
1666
|
)
|
|
1669
1667
|
task_id = await self._get_task_id()
|
|
1670
1668
|
return await mkdir(path, self._client, task_id, parents)
|
|
@@ -1679,7 +1677,6 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
1679
1677
|
deprecation_warning(
|
|
1680
1678
|
(2026, 4, 15),
|
|
1681
1679
|
"`Sandbox.rm()` is deprecated. Use `Sandbox.filesystem.remove()` instead.",
|
|
1682
|
-
pending=True,
|
|
1683
1680
|
)
|
|
1684
1681
|
task_id = await self._get_task_id()
|
|
1685
1682
|
return await rm(path, self._client, task_id, recursive)
|
|
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
|
|
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
|