modAL 1.2.5.dev5__tar.gz → 1.2.5.dev7__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.2.5.dev5 → modal-1.2.5.dev7}/PKG-INFO +1 -1
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/grpc_utils.py +3 -1
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/client.pyi +2 -2
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/io_streams.py +7 -6
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_version/__init__.py +1 -1
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/LICENSE +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/README.md +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/__main__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_billing.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_clustered_functions.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_clustered_functions.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_container_entrypoint.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_functions.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_grpc_client.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_ipython.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_load_context.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_location.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_object.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_output.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_partial_function.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_pty.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_resolver.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_resources.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/asgi.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/execution_context.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/telemetry.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_serialization.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_traceback.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_tunnel.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_tunnel.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_type_manager.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/app_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/async_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/blob_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/deprecation.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/docker_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/function_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/git_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/hash_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/http_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/logger.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/mount_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/name_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/package_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/shell_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_utils/time_utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_vendor/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_vendor/tblib.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/_watcher.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/app.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/app.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/billing.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/2023.12.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/2024.04.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/2024.10.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/2025.06.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/README.md +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/builder/base-images.json +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/call_graph.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/_download.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/_traceback.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/app.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/cluster.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/config.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/container.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/dict.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/entry_point.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/environment.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/import_refs.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/launch.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/network_file_system.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/profile.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/programs/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/programs/launch_instance_ssh.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/programs/run_marimo.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/programs/vscode.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/queues.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/run.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/secret.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/shell.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/token.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/utils.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cli/volume.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/client.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cls.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/cls.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/config.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/container_process.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/container_process.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/dict.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/dict.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/environments.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/environments.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/exception.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/experimental/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/experimental/flash.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/experimental/flash.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/experimental/ipython.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/file_io.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/file_io.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/file_pattern_matcher.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/functions.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/functions.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/gpu.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/image.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/image.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/io_streams.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/mount.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/mount.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/network_file_system.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/network_file_system.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/object.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/object.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/output.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/parallel_map.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/parallel_map.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/partial_function.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/partial_function.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/proxy.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/proxy.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/py.typed +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/queue.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/queue.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/retries.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/runner.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/runner.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/running_app.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/sandbox.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/sandbox.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/schedule.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/scheduler_placement.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/secret.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/secret.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/serving.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/serving.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/snapshot.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/snapshot.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/stream_type.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/token_flow.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/token_flow.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/volume.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal/volume.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal.egg-info/requires.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal.egg-info/top_level.txt +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_docs/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/__init__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/api.proto +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/api_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/api_pb2.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/py.typed +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/sandbox_router.proto +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/sandbox_router_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/sandbox_router_pb2.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/sandbox_router_pb2.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/task_command_router.proto +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/modal_version/__main__.py +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/pyproject.toml +0 -0
- {modal-1.2.5.dev5 → modal-1.2.5.dev7}/setup.cfg +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Copyright Modal Labs 2022
|
|
2
2
|
import asyncio
|
|
3
3
|
import contextlib
|
|
4
|
+
import os
|
|
4
5
|
import platform
|
|
5
6
|
import socket
|
|
6
7
|
import time
|
|
@@ -396,7 +397,8 @@ async def _retry_transient_errors(
|
|
|
396
397
|
):
|
|
397
398
|
last_server_retry_warning_time = now
|
|
398
399
|
logger.warning(
|
|
399
|
-
f"Warning: Received {exc.status}
|
|
400
|
+
f"Warning: Received {exc.status}{os.linesep}"
|
|
401
|
+
f"{exc.message}{os.linesep}"
|
|
400
402
|
f"Will retry in {server_delay:0.2f} seconds."
|
|
401
403
|
)
|
|
402
404
|
|
|
@@ -32,7 +32,7 @@ class _Client:
|
|
|
32
32
|
server_url: str,
|
|
33
33
|
client_type: int,
|
|
34
34
|
credentials: typing.Optional[tuple[str, str]],
|
|
35
|
-
version: str = "1.2.5.
|
|
35
|
+
version: str = "1.2.5.dev7",
|
|
36
36
|
):
|
|
37
37
|
"""mdmd:hidden
|
|
38
38
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -163,7 +163,7 @@ class Client:
|
|
|
163
163
|
server_url: str,
|
|
164
164
|
client_type: int,
|
|
165
165
|
credentials: typing.Optional[tuple[str, str]],
|
|
166
|
-
version: str = "1.2.5.
|
|
166
|
+
version: str = "1.2.5.dev7",
|
|
167
167
|
):
|
|
168
168
|
"""mdmd:hidden
|
|
169
169
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import asyncio
|
|
3
3
|
import codecs
|
|
4
4
|
import contextlib
|
|
5
|
+
import io
|
|
5
6
|
import sys
|
|
6
7
|
import time
|
|
7
8
|
from collections.abc import AsyncGenerator, AsyncIterator
|
|
@@ -403,10 +404,10 @@ class _BytesStreamReaderThroughCommandRouter:
|
|
|
403
404
|
return self._params.file_descriptor
|
|
404
405
|
|
|
405
406
|
async def read(self) -> bytes:
|
|
406
|
-
|
|
407
|
+
buffer = io.BytesIO()
|
|
407
408
|
async for part in self:
|
|
408
|
-
|
|
409
|
-
return
|
|
409
|
+
buffer.write(part)
|
|
410
|
+
return buffer.getvalue()
|
|
410
411
|
|
|
411
412
|
def __aiter__(self) -> AsyncGenerator[bytes, None]:
|
|
412
413
|
return _stdio_stream_from_command_router(self._params)
|
|
@@ -438,10 +439,10 @@ class _TextStreamReaderThroughCommandRouter:
|
|
|
438
439
|
return self._params.file_descriptor
|
|
439
440
|
|
|
440
441
|
async def read(self) -> str:
|
|
441
|
-
|
|
442
|
+
buffer = io.StringIO()
|
|
442
443
|
async for part in self:
|
|
443
|
-
|
|
444
|
-
return
|
|
444
|
+
buffer.write(part)
|
|
445
|
+
return buffer.getvalue()
|
|
445
446
|
|
|
446
447
|
async def __aiter__(self) -> AsyncGenerator[str, None]:
|
|
447
448
|
async with aclosing(_stdio_stream_from_command_router(self._params)) as bytes_stream:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|