modal 0.74.10__py3-none-any.whl → 0.74.12__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.
- modal/__main__.py +2 -2
- modal/_functions.py +5 -0
- modal/_resolver.py +6 -0
- modal/_utils/function_utils.py +5 -0
- modal/_utils/grpc_utils.py +3 -1
- modal/app.py +5 -1
- modal/app.pyi +4 -0
- modal/cli/_traceback.py +2 -2
- modal/client.pyi +2 -2
- modal/functions.pyi +7 -6
- {modal-0.74.10.dist-info → modal-0.74.12.dist-info}/METADATA +1 -1
- {modal-0.74.10.dist-info → modal-0.74.12.dist-info}/RECORD +20 -20
- modal_proto/api.proto +9 -0
- modal_proto/api_pb2.py +590 -564
- modal_proto/api_pb2.pyi +51 -3
- modal_version/_version_generated.py +1 -1
- {modal-0.74.10.dist-info → modal-0.74.12.dist-info}/WHEEL +0 -0
- {modal-0.74.10.dist-info → modal-0.74.12.dist-info}/entry_points.txt +0 -0
- {modal-0.74.10.dist-info → modal-0.74.12.dist-info}/licenses/LICENSE +0 -0
- {modal-0.74.10.dist-info → modal-0.74.12.dist-info}/top_level.txt +0 -0
modal_proto/api_pb2.pyi
CHANGED
@@ -3968,6 +3968,21 @@ class Function(google.protobuf.message.Message):
|
|
3968
3968
|
def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
|
3969
3969
|
def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
|
3970
3970
|
|
3971
|
+
class ExperimentalOptionsEntry(google.protobuf.message.Message):
|
3972
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
3973
|
+
|
3974
|
+
KEY_FIELD_NUMBER: builtins.int
|
3975
|
+
VALUE_FIELD_NUMBER: builtins.int
|
3976
|
+
key: builtins.str
|
3977
|
+
value: builtins.str
|
3978
|
+
def __init__(
|
3979
|
+
self,
|
3980
|
+
*,
|
3981
|
+
key: builtins.str = ...,
|
3982
|
+
value: builtins.str = ...,
|
3983
|
+
) -> None: ...
|
3984
|
+
def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
|
3985
|
+
|
3971
3986
|
MODULE_NAME_FIELD_NUMBER: builtins.int
|
3972
3987
|
FUNCTION_NAME_FIELD_NUMBER: builtins.int
|
3973
3988
|
MOUNT_IDS_FIELD_NUMBER: builtins.int
|
@@ -4035,6 +4050,7 @@ class Function(google.protobuf.message.Message):
|
|
4035
4050
|
_EXPERIMENTAL_ENABLE_GPU_SNAPSHOT_FIELD_NUMBER: builtins.int
|
4036
4051
|
AUTOSCALER_SETTINGS_FIELD_NUMBER: builtins.int
|
4037
4052
|
FUNCTION_SCHEMA_FIELD_NUMBER: builtins.int
|
4053
|
+
EXPERIMENTAL_OPTIONS_FIELD_NUMBER: builtins.int
|
4038
4054
|
module_name: builtins.str
|
4039
4055
|
function_name: builtins.str
|
4040
4056
|
@property
|
@@ -4157,6 +4173,12 @@ class Function(google.protobuf.message.Message):
|
|
4157
4173
|
"""Bundle of parameters related to autoscaling"""
|
4158
4174
|
@property
|
4159
4175
|
def function_schema(self) -> global___FunctionSchema: ...
|
4176
|
+
@property
|
4177
|
+
def experimental_options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
|
4178
|
+
"""For server-side experimental functionality. Prefer using this over individual _experimental_* fields.
|
4179
|
+
Note the value type as string. Internally we'll coerce all values to string with str().
|
4180
|
+
On the server, it's necessary to convert back to the most natural type (e.g. int) when relevant.
|
4181
|
+
"""
|
4160
4182
|
def __init__(
|
4161
4183
|
self,
|
4162
4184
|
*,
|
@@ -4227,9 +4249,10 @@ class Function(google.protobuf.message.Message):
|
|
4227
4249
|
_experimental_enable_gpu_snapshot: builtins.bool = ...,
|
4228
4250
|
autoscaler_settings: global___AutoscalerSettings | None = ...,
|
4229
4251
|
function_schema: global___FunctionSchema | None = ...,
|
4252
|
+
experimental_options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
|
4230
4253
|
) -> None: ...
|
4231
4254
|
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: ...
|
4232
|
-
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", "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: ...
|
4255
|
+
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: ...
|
4233
4256
|
@typing.overload
|
4234
4257
|
def WhichOneof(self, oneof_group: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip"]) -> typing_extensions.Literal["_experimental_proxy_ip"] | None: ...
|
4235
4258
|
@typing.overload
|
@@ -4516,6 +4539,7 @@ class FunctionCreateResponse(google.protobuf.message.Message):
|
|
4516
4539
|
__DEPRECATED_WEB_URL_FIELD_NUMBER: builtins.int
|
4517
4540
|
FUNCTION_FIELD_NUMBER: builtins.int
|
4518
4541
|
HANDLE_METADATA_FIELD_NUMBER: builtins.int
|
4542
|
+
SERVER_WARNINGS_FIELD_NUMBER: builtins.int
|
4519
4543
|
function_id: builtins.str
|
4520
4544
|
__deprecated_web_url: builtins.str
|
4521
4545
|
"""Used up until 0.62.212"""
|
@@ -4523,6 +4547,8 @@ class FunctionCreateResponse(google.protobuf.message.Message):
|
|
4523
4547
|
def function(self) -> global___Function: ...
|
4524
4548
|
@property
|
4525
4549
|
def handle_metadata(self) -> global___FunctionHandleMetadata: ...
|
4550
|
+
@property
|
4551
|
+
def server_warnings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Warning]: ...
|
4526
4552
|
def __init__(
|
4527
4553
|
self,
|
4528
4554
|
*,
|
@@ -4530,9 +4556,10 @@ class FunctionCreateResponse(google.protobuf.message.Message):
|
|
4530
4556
|
__deprecated_web_url: builtins.str = ...,
|
4531
4557
|
function: global___Function | None = ...,
|
4532
4558
|
handle_metadata: global___FunctionHandleMetadata | None = ...,
|
4559
|
+
server_warnings: collections.abc.Iterable[global___Warning] | None = ...,
|
4533
4560
|
) -> None: ...
|
4534
4561
|
def HasField(self, field_name: typing_extensions.Literal["function", b"function", "handle_metadata", b"handle_metadata"]) -> builtins.bool: ...
|
4535
|
-
def ClearField(self, field_name: typing_extensions.Literal["__deprecated_web_url", b"__deprecated_web_url", "function", b"function", "function_id", b"function_id", "handle_metadata", b"handle_metadata"]) -> None: ...
|
4562
|
+
def ClearField(self, field_name: typing_extensions.Literal["__deprecated_web_url", b"__deprecated_web_url", "function", b"function", "function_id", b"function_id", "handle_metadata", b"handle_metadata", "server_warnings", b"server_warnings"]) -> None: ...
|
4536
4563
|
|
4537
4564
|
global___FunctionCreateResponse = FunctionCreateResponse
|
4538
4565
|
|
@@ -4583,6 +4610,21 @@ class FunctionData(google.protobuf.message.Message):
|
|
4583
4610
|
def HasField(self, field_name: typing_extensions.Literal["function", b"function"]) -> builtins.bool: ...
|
4584
4611
|
def ClearField(self, field_name: typing_extensions.Literal["function", b"function", "rank", b"rank"]) -> None: ...
|
4585
4612
|
|
4613
|
+
class ExperimentalOptionsEntry(google.protobuf.message.Message):
|
4614
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
4615
|
+
|
4616
|
+
KEY_FIELD_NUMBER: builtins.int
|
4617
|
+
VALUE_FIELD_NUMBER: builtins.int
|
4618
|
+
key: builtins.str
|
4619
|
+
value: builtins.str
|
4620
|
+
def __init__(
|
4621
|
+
self,
|
4622
|
+
*,
|
4623
|
+
key: builtins.str = ...,
|
4624
|
+
value: builtins.str = ...,
|
4625
|
+
) -> None: ...
|
4626
|
+
def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
|
4627
|
+
|
4586
4628
|
MODULE_NAME_FIELD_NUMBER: builtins.int
|
4587
4629
|
FUNCTION_NAME_FIELD_NUMBER: builtins.int
|
4588
4630
|
FUNCTION_TYPE_FIELD_NUMBER: builtins.int
|
@@ -4614,6 +4656,7 @@ class FunctionData(google.protobuf.message.Message):
|
|
4614
4656
|
RUNTIME_PERF_RECORD_FIELD_NUMBER: builtins.int
|
4615
4657
|
AUTOSCALER_SETTINGS_FIELD_NUMBER: builtins.int
|
4616
4658
|
FUNCTION_SCHEMA_FIELD_NUMBER: builtins.int
|
4659
|
+
EXPERIMENTAL_OPTIONS_FIELD_NUMBER: builtins.int
|
4617
4660
|
module_name: builtins.str
|
4618
4661
|
function_name: builtins.str
|
4619
4662
|
function_type: global___Function.FunctionType.ValueType
|
@@ -4670,6 +4713,8 @@ class FunctionData(google.protobuf.message.Message):
|
|
4670
4713
|
"""Bundle of parameters related to autoscaling"""
|
4671
4714
|
@property
|
4672
4715
|
def function_schema(self) -> global___FunctionSchema: ...
|
4716
|
+
@property
|
4717
|
+
def experimental_options(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
|
4673
4718
|
def __init__(
|
4674
4719
|
self,
|
4675
4720
|
*,
|
@@ -4704,9 +4749,10 @@ class FunctionData(google.protobuf.message.Message):
|
|
4704
4749
|
runtime_perf_record: builtins.bool = ...,
|
4705
4750
|
autoscaler_settings: global___AutoscalerSettings | None = ...,
|
4706
4751
|
function_schema: global___FunctionSchema | None = ...,
|
4752
|
+
experimental_options: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
|
4707
4753
|
) -> None: ...
|
4708
4754
|
def HasField(self, field_name: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip", "_experimental_proxy_ip", b"_experimental_proxy_ip", "autoscaler_settings", b"autoscaler_settings", "class_parameter_info", b"class_parameter_info", "function_schema", b"function_schema", "schedule", b"schedule", "web_url_info", b"web_url_info", "webhook_config", b"webhook_config"]) -> builtins.bool: ...
|
4709
|
-
def ClearField(self, field_name: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip", "_experimental_buffer_containers", b"_experimental_buffer_containers", "_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", "autoscaler_settings", b"autoscaler_settings", "class_parameter_info", b"class_parameter_info", "concurrency_limit", b"concurrency_limit", "custom_domain_info", b"custom_domain_info", "function_name", b"function_name", "function_schema", b"function_schema", "function_type", b"function_type", "is_class", b"is_class", "is_method", b"is_method", "method_definitions", b"method_definitions", "method_definitions_set", b"method_definitions_set", "module_name", b"module_name", "ranked_functions", b"ranked_functions", "runtime_perf_record", b"runtime_perf_record", "schedule", b"schedule", "snapshot_debug", b"snapshot_debug", "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", "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: ...
|
4755
|
+
def ClearField(self, field_name: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip", "_experimental_buffer_containers", b"_experimental_buffer_containers", "_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", "autoscaler_settings", b"autoscaler_settings", "class_parameter_info", b"class_parameter_info", "concurrency_limit", b"concurrency_limit", "custom_domain_info", b"custom_domain_info", "experimental_options", b"experimental_options", "function_name", b"function_name", "function_schema", b"function_schema", "function_type", b"function_type", "is_class", b"is_class", "is_method", b"is_method", "method_definitions", b"method_definitions", "method_definitions_set", b"method_definitions_set", "module_name", b"module_name", "ranked_functions", b"ranked_functions", "runtime_perf_record", b"runtime_perf_record", "schedule", b"schedule", "snapshot_debug", b"snapshot_debug", "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", "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: ...
|
4710
4756
|
def WhichOneof(self, oneof_group: typing_extensions.Literal["X_experimental_proxy_ip", b"X_experimental_proxy_ip"]) -> typing_extensions.Literal["_experimental_proxy_ip"] | None: ...
|
4711
4757
|
|
4712
4758
|
global___FunctionData = FunctionData
|
@@ -9766,11 +9812,13 @@ class Warning(google.protobuf.message.Message):
|
|
9766
9812
|
WARNING_TYPE_UNSPECIFIED: Warning._WarningType.ValueType # 0
|
9767
9813
|
WARNING_TYPE_CLIENT_DEPRECATION: Warning._WarningType.ValueType # 1
|
9768
9814
|
WARNING_TYPE_RESOURCE_LIMIT: Warning._WarningType.ValueType # 2
|
9815
|
+
WARNING_TYPE_FUNCTION_CONFIGURATION: Warning._WarningType.ValueType # 3
|
9769
9816
|
|
9770
9817
|
class WarningType(_WarningType, metaclass=_WarningTypeEnumTypeWrapper): ...
|
9771
9818
|
WARNING_TYPE_UNSPECIFIED: Warning.WarningType.ValueType # 0
|
9772
9819
|
WARNING_TYPE_CLIENT_DEPRECATION: Warning.WarningType.ValueType # 1
|
9773
9820
|
WARNING_TYPE_RESOURCE_LIMIT: Warning.WarningType.ValueType # 2
|
9821
|
+
WARNING_TYPE_FUNCTION_CONFIGURATION: Warning.WarningType.ValueType # 3
|
9774
9822
|
|
9775
9823
|
TYPE_FIELD_NUMBER: builtins.int
|
9776
9824
|
MESSAGE_FIELD_NUMBER: builtins.int
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|