modal 0.77.1.dev0__py3-none-any.whl → 1.0.0__py3-none-any.whl
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/__init__.py +10 -4
- modal/_functions.py +15 -90
- modal/_object.py +0 -14
- modal/_partial_function.py +4 -14
- modal/_serialization.py +2 -2
- modal/_utils/function_utils.py +3 -6
- modal/_utils/grpc_utils.py +6 -1
- modal/app.py +1 -104
- modal/app.pyi +0 -127
- modal/cli/app.py +0 -19
- modal/cli/programs/run_jupyter.py +1 -1
- modal/cli/programs/vscode.py +1 -1
- modal/client.pyi +2 -10
- modal/cls.py +9 -14
- modal/cls.pyi +2 -17
- modal/config.py +5 -16
- modal/container_process.py +1 -9
- modal/container_process.pyi +3 -3
- modal/dict.py +3 -5
- modal/environments.py +1 -3
- modal/exception.py +1 -1
- modal/functions.pyi +8 -29
- modal/image.py +12 -36
- modal/image.pyi +2 -5
- modal/mount.py +2 -65
- modal/mount.pyi +0 -1
- modal/network_file_system.py +3 -5
- modal/object.pyi +0 -6
- modal/queue.py +3 -5
- modal/runner.py +2 -19
- modal/runner.pyi +0 -5
- modal/sandbox.py +78 -32
- modal/sandbox.pyi +102 -7
- modal/secret.py +1 -3
- modal/serving.py +0 -6
- modal/serving.pyi +0 -3
- modal/volume.py +8 -17
- {modal-0.77.1.dev0.dist-info → modal-1.0.0.dist-info}/METADATA +1 -1
- {modal-0.77.1.dev0.dist-info → modal-1.0.0.dist-info}/RECORD +51 -51
- modal_proto/api.proto +29 -2
- modal_proto/api_grpc.py +32 -0
- modal_proto/api_pb2.py +788 -756
- modal_proto/api_pb2.pyi +86 -12
- modal_proto/api_pb2_grpc.py +66 -0
- modal_proto/api_pb2_grpc.pyi +20 -0
- modal_proto/modal_api_grpc.py +2 -0
- modal_version/__init__.py +1 -1
- {modal-0.77.1.dev0.dist-info → modal-1.0.0.dist-info}/WHEEL +0 -0
- {modal-0.77.1.dev0.dist-info → modal-1.0.0.dist-info}/entry_points.txt +0 -0
- {modal-0.77.1.dev0.dist-info → modal-1.0.0.dist-info}/licenses/LICENSE +0 -0
- {modal-0.77.1.dev0.dist-info → modal-1.0.0.dist-info}/top_level.txt +0 -0
modal_proto/api_pb2.pyi
CHANGED
@@ -2193,14 +2193,11 @@ class ClassGetRequest(google.protobuf.message.Message):
|
|
2193
2193
|
OBJECT_TAG_FIELD_NUMBER: builtins.int
|
2194
2194
|
NAMESPACE_FIELD_NUMBER: builtins.int
|
2195
2195
|
ENVIRONMENT_NAME_FIELD_NUMBER: builtins.int
|
2196
|
-
LOOKUP_PUBLISHED_FIELD_NUMBER: builtins.int
|
2197
2196
|
ONLY_CLASS_FUNCTION_FIELD_NUMBER: builtins.int
|
2198
2197
|
app_name: builtins.str
|
2199
2198
|
object_tag: builtins.str
|
2200
2199
|
namespace: global___DeploymentNamespace.ValueType
|
2201
2200
|
environment_name: builtins.str
|
2202
|
-
lookup_published: builtins.bool
|
2203
|
-
"""Lookup class on app published by another workspace"""
|
2204
2201
|
only_class_function: builtins.bool
|
2205
2202
|
"""True starting with 0.67.x clients, which don't create method placeholder functions"""
|
2206
2203
|
def __init__(
|
@@ -2210,10 +2207,9 @@ class ClassGetRequest(google.protobuf.message.Message):
|
|
2210
2207
|
object_tag: builtins.str = ...,
|
2211
2208
|
namespace: global___DeploymentNamespace.ValueType = ...,
|
2212
2209
|
environment_name: builtins.str = ...,
|
2213
|
-
lookup_published: builtins.bool = ...,
|
2214
2210
|
only_class_function: builtins.bool = ...,
|
2215
2211
|
) -> None: ...
|
2216
|
-
def ClearField(self, field_name: typing_extensions.Literal["app_name", b"app_name", "environment_name", b"environment_name", "
|
2212
|
+
def ClearField(self, field_name: typing_extensions.Literal["app_name", b"app_name", "environment_name", b"environment_name", "namespace", b"namespace", "object_tag", b"object_tag", "only_class_function", b"only_class_function"]) -> None: ...
|
2217
2213
|
|
2218
2214
|
global___ClassGetRequest = ClassGetRequest
|
2219
2215
|
|
@@ -4177,6 +4173,7 @@ class Function(google.protobuf.message.Message):
|
|
4177
4173
|
AUTOSCALER_SETTINGS_FIELD_NUMBER: builtins.int
|
4178
4174
|
FUNCTION_SCHEMA_FIELD_NUMBER: builtins.int
|
4179
4175
|
EXPERIMENTAL_OPTIONS_FIELD_NUMBER: builtins.int
|
4176
|
+
MOUNT_CLIENT_DEPENDENCIES_FIELD_NUMBER: builtins.int
|
4180
4177
|
module_name: builtins.str
|
4181
4178
|
function_name: builtins.str
|
4182
4179
|
@property
|
@@ -4305,6 +4302,10 @@ class Function(google.protobuf.message.Message):
|
|
4305
4302
|
Note the value type as string. Internally we'll coerce all values to string with str().
|
4306
4303
|
On the server, it's necessary to convert back to the most natural type (e.g. int) when relevant.
|
4307
4304
|
"""
|
4305
|
+
mount_client_dependencies: builtins.bool
|
4306
|
+
"""If set, client deps will be mounted into the container, and are
|
4307
|
+
no longer expected to exist in the image itself.
|
4308
|
+
"""
|
4308
4309
|
def __init__(
|
4309
4310
|
self,
|
4310
4311
|
*,
|
@@ -4376,9 +4377,10 @@ class Function(google.protobuf.message.Message):
|
|
4376
4377
|
autoscaler_settings: global___AutoscalerSettings | None = ...,
|
4377
4378
|
function_schema: global___FunctionSchema | None = ...,
|
4378
4379
|
experimental_options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
|
4380
|
+
mount_client_dependencies: builtins.bool = ...,
|
4379
4381
|
) -> None: ...
|
4380
4382
|
def HasField(self, field_name: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip", "_cloud_provider", b"_cloud_provider", "_experimental_proxy_ip", b"_experimental_proxy_ip", "_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "autoscaler_settings", b"autoscaler_settings", "checkpoint", b"checkpoint", "class_parameter_info", b"class_parameter_info", "cloud_provider", b"cloud_provider", "function_schema", b"function_schema", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "rate_limit", b"rate_limit", "resources", b"resources", "retry_policy", b"retry_policy", "schedule", b"schedule", "scheduler_placement", b"scheduler_placement", "web_url_info", b"web_url_info", "webhook_config", b"webhook_config"]) -> builtins.bool: ...
|
4381
|
-
def ClearField(self, field_name: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip", "_cloud_provider", b"_cloud_provider", "_experimental_buffer_containers", b"_experimental_buffer_containers", "_experimental_concurrent_cancellations", b"_experimental_concurrent_cancellations", "_experimental_custom_scaling", b"_experimental_custom_scaling", "_experimental_enable_gpu_snapshot", b"_experimental_enable_gpu_snapshot", "_experimental_group_size", b"_experimental_group_size", "_experimental_proxy_ip", b"_experimental_proxy_ip", "_experimental_task_templates", b"_experimental_task_templates", "_experimental_task_templates_enabled", b"_experimental_task_templates_enabled", "_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "app_name", b"app_name", "autoscaler_settings", b"autoscaler_settings", "batch_linger_ms", b"batch_linger_ms", "batch_max_size", b"batch_max_size", "block_network", b"block_network", "checkpoint", b"checkpoint", "checkpointing_enabled", b"checkpointing_enabled", "class_parameter_info", b"class_parameter_info", "class_serialized", b"class_serialized", "cloud_bucket_mounts", b"cloud_bucket_mounts", "cloud_provider", b"cloud_provider", "cloud_provider_str", b"cloud_provider_str", "concurrency_limit", b"concurrency_limit", "custom_domain_info", b"custom_domain_info", "definition_type", b"definition_type", "experimental_options", b"experimental_options", "function_name", b"function_name", "function_schema", b"function_schema", "function_serialized", b"function_serialized", "function_type", b"function_type", "i6pn_enabled", b"i6pn_enabled", "image_id", b"image_id", "is_auto_snapshot", b"is_auto_snapshot", "is_builder_function", b"is_builder_function", "is_checkpointing_function", b"is_checkpointing_function", "is_class", b"is_class", "is_method", b"is_method", "max_concurrent_inputs", b"max_concurrent_inputs", "max_inputs", b"max_inputs", "method_definitions", b"method_definitions", "method_definitions_set", b"method_definitions_set", "module_name", b"module_name", "mount_ids", b"mount_ids", "object_dependencies", b"object_dependencies", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "rate_limit", b"rate_limit", "resources", b"resources", "retry_policy", b"retry_policy", "runtime", b"runtime", "runtime_debug", b"runtime_debug", "runtime_perf_record", b"runtime_perf_record", "s3_mounts", b"s3_mounts", "schedule", b"schedule", "scheduler_placement", b"scheduler_placement", "secret_ids", b"secret_ids", "shared_volume_mounts", b"shared_volume_mounts", "snapshot_debug", b"snapshot_debug", "target_concurrent_inputs", b"target_concurrent_inputs", "task_idle_timeout_secs", b"task_idle_timeout_secs", "timeout_secs", b"timeout_secs", "untrusted", b"untrusted", "use_function_id", b"use_function_id", "use_method_name", b"use_method_name", "volume_mounts", b"volume_mounts", "warm_pool_size", b"warm_pool_size", "web_url", b"web_url", "web_url_info", b"web_url_info", "webhook_config", b"webhook_config", "worker_id", b"worker_id"]) -> None: ...
|
4383
|
+
def ClearField(self, field_name: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip", "_cloud_provider", b"_cloud_provider", "_experimental_buffer_containers", b"_experimental_buffer_containers", "_experimental_concurrent_cancellations", b"_experimental_concurrent_cancellations", "_experimental_custom_scaling", b"_experimental_custom_scaling", "_experimental_enable_gpu_snapshot", b"_experimental_enable_gpu_snapshot", "_experimental_group_size", b"_experimental_group_size", "_experimental_proxy_ip", b"_experimental_proxy_ip", "_experimental_task_templates", b"_experimental_task_templates", "_experimental_task_templates_enabled", b"_experimental_task_templates_enabled", "_proxy_id", b"_proxy_id", "_scheduler_placement", b"_scheduler_placement", "app_name", b"app_name", "autoscaler_settings", b"autoscaler_settings", "batch_linger_ms", b"batch_linger_ms", "batch_max_size", b"batch_max_size", "block_network", b"block_network", "checkpoint", b"checkpoint", "checkpointing_enabled", b"checkpointing_enabled", "class_parameter_info", b"class_parameter_info", "class_serialized", b"class_serialized", "cloud_bucket_mounts", b"cloud_bucket_mounts", "cloud_provider", b"cloud_provider", "cloud_provider_str", b"cloud_provider_str", "concurrency_limit", b"concurrency_limit", "custom_domain_info", b"custom_domain_info", "definition_type", b"definition_type", "experimental_options", b"experimental_options", "function_name", b"function_name", "function_schema", b"function_schema", "function_serialized", b"function_serialized", "function_type", b"function_type", "i6pn_enabled", b"i6pn_enabled", "image_id", b"image_id", "is_auto_snapshot", b"is_auto_snapshot", "is_builder_function", b"is_builder_function", "is_checkpointing_function", b"is_checkpointing_function", "is_class", b"is_class", "is_method", b"is_method", "max_concurrent_inputs", b"max_concurrent_inputs", "max_inputs", b"max_inputs", "method_definitions", b"method_definitions", "method_definitions_set", b"method_definitions_set", "module_name", b"module_name", "mount_client_dependencies", b"mount_client_dependencies", "mount_ids", b"mount_ids", "object_dependencies", b"object_dependencies", "proxy_id", b"proxy_id", "pty_info", b"pty_info", "rate_limit", b"rate_limit", "resources", b"resources", "retry_policy", b"retry_policy", "runtime", b"runtime", "runtime_debug", b"runtime_debug", "runtime_perf_record", b"runtime_perf_record", "s3_mounts", b"s3_mounts", "schedule", b"schedule", "scheduler_placement", b"scheduler_placement", "secret_ids", b"secret_ids", "shared_volume_mounts", b"shared_volume_mounts", "snapshot_debug", b"snapshot_debug", "target_concurrent_inputs", b"target_concurrent_inputs", "task_idle_timeout_secs", b"task_idle_timeout_secs", "timeout_secs", b"timeout_secs", "untrusted", b"untrusted", "use_function_id", b"use_function_id", "use_method_name", b"use_method_name", "volume_mounts", b"volume_mounts", "warm_pool_size", b"warm_pool_size", "web_url", b"web_url", "web_url_info", b"web_url_info", "webhook_config", b"webhook_config", "worker_id", b"worker_id"]) -> None: ...
|
4382
4384
|
@typing.overload
|
4383
4385
|
def WhichOneof(self, oneof_group: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip"]) -> typing_extensions.Literal["_experimental_proxy_ip"] | None: ...
|
4384
4386
|
@typing.overload
|
@@ -6280,6 +6282,8 @@ class ImageMetadata(google.protobuf.message.Message):
|
|
6280
6282
|
PYTHON_VERSION_INFO_FIELD_NUMBER: builtins.int
|
6281
6283
|
PYTHON_PACKAGES_FIELD_NUMBER: builtins.int
|
6282
6284
|
WORKDIR_FIELD_NUMBER: builtins.int
|
6285
|
+
LIBC_VERSION_INFO_FIELD_NUMBER: builtins.int
|
6286
|
+
IMAGE_BUILDER_VERSION_FIELD_NUMBER: builtins.int
|
6283
6287
|
python_version_info: builtins.str
|
6284
6288
|
"""The output of `python -VV. Not set if missing"""
|
6285
6289
|
@property
|
@@ -6289,15 +6293,25 @@ class ImageMetadata(google.protobuf.message.Message):
|
|
6289
6293
|
"""
|
6290
6294
|
workdir: builtins.str
|
6291
6295
|
"""The work directory of the image, defaulting to "/". Not set if missing"""
|
6296
|
+
libc_version_info: builtins.str
|
6297
|
+
"""The image's libc version"""
|
6298
|
+
image_builder_version: builtins.str
|
6299
|
+
"""The builder version for/with which the image was created."""
|
6292
6300
|
def __init__(
|
6293
6301
|
self,
|
6294
6302
|
*,
|
6295
6303
|
python_version_info: builtins.str | None = ...,
|
6296
6304
|
python_packages: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
|
6297
6305
|
workdir: builtins.str | None = ...,
|
6306
|
+
libc_version_info: builtins.str | None = ...,
|
6307
|
+
image_builder_version: builtins.str | None = ...,
|
6298
6308
|
) -> None: ...
|
6299
|
-
def HasField(self, field_name: typing_extensions.Literal["_python_version_info", b"_python_version_info", "_workdir", b"_workdir", "python_version_info", b"python_version_info", "workdir", b"workdir"]) -> builtins.bool: ...
|
6300
|
-
def ClearField(self, field_name: typing_extensions.Literal["_python_version_info", b"_python_version_info", "_workdir", b"_workdir", "python_packages", b"python_packages", "python_version_info", b"python_version_info", "workdir", b"workdir"]) -> None: ...
|
6309
|
+
def HasField(self, field_name: typing_extensions.Literal["_image_builder_version", b"_image_builder_version", "_libc_version_info", b"_libc_version_info", "_python_version_info", b"_python_version_info", "_workdir", b"_workdir", "image_builder_version", b"image_builder_version", "libc_version_info", b"libc_version_info", "python_version_info", b"python_version_info", "workdir", b"workdir"]) -> builtins.bool: ...
|
6310
|
+
def ClearField(self, field_name: typing_extensions.Literal["_image_builder_version", b"_image_builder_version", "_libc_version_info", b"_libc_version_info", "_python_version_info", b"_python_version_info", "_workdir", b"_workdir", "image_builder_version", b"image_builder_version", "libc_version_info", b"libc_version_info", "python_packages", b"python_packages", "python_version_info", b"python_version_info", "workdir", b"workdir"]) -> None: ...
|
6311
|
+
@typing.overload
|
6312
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_image_builder_version", b"_image_builder_version"]) -> typing_extensions.Literal["image_builder_version"] | None: ...
|
6313
|
+
@typing.overload
|
6314
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_libc_version_info", b"_libc_version_info"]) -> typing_extensions.Literal["libc_version_info"] | None: ...
|
6301
6315
|
@typing.overload
|
6302
6316
|
def WhichOneof(self, oneof_group: typing_extensions.Literal["_python_version_info", b"_python_version_info"]) -> typing_extensions.Literal["python_version_info"] | None: ...
|
6303
6317
|
@typing.overload
|
@@ -9067,7 +9081,7 @@ class TaskLogs(google.protobuf.message.Message):
|
|
9067
9081
|
TASK_PROGRESS_FIELD_NUMBER: builtins.int
|
9068
9082
|
FUNCTION_CALL_ID_FIELD_NUMBER: builtins.int
|
9069
9083
|
INPUT_ID_FIELD_NUMBER: builtins.int
|
9070
|
-
|
9084
|
+
TIMESTAMP_NS_FIELD_NUMBER: builtins.int
|
9071
9085
|
data: builtins.str
|
9072
9086
|
task_state: global___TaskState.ValueType
|
9073
9087
|
timestamp: builtins.float
|
@@ -9076,7 +9090,7 @@ class TaskLogs(google.protobuf.message.Message):
|
|
9076
9090
|
def task_progress(self) -> global___TaskProgress: ...
|
9077
9091
|
function_call_id: builtins.str
|
9078
9092
|
input_id: builtins.str
|
9079
|
-
|
9093
|
+
timestamp_ns: builtins.int
|
9080
9094
|
def __init__(
|
9081
9095
|
self,
|
9082
9096
|
*,
|
@@ -9087,10 +9101,10 @@ class TaskLogs(google.protobuf.message.Message):
|
|
9087
9101
|
task_progress: global___TaskProgress | None = ...,
|
9088
9102
|
function_call_id: builtins.str = ...,
|
9089
9103
|
input_id: builtins.str = ...,
|
9090
|
-
|
9104
|
+
timestamp_ns: builtins.int = ...,
|
9091
9105
|
) -> None: ...
|
9092
9106
|
def HasField(self, field_name: typing_extensions.Literal["task_progress", b"task_progress"]) -> builtins.bool: ...
|
9093
|
-
def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "file_descriptor", b"file_descriptor", "function_call_id", b"function_call_id", "
|
9107
|
+
def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "file_descriptor", b"file_descriptor", "function_call_id", b"function_call_id", "input_id", b"input_id", "task_progress", b"task_progress", "task_state", b"task_state", "timestamp", b"timestamp", "timestamp_ns", b"timestamp_ns"]) -> None: ...
|
9094
9108
|
|
9095
9109
|
global___TaskLogs = TaskLogs
|
9096
9110
|
|
@@ -9690,6 +9704,46 @@ class VolumeHeartbeatRequest(google.protobuf.message.Message):
|
|
9690
9704
|
|
9691
9705
|
global___VolumeHeartbeatRequest = VolumeHeartbeatRequest
|
9692
9706
|
|
9707
|
+
class VolumeListFiles2Request(google.protobuf.message.Message):
|
9708
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
9709
|
+
|
9710
|
+
VOLUME_ID_FIELD_NUMBER: builtins.int
|
9711
|
+
PATH_FIELD_NUMBER: builtins.int
|
9712
|
+
RECURSIVE_FIELD_NUMBER: builtins.int
|
9713
|
+
MAX_ENTRIES_FIELD_NUMBER: builtins.int
|
9714
|
+
volume_id: builtins.str
|
9715
|
+
path: builtins.str
|
9716
|
+
recursive: builtins.bool
|
9717
|
+
max_entries: builtins.int
|
9718
|
+
def __init__(
|
9719
|
+
self,
|
9720
|
+
*,
|
9721
|
+
volume_id: builtins.str = ...,
|
9722
|
+
path: builtins.str = ...,
|
9723
|
+
recursive: builtins.bool = ...,
|
9724
|
+
max_entries: builtins.int | None = ...,
|
9725
|
+
) -> None: ...
|
9726
|
+
def HasField(self, field_name: typing_extensions.Literal["_max_entries", b"_max_entries", "max_entries", b"max_entries"]) -> builtins.bool: ...
|
9727
|
+
def ClearField(self, field_name: typing_extensions.Literal["_max_entries", b"_max_entries", "max_entries", b"max_entries", "path", b"path", "recursive", b"recursive", "volume_id", b"volume_id"]) -> None: ...
|
9728
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_entries", b"_max_entries"]) -> typing_extensions.Literal["max_entries"] | None: ...
|
9729
|
+
|
9730
|
+
global___VolumeListFiles2Request = VolumeListFiles2Request
|
9731
|
+
|
9732
|
+
class VolumeListFiles2Response(google.protobuf.message.Message):
|
9733
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
9734
|
+
|
9735
|
+
ENTRIES_FIELD_NUMBER: builtins.int
|
9736
|
+
@property
|
9737
|
+
def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FileEntry]: ...
|
9738
|
+
def __init__(
|
9739
|
+
self,
|
9740
|
+
*,
|
9741
|
+
entries: collections.abc.Iterable[global___FileEntry] | None = ...,
|
9742
|
+
) -> None: ...
|
9743
|
+
def ClearField(self, field_name: typing_extensions.Literal["entries", b"entries"]) -> None: ...
|
9744
|
+
|
9745
|
+
global___VolumeListFiles2Response = VolumeListFiles2Response
|
9746
|
+
|
9693
9747
|
class VolumeListFilesRequest(google.protobuf.message.Message):
|
9694
9748
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
9695
9749
|
|
@@ -9994,6 +10048,26 @@ class VolumeReloadRequest(google.protobuf.message.Message):
|
|
9994
10048
|
|
9995
10049
|
global___VolumeReloadRequest = VolumeReloadRequest
|
9996
10050
|
|
10051
|
+
class VolumeRemoveFile2Request(google.protobuf.message.Message):
|
10052
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
10053
|
+
|
10054
|
+
VOLUME_ID_FIELD_NUMBER: builtins.int
|
10055
|
+
PATH_FIELD_NUMBER: builtins.int
|
10056
|
+
RECURSIVE_FIELD_NUMBER: builtins.int
|
10057
|
+
volume_id: builtins.str
|
10058
|
+
path: builtins.str
|
10059
|
+
recursive: builtins.bool
|
10060
|
+
def __init__(
|
10061
|
+
self,
|
10062
|
+
*,
|
10063
|
+
volume_id: builtins.str = ...,
|
10064
|
+
path: builtins.str = ...,
|
10065
|
+
recursive: builtins.bool = ...,
|
10066
|
+
) -> None: ...
|
10067
|
+
def ClearField(self, field_name: typing_extensions.Literal["path", b"path", "recursive", b"recursive", "volume_id", b"volume_id"]) -> None: ...
|
10068
|
+
|
10069
|
+
global___VolumeRemoveFile2Request = VolumeRemoveFile2Request
|
10070
|
+
|
9997
10071
|
class VolumeRemoveFileRequest(google.protobuf.message.Message):
|
9998
10072
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
9999
10073
|
|
modal_proto/api_pb2_grpc.py
CHANGED
@@ -740,6 +740,11 @@ class ModalClientStub(object):
|
|
740
740
|
request_serializer=modal__proto_dot_api__pb2.VolumeListFilesRequest.SerializeToString,
|
741
741
|
response_deserializer=modal__proto_dot_api__pb2.VolumeListFilesResponse.FromString,
|
742
742
|
)
|
743
|
+
self.VolumeListFiles2 = channel.unary_stream(
|
744
|
+
'/modal.client.ModalClient/VolumeListFiles2',
|
745
|
+
request_serializer=modal__proto_dot_api__pb2.VolumeListFiles2Request.SerializeToString,
|
746
|
+
response_deserializer=modal__proto_dot_api__pb2.VolumeListFiles2Response.FromString,
|
747
|
+
)
|
743
748
|
self.VolumePutFiles = channel.unary_unary(
|
744
749
|
'/modal.client.ModalClient/VolumePutFiles',
|
745
750
|
request_serializer=modal__proto_dot_api__pb2.VolumePutFilesRequest.SerializeToString,
|
@@ -760,6 +765,11 @@ class ModalClientStub(object):
|
|
760
765
|
request_serializer=modal__proto_dot_api__pb2.VolumeRemoveFileRequest.SerializeToString,
|
761
766
|
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
762
767
|
)
|
768
|
+
self.VolumeRemoveFile2 = channel.unary_unary(
|
769
|
+
'/modal.client.ModalClient/VolumeRemoveFile2',
|
770
|
+
request_serializer=modal__proto_dot_api__pb2.VolumeRemoveFile2Request.SerializeToString,
|
771
|
+
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
772
|
+
)
|
763
773
|
self.VolumeRename = channel.unary_unary(
|
764
774
|
'/modal.client.ModalClient/VolumeRename',
|
765
775
|
request_serializer=modal__proto_dot_api__pb2.VolumeRenameRequest.SerializeToString,
|
@@ -1674,6 +1684,12 @@ class ModalClientServicer(object):
|
|
1674
1684
|
context.set_details('Method not implemented!')
|
1675
1685
|
raise NotImplementedError('Method not implemented!')
|
1676
1686
|
|
1687
|
+
def VolumeListFiles2(self, request, context):
|
1688
|
+
"""Missing associated documentation comment in .proto file."""
|
1689
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
1690
|
+
context.set_details('Method not implemented!')
|
1691
|
+
raise NotImplementedError('Method not implemented!')
|
1692
|
+
|
1677
1693
|
def VolumePutFiles(self, request, context):
|
1678
1694
|
"""Missing associated documentation comment in .proto file."""
|
1679
1695
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
@@ -1698,6 +1714,12 @@ class ModalClientServicer(object):
|
|
1698
1714
|
context.set_details('Method not implemented!')
|
1699
1715
|
raise NotImplementedError('Method not implemented!')
|
1700
1716
|
|
1717
|
+
def VolumeRemoveFile2(self, request, context):
|
1718
|
+
"""Missing associated documentation comment in .proto file."""
|
1719
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
1720
|
+
context.set_details('Method not implemented!')
|
1721
|
+
raise NotImplementedError('Method not implemented!')
|
1722
|
+
|
1701
1723
|
def VolumeRename(self, request, context):
|
1702
1724
|
"""Missing associated documentation comment in .proto file."""
|
1703
1725
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
@@ -2439,6 +2461,11 @@ def add_ModalClientServicer_to_server(servicer, server):
|
|
2439
2461
|
request_deserializer=modal__proto_dot_api__pb2.VolumeListFilesRequest.FromString,
|
2440
2462
|
response_serializer=modal__proto_dot_api__pb2.VolumeListFilesResponse.SerializeToString,
|
2441
2463
|
),
|
2464
|
+
'VolumeListFiles2': grpc.unary_stream_rpc_method_handler(
|
2465
|
+
servicer.VolumeListFiles2,
|
2466
|
+
request_deserializer=modal__proto_dot_api__pb2.VolumeListFiles2Request.FromString,
|
2467
|
+
response_serializer=modal__proto_dot_api__pb2.VolumeListFiles2Response.SerializeToString,
|
2468
|
+
),
|
2442
2469
|
'VolumePutFiles': grpc.unary_unary_rpc_method_handler(
|
2443
2470
|
servicer.VolumePutFiles,
|
2444
2471
|
request_deserializer=modal__proto_dot_api__pb2.VolumePutFilesRequest.FromString,
|
@@ -2459,6 +2486,11 @@ def add_ModalClientServicer_to_server(servicer, server):
|
|
2459
2486
|
request_deserializer=modal__proto_dot_api__pb2.VolumeRemoveFileRequest.FromString,
|
2460
2487
|
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
2461
2488
|
),
|
2489
|
+
'VolumeRemoveFile2': grpc.unary_unary_rpc_method_handler(
|
2490
|
+
servicer.VolumeRemoveFile2,
|
2491
|
+
request_deserializer=modal__proto_dot_api__pb2.VolumeRemoveFile2Request.FromString,
|
2492
|
+
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
2493
|
+
),
|
2462
2494
|
'VolumeRename': grpc.unary_unary_rpc_method_handler(
|
2463
2495
|
servicer.VolumeRename,
|
2464
2496
|
request_deserializer=modal__proto_dot_api__pb2.VolumeRenameRequest.FromString,
|
@@ -4944,6 +4976,23 @@ class ModalClient(object):
|
|
4944
4976
|
options, channel_credentials,
|
4945
4977
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
4946
4978
|
|
4979
|
+
@staticmethod
|
4980
|
+
def VolumeListFiles2(request,
|
4981
|
+
target,
|
4982
|
+
options=(),
|
4983
|
+
channel_credentials=None,
|
4984
|
+
call_credentials=None,
|
4985
|
+
insecure=False,
|
4986
|
+
compression=None,
|
4987
|
+
wait_for_ready=None,
|
4988
|
+
timeout=None,
|
4989
|
+
metadata=None):
|
4990
|
+
return grpc.experimental.unary_stream(request, target, '/modal.client.ModalClient/VolumeListFiles2',
|
4991
|
+
modal__proto_dot_api__pb2.VolumeListFiles2Request.SerializeToString,
|
4992
|
+
modal__proto_dot_api__pb2.VolumeListFiles2Response.FromString,
|
4993
|
+
options, channel_credentials,
|
4994
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
4995
|
+
|
4947
4996
|
@staticmethod
|
4948
4997
|
def VolumePutFiles(request,
|
4949
4998
|
target,
|
@@ -5012,6 +5061,23 @@ class ModalClient(object):
|
|
5012
5061
|
options, channel_credentials,
|
5013
5062
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
5014
5063
|
|
5064
|
+
@staticmethod
|
5065
|
+
def VolumeRemoveFile2(request,
|
5066
|
+
target,
|
5067
|
+
options=(),
|
5068
|
+
channel_credentials=None,
|
5069
|
+
call_credentials=None,
|
5070
|
+
insecure=False,
|
5071
|
+
compression=None,
|
5072
|
+
wait_for_ready=None,
|
5073
|
+
timeout=None,
|
5074
|
+
metadata=None):
|
5075
|
+
return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/VolumeRemoveFile2',
|
5076
|
+
modal__proto_dot_api__pb2.VolumeRemoveFile2Request.SerializeToString,
|
5077
|
+
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
5078
|
+
options, channel_credentials,
|
5079
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
5080
|
+
|
5015
5081
|
@staticmethod
|
5016
5082
|
def VolumeRename(request,
|
5017
5083
|
target,
|
modal_proto/api_pb2_grpc.pyi
CHANGED
@@ -620,6 +620,10 @@ class ModalClientStub:
|
|
620
620
|
modal_proto.api_pb2.VolumeListFilesRequest,
|
621
621
|
modal_proto.api_pb2.VolumeListFilesResponse,
|
622
622
|
]
|
623
|
+
VolumeListFiles2: grpc.UnaryStreamMultiCallable[
|
624
|
+
modal_proto.api_pb2.VolumeListFiles2Request,
|
625
|
+
modal_proto.api_pb2.VolumeListFiles2Response,
|
626
|
+
]
|
623
627
|
VolumePutFiles: grpc.UnaryUnaryMultiCallable[
|
624
628
|
modal_proto.api_pb2.VolumePutFilesRequest,
|
625
629
|
google.protobuf.empty_pb2.Empty,
|
@@ -636,6 +640,10 @@ class ModalClientStub:
|
|
636
640
|
modal_proto.api_pb2.VolumeRemoveFileRequest,
|
637
641
|
google.protobuf.empty_pb2.Empty,
|
638
642
|
]
|
643
|
+
VolumeRemoveFile2: grpc.UnaryUnaryMultiCallable[
|
644
|
+
modal_proto.api_pb2.VolumeRemoveFile2Request,
|
645
|
+
google.protobuf.empty_pb2.Empty,
|
646
|
+
]
|
639
647
|
VolumeRename: grpc.UnaryUnaryMultiCallable[
|
640
648
|
modal_proto.api_pb2.VolumeRenameRequest,
|
641
649
|
google.protobuf.empty_pb2.Empty,
|
@@ -1548,6 +1556,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
|
|
1548
1556
|
context: grpc.ServicerContext,
|
1549
1557
|
) -> collections.abc.Iterator[modal_proto.api_pb2.VolumeListFilesResponse]: ...
|
1550
1558
|
@abc.abstractmethod
|
1559
|
+
def VolumeListFiles2(
|
1560
|
+
self,
|
1561
|
+
request: modal_proto.api_pb2.VolumeListFiles2Request,
|
1562
|
+
context: grpc.ServicerContext,
|
1563
|
+
) -> collections.abc.Iterator[modal_proto.api_pb2.VolumeListFiles2Response]: ...
|
1564
|
+
@abc.abstractmethod
|
1551
1565
|
def VolumePutFiles(
|
1552
1566
|
self,
|
1553
1567
|
request: modal_proto.api_pb2.VolumePutFilesRequest,
|
@@ -1572,6 +1586,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
|
|
1572
1586
|
context: grpc.ServicerContext,
|
1573
1587
|
) -> google.protobuf.empty_pb2.Empty: ...
|
1574
1588
|
@abc.abstractmethod
|
1589
|
+
def VolumeRemoveFile2(
|
1590
|
+
self,
|
1591
|
+
request: modal_proto.api_pb2.VolumeRemoveFile2Request,
|
1592
|
+
context: grpc.ServicerContext,
|
1593
|
+
) -> google.protobuf.empty_pb2.Empty: ...
|
1594
|
+
@abc.abstractmethod
|
1575
1595
|
def VolumeRename(
|
1576
1596
|
self,
|
1577
1597
|
request: modal_proto.api_pb2.VolumeRenameRequest,
|
modal_proto/modal_api_grpc.py
CHANGED
@@ -163,9 +163,11 @@ class ModalClientModal:
|
|
163
163
|
self.VolumeHeartbeat = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumeHeartbeat, client, server_url)
|
164
164
|
self.VolumeList = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumeList, client, server_url)
|
165
165
|
self.VolumeListFiles = modal.client.UnaryStreamWrapper(grpclib_stub.VolumeListFiles, client, server_url)
|
166
|
+
self.VolumeListFiles2 = modal.client.UnaryStreamWrapper(grpclib_stub.VolumeListFiles2, client, server_url)
|
166
167
|
self.VolumePutFiles = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumePutFiles, client, server_url)
|
167
168
|
self.VolumePutFiles2 = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumePutFiles2, client, server_url)
|
168
169
|
self.VolumeReload = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumeReload, client, server_url)
|
169
170
|
self.VolumeRemoveFile = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumeRemoveFile, client, server_url)
|
171
|
+
self.VolumeRemoveFile2 = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumeRemoveFile2, client, server_url)
|
170
172
|
self.VolumeRename = modal.client.UnaryUnaryWrapper(grpclib_stub.VolumeRename, client, server_url)
|
171
173
|
self.WorkspaceNameLookup = modal.client.UnaryUnaryWrapper(grpclib_stub.WorkspaceNameLookup, client, server_url)
|
modal_version/__init__.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|