modal 1.6.0__tar.gz → 1.6.1.dev0__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.6.0 → modal-1.6.1.dev0}/PKG-INFO +1 -1
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_functions.py +2 -2
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_object.py +17 -9
- modal-1.6.1.dev0/modal/cli/endpoint.py +779 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/server.py +170 -107
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/client.pyi +2 -2
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/dict.py +4 -4
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/dict.pyi +9 -9
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/functions.pyi +6 -4
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/network_file_system.py +3 -3
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/network_file_system.pyi +6 -6
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/object.pyi +1 -1
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/parallel_map.py +4 -4
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/parallel_map.pyi +3 -3
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/sandbox.py +15 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/sandbox.pyi +12 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/token_flow.py +2 -1
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/volume.py +2 -2
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/volume.pyi +9 -3
- {modal-1.6.0 → modal-1.6.1.dev0}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_version/__init__.py +1 -1
- modal-1.6.0/modal/cli/endpoint.py +0 -372
- {modal-1.6.0 → modal-1.6.1.dev0}/LICENSE +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/README.md +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/__main__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_billing.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_cluster.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_cluster.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_container_entrypoint.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_environments.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_function_variants.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_grpc_client.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_image.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_ipython.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_load_context.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_location.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_logs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_logs_manager.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_logs_manager.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_outbound_policy.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_outbound_policy.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_output/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_output/manager.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_output/pty.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_output/rich.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_output/status.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_partial_function.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_resolver.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_resources.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/asgi.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/execution_context.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/telemetry.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_serialization.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_server.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_server.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_supports_logs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_traceback.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_tunnel.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_tunnel.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_type_manager.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/app_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/async_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/blob_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/browser_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/curl_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/deprecation.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/display_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/docker_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/function_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/git_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/hash_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/http_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/idle_countdown.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/logger.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/mount_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/name_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/package_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/proxy_support.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/shell_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_utils/time_utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_vendor/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_vendor/tblib.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_vendor/version.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_watcher.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/_workspace.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/app.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/app.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/billing.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/billing.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/2023.12.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/2024.04.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/2024.10.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/2025.06.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/README.md +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/builder/base-images.json +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/call_graph.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/_download.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/_help.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/_logs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/_stats.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/_traceback.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/app.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/billing.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/changelog.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/config.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/container.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/curl.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/dashboard.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/dict.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/entry_point.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/environment.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/function.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/image.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/import_refs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/logo.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/network_file_system.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/profile.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/queues.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/run.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/secret.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/selector.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/shell.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/skills.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/token.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/utils.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/volume.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cli/workspace.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/client.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cls.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cls.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cluster.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/cluster.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/config.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/container_process.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/container_process.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/environments.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/environments.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/exception.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/_flash_container_entry.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/flash.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/flash.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/flash_server.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/flash_server.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/experimental/ipython.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/file_pattern_matcher.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/functions.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/image.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/image.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/io_streams.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/io_streams.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/mount.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/mount.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/object.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/output.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/partial_function.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/partial_function.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/proxy.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/proxy.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/py.typed +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/queue.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/queue.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/retries.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/runner.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/runner.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/running_app.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/sandbox_fs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/sandbox_fs.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/schedule.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/scheduler_placement.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/secret.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/secret.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/server.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/server.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/serving.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/serving.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/snapshot.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/snapshot.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/stream_type.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/token_flow.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/types.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/workspace.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal/workspace.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal.egg-info/requires.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal.egg-info/top_level.txt +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/mdmd/types.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_docs/reference_intro.md +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/__init__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/api_grpc.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/api_pb2.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/py.typed +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/modal_version/__main__.py +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/pyproject.toml +0 -0
- {modal-1.6.0 → modal-1.6.1.dev0}/setup.cfg +0 -0
|
@@ -7,7 +7,7 @@ import time
|
|
|
7
7
|
import typing
|
|
8
8
|
import warnings
|
|
9
9
|
from collections import OrderedDict
|
|
10
|
-
from collections.abc import AsyncGenerator,
|
|
10
|
+
from collections.abc import AsyncGenerator, Callable, Collection, Sequence
|
|
11
11
|
from dataclasses import dataclass
|
|
12
12
|
from datetime import datetime, timedelta, timezone
|
|
13
13
|
from pathlib import PurePosixPath
|
|
@@ -2405,7 +2405,7 @@ class _FunctionCall(typing.Generic[ReturnType], _Object, type_prefix="fc"):
|
|
|
2405
2405
|
return await self._invocation().poll_function(timeout=timeout, index=index)
|
|
2406
2406
|
|
|
2407
2407
|
@live_method_gen
|
|
2408
|
-
async def iter(self, *, start: int = 0, end: int | None = None) ->
|
|
2408
|
+
async def iter(self, *, start: int = 0, end: int | None = None) -> AsyncGenerator[ReturnType, None]:
|
|
2409
2409
|
"""Iterate in-order over the results of the function call.
|
|
2410
2410
|
|
|
2411
2411
|
Optionally, specify a range [start, end) to iterate over.
|
|
@@ -4,10 +4,10 @@ import typing
|
|
|
4
4
|
import uuid
|
|
5
5
|
from collections.abc import Awaitable, Callable, Hashable, Sequence
|
|
6
6
|
from functools import wraps
|
|
7
|
-
from typing import ClassVar
|
|
7
|
+
from typing import Any, AsyncContextManager, AsyncGenerator, AsyncIterator, ClassVar, ParamSpec, TypeVar
|
|
8
8
|
|
|
9
9
|
from google.protobuf.message import Message
|
|
10
|
-
from typing_extensions import Self
|
|
10
|
+
from typing_extensions import Concatenate, Self
|
|
11
11
|
|
|
12
12
|
from ._load_context import LoadContext
|
|
13
13
|
from ._resolver import Resolver
|
|
@@ -38,18 +38,24 @@ def _get_environment_name(
|
|
|
38
38
|
return config.get("environment") or ""
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
P = ParamSpec("P")
|
|
42
|
+
T = TypeVar("T")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def live_method(method: Callable[Concatenate[Any, P], Awaitable[T]]) -> Callable[Concatenate[Any, P], Awaitable[T]]:
|
|
42
46
|
@wraps(method)
|
|
43
|
-
async def wrapped(self, *args, **kwargs):
|
|
47
|
+
async def wrapped(self, *args: P.args, **kwargs: P.kwargs) -> T:
|
|
44
48
|
await self.hydrate()
|
|
45
49
|
return await method(self, *args, **kwargs)
|
|
46
50
|
|
|
47
51
|
return wrapped
|
|
48
52
|
|
|
49
53
|
|
|
50
|
-
def live_method_gen(
|
|
54
|
+
def live_method_gen(
|
|
55
|
+
method: Callable[Concatenate[Any, P], AsyncGenerator[T, None]],
|
|
56
|
+
) -> Callable[Concatenate[Any, P], AsyncIterator[T]]:
|
|
51
57
|
@wraps(method)
|
|
52
|
-
async def wrapped(self, *args, **kwargs):
|
|
58
|
+
async def wrapped(self, *args: P.args, **kwargs: P.kwargs) -> AsyncIterator[T]:
|
|
53
59
|
await self.hydrate()
|
|
54
60
|
async with aclosing(method(self, *args, **kwargs)) as stream:
|
|
55
61
|
async for item in stream:
|
|
@@ -58,14 +64,16 @@ def live_method_gen(method):
|
|
|
58
64
|
return wrapped
|
|
59
65
|
|
|
60
66
|
|
|
61
|
-
def live_method_contextmanager(
|
|
67
|
+
def live_method_contextmanager(
|
|
68
|
+
method: Callable[Concatenate[Any, P], AsyncContextManager[T]],
|
|
69
|
+
) -> Callable[Concatenate[Any, P], AsyncContextManager[T]]:
|
|
62
70
|
# make sure a wrapped function returning an async context manager
|
|
63
71
|
# will not require both an `await func.aio()` and `async with`
|
|
64
72
|
# which would have been the case if it was wrapped in live_method
|
|
65
73
|
|
|
66
74
|
@wraps(method)
|
|
67
75
|
@contextlib.asynccontextmanager
|
|
68
|
-
async def wrapped(self, *args, **kwargs):
|
|
76
|
+
async def wrapped(self, *args: P.args, **kwargs: P.kwargs):
|
|
69
77
|
await self.hydrate()
|
|
70
78
|
async with method(self, *args, **kwargs) as ctx:
|
|
71
79
|
yield ctx
|
|
@@ -75,7 +83,7 @@ def live_method_contextmanager(method):
|
|
|
75
83
|
|
|
76
84
|
class _Object:
|
|
77
85
|
_type_prefix: ClassVar[str | None] = None
|
|
78
|
-
_prefix_to_type: ClassVar[dict[str, type]] = {}
|
|
86
|
+
_prefix_to_type: ClassVar[dict[str, type["_Object"]]] = {}
|
|
79
87
|
|
|
80
88
|
# For constructors
|
|
81
89
|
_load: Callable[[Self, Resolver, LoadContext, str | None], Awaitable[None]] | None = None
|