modal 1.2.1.dev1__tar.gz → 1.2.1.dev3__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.2.1.dev1 → modal-1.2.1.dev3}/PKG-INFO +1 -1
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/client.pyi +2 -2
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/runner.py +11 -1
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/api.proto +2 -1
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/api_pb2.py +72 -72
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/api_pb2.pyi +6 -1
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_version/__init__.py +1 -1
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/LICENSE +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/README.md +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/__main__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_billing.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_clustered_functions.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_clustered_functions.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_container_entrypoint.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_functions.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_ipython.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_location.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_object.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_output.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_partial_function.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_pty.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_resolver.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_resources.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/asgi.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/execution_context.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/telemetry.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_serialization.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_traceback.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_tunnel.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_tunnel.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_type_manager.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/app_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/async_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/blob_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/deprecation.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/docker_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/function_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/git_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/hash_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/http_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/logger.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/mount_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/name_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/package_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/shell_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_utils/time_utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_vendor/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_vendor/tblib.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/_watcher.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/app.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/app.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/billing.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/2023.12.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/2024.04.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/2024.10.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/2025.06.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/README.md +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/builder/base-images.json +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/call_graph.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/_download.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/_traceback.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/app.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/cluster.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/config.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/container.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/dict.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/entry_point.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/environment.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/import_refs.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/launch.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/network_file_system.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/profile.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/programs/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/programs/launch_instance_ssh.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/programs/run_marimo.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/programs/vscode.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/queues.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/run.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/secret.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/token.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/utils.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cli/volume.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/client.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cls.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/cls.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/config.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/container_process.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/container_process.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/dict.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/dict.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/environments.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/environments.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/exception.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/experimental/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/experimental/flash.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/experimental/flash.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/experimental/ipython.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/file_io.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/file_io.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/file_pattern_matcher.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/functions.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/functions.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/gpu.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/image.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/image.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/io_streams.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/io_streams.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/mount.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/mount.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/network_file_system.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/network_file_system.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/object.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/object.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/output.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/parallel_map.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/parallel_map.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/partial_function.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/partial_function.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/proxy.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/proxy.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/py.typed +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/queue.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/queue.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/retries.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/runner.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/running_app.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/sandbox.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/sandbox.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/schedule.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/scheduler_placement.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/secret.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/secret.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/serving.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/serving.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/snapshot.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/snapshot.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/stream_type.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/token_flow.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/token_flow.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/volume.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal/volume.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal.egg-info/requires.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal.egg-info/top_level.txt +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_docs/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/__init__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/api_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/py.typed +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/sandbox_router.proto +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/sandbox_router_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/sandbox_router_pb2.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/sandbox_router_pb2.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/task_command_router.proto +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/modal_version/__main__.py +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/pyproject.toml +0 -0
- {modal-1.2.1.dev1 → modal-1.2.1.dev3}/setup.cfg +0 -0
|
@@ -33,7 +33,7 @@ class _Client:
|
|
|
33
33
|
server_url: str,
|
|
34
34
|
client_type: int,
|
|
35
35
|
credentials: typing.Optional[tuple[str, str]],
|
|
36
|
-
version: str = "1.2.1.
|
|
36
|
+
version: str = "1.2.1.dev3",
|
|
37
37
|
):
|
|
38
38
|
"""mdmd:hidden
|
|
39
39
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -164,7 +164,7 @@ class Client:
|
|
|
164
164
|
server_url: str,
|
|
165
165
|
client_type: int,
|
|
166
166
|
credentials: typing.Optional[tuple[str, str]],
|
|
167
|
-
version: str = "1.2.1.
|
|
167
|
+
version: str = "1.2.1.dev3",
|
|
168
168
|
):
|
|
169
169
|
"""mdmd:hidden
|
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -35,7 +35,7 @@ from .client import HEARTBEAT_INTERVAL, HEARTBEAT_TIMEOUT, _Client
|
|
|
35
35
|
from .cls import _Cls
|
|
36
36
|
from .config import config, logger
|
|
37
37
|
from .environments import _get_environment_cached
|
|
38
|
-
from .exception import InteractiveTimeoutError, InvalidError, RemoteError, _CliUserExecutionError
|
|
38
|
+
from .exception import ConnectionError, InteractiveTimeoutError, InvalidError, RemoteError, _CliUserExecutionError
|
|
39
39
|
from .output import _get_output_manager, enable_output
|
|
40
40
|
from .running_app import RunningApp, running_app_from_layout
|
|
41
41
|
from .sandbox import _Sandbox
|
|
@@ -405,6 +405,16 @@ async def _run_app(
|
|
|
405
405
|
)
|
|
406
406
|
)
|
|
407
407
|
return
|
|
408
|
+
except ConnectionError as e:
|
|
409
|
+
# If we lose connection to the server after a detached App has started running, it will continue
|
|
410
|
+
# I think we can only exit "nicely" if we are able to print output though, otherwise we should raise
|
|
411
|
+
if detach and (output_mgr := _get_output_manager()):
|
|
412
|
+
output_mgr.print(
|
|
413
|
+
"Connection lost, but detached App will continue running: "
|
|
414
|
+
f"[magenta]{running_app.app_page_url}[/magenta]"
|
|
415
|
+
)
|
|
416
|
+
return
|
|
417
|
+
raise
|
|
408
418
|
except BaseException as e:
|
|
409
419
|
logger.info("Exception during app run")
|
|
410
420
|
await _status_based_disconnect(client, running_app.app_id, e)
|
|
@@ -3565,13 +3565,14 @@ message WebUrlInfo {
|
|
|
3565
3565
|
message WebhookConfig {
|
|
3566
3566
|
WebhookType type = 1;
|
|
3567
3567
|
string method = 2;
|
|
3568
|
-
string requested_suffix = 4;
|
|
3568
|
+
string requested_suffix = 4; // User-supplied "label" component of URL
|
|
3569
3569
|
WebhookAsyncMode async_mode = 5;
|
|
3570
3570
|
repeated CustomDomainConfig custom_domains = 6;
|
|
3571
3571
|
uint32 web_server_port = 7;
|
|
3572
3572
|
float web_server_startup_timeout = 8;
|
|
3573
3573
|
bool web_endpoint_docs = 9;
|
|
3574
3574
|
bool requires_proxy_auth = 10;
|
|
3575
|
+
string ephemeral_suffix = 11; // Additional URL suffix added for ephemeral Apps
|
|
3575
3576
|
}
|
|
3576
3577
|
|
|
3577
3578
|
|