modal 0.67.43__py3-none-any.whl → 0.68.24__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.
Files changed (52) hide show
  1. modal/__init__.py +2 -0
  2. modal/_container_entrypoint.py +4 -1
  3. modal/_ipython.py +3 -13
  4. modal/_runtime/asgi.py +4 -0
  5. modal/_runtime/container_io_manager.py +3 -0
  6. modal/_runtime/user_code_imports.py +17 -20
  7. modal/_traceback.py +16 -2
  8. modal/_utils/blob_utils.py +27 -92
  9. modal/_utils/bytes_io_segment_payload.py +97 -0
  10. modal/_utils/function_utils.py +5 -1
  11. modal/_utils/grpc_testing.py +6 -2
  12. modal/_utils/hash_utils.py +51 -10
  13. modal/_utils/http_utils.py +19 -10
  14. modal/_utils/{pattern_matcher.py → pattern_utils.py} +1 -70
  15. modal/_utils/shell_utils.py +11 -5
  16. modal/cli/_traceback.py +11 -4
  17. modal/cli/run.py +25 -12
  18. modal/client.py +6 -37
  19. modal/client.pyi +2 -6
  20. modal/cls.py +132 -62
  21. modal/cls.pyi +13 -7
  22. modal/exception.py +20 -0
  23. modal/file_io.py +380 -0
  24. modal/file_io.pyi +185 -0
  25. modal/file_pattern_matcher.py +121 -0
  26. modal/functions.py +33 -11
  27. modal/functions.pyi +11 -9
  28. modal/image.py +88 -8
  29. modal/image.pyi +20 -4
  30. modal/mount.py +49 -9
  31. modal/mount.pyi +19 -4
  32. modal/network_file_system.py +4 -1
  33. modal/object.py +4 -2
  34. modal/partial_function.py +22 -10
  35. modal/partial_function.pyi +10 -2
  36. modal/runner.py +5 -4
  37. modal/runner.pyi +2 -1
  38. modal/sandbox.py +40 -0
  39. modal/sandbox.pyi +18 -0
  40. modal/volume.py +5 -1
  41. {modal-0.67.43.dist-info → modal-0.68.24.dist-info}/METADATA +2 -2
  42. {modal-0.67.43.dist-info → modal-0.68.24.dist-info}/RECORD +52 -48
  43. modal_docs/gen_reference_docs.py +1 -0
  44. modal_proto/api.proto +33 -1
  45. modal_proto/api_pb2.py +813 -737
  46. modal_proto/api_pb2.pyi +160 -13
  47. modal_version/__init__.py +1 -1
  48. modal_version/_version_generated.py +1 -1
  49. {modal-0.67.43.dist-info → modal-0.68.24.dist-info}/LICENSE +0 -0
  50. {modal-0.67.43.dist-info → modal-0.68.24.dist-info}/WHEEL +0 -0
  51. {modal-0.67.43.dist-info → modal-0.68.24.dist-info}/entry_points.txt +0 -0
  52. {modal-0.67.43.dist-info → modal-0.68.24.dist-info}/top_level.txt +0 -0
modal_proto/api_pb2.pyi CHANGED
@@ -1036,6 +1036,61 @@ class AppHeartbeatRequest(google.protobuf.message.Message):
1036
1036
 
1037
1037
  global___AppHeartbeatRequest = AppHeartbeatRequest
1038
1038
 
1039
+ class AppLayout(google.protobuf.message.Message):
1040
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
1041
+
1042
+ class FunctionIdsEntry(google.protobuf.message.Message):
1043
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
1044
+
1045
+ KEY_FIELD_NUMBER: builtins.int
1046
+ VALUE_FIELD_NUMBER: builtins.int
1047
+ key: builtins.str
1048
+ value: builtins.str
1049
+ def __init__(
1050
+ self,
1051
+ *,
1052
+ key: builtins.str = ...,
1053
+ value: builtins.str = ...,
1054
+ ) -> None: ...
1055
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
1056
+
1057
+ class ClassIdsEntry(google.protobuf.message.Message):
1058
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
1059
+
1060
+ KEY_FIELD_NUMBER: builtins.int
1061
+ VALUE_FIELD_NUMBER: builtins.int
1062
+ key: builtins.str
1063
+ value: builtins.str
1064
+ def __init__(
1065
+ self,
1066
+ *,
1067
+ key: builtins.str = ...,
1068
+ value: builtins.str = ...,
1069
+ ) -> None: ...
1070
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
1071
+
1072
+ OBJECT_FIELD_NUMBER: builtins.int
1073
+ FUNCTION_IDS_FIELD_NUMBER: builtins.int
1074
+ CLASS_IDS_FIELD_NUMBER: builtins.int
1075
+ @property
1076
+ def object(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Object]: ...
1077
+ @property
1078
+ def function_ids(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
1079
+ """tag -> function id"""
1080
+ @property
1081
+ def class_ids(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
1082
+ """tag -> class id"""
1083
+ def __init__(
1084
+ self,
1085
+ *,
1086
+ object: collections.abc.Iterable[global___Object] | None = ...,
1087
+ function_ids: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
1088
+ class_ids: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
1089
+ ) -> None: ...
1090
+ def ClearField(self, field_name: typing_extensions.Literal["class_ids", b"class_ids", "function_ids", b"function_ids", "object", b"object"]) -> None: ...
1091
+
1092
+ global___AppLayout = AppLayout
1093
+
1039
1094
  class AppListRequest(google.protobuf.message.Message):
1040
1095
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
1041
1096
 
@@ -1223,22 +1278,17 @@ class AppPublishResponse(google.protobuf.message.Message):
1223
1278
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
1224
1279
 
1225
1280
  URL_FIELD_NUMBER: builtins.int
1226
- WARNINGS_FIELD_NUMBER: builtins.int
1227
1281
  SERVER_WARNINGS_FIELD_NUMBER: builtins.int
1228
1282
  url: builtins.str
1229
1283
  @property
1230
- def warnings(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
1231
- """Deprecated soon in favor of server_warnings"""
1232
- @property
1233
1284
  def server_warnings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Warning]: ...
1234
1285
  def __init__(
1235
1286
  self,
1236
1287
  *,
1237
1288
  url: builtins.str = ...,
1238
- warnings: collections.abc.Iterable[builtins.str] | None = ...,
1239
1289
  server_warnings: collections.abc.Iterable[global___Warning] | None = ...,
1240
1290
  ) -> None: ...
1241
- def ClearField(self, field_name: typing_extensions.Literal["server_warnings", b"server_warnings", "url", b"url", "warnings", b"warnings"]) -> None: ...
1291
+ def ClearField(self, field_name: typing_extensions.Literal["server_warnings", b"server_warnings", "url", b"url"]) -> None: ...
1242
1292
 
1243
1293
  global___AppPublishResponse = AppPublishResponse
1244
1294
 
@@ -2100,16 +2150,20 @@ class ClientHelloResponse(google.protobuf.message.Message):
2100
2150
 
2101
2151
  WARNING_FIELD_NUMBER: builtins.int
2102
2152
  IMAGE_BUILDER_VERSION_FIELD_NUMBER: builtins.int
2153
+ SERVER_WARNINGS_FIELD_NUMBER: builtins.int
2103
2154
  warning: builtins.str
2104
2155
  image_builder_version: builtins.str
2105
2156
  """Deprecated, no longer used in client"""
2157
+ @property
2158
+ def server_warnings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Warning]: ...
2106
2159
  def __init__(
2107
2160
  self,
2108
2161
  *,
2109
2162
  warning: builtins.str = ...,
2110
2163
  image_builder_version: builtins.str = ...,
2164
+ server_warnings: collections.abc.Iterable[global___Warning] | None = ...,
2111
2165
  ) -> None: ...
2112
- def ClearField(self, field_name: typing_extensions.Literal["image_builder_version", b"image_builder_version", "warning", b"warning"]) -> None: ...
2166
+ def ClearField(self, field_name: typing_extensions.Literal["image_builder_version", b"image_builder_version", "server_warnings", b"server_warnings", "warning", b"warning"]) -> None: ...
2113
2167
 
2114
2168
  global___ClientHelloResponse = ClientHelloResponse
2115
2169
 
@@ -2200,6 +2254,7 @@ class ContainerArguments(google.protobuf.message.Message):
2200
2254
  RUNTIME_FIELD_NUMBER: builtins.int
2201
2255
  ENVIRONMENT_NAME_FIELD_NUMBER: builtins.int
2202
2256
  CHECKPOINT_ID_FIELD_NUMBER: builtins.int
2257
+ APP_LAYOUT_FIELD_NUMBER: builtins.int
2203
2258
  task_id: builtins.str
2204
2259
  function_id: builtins.str
2205
2260
  app_id: builtins.str
@@ -2213,6 +2268,8 @@ class ContainerArguments(google.protobuf.message.Message):
2213
2268
  runtime: builtins.str
2214
2269
  environment_name: builtins.str
2215
2270
  checkpoint_id: builtins.str
2271
+ @property
2272
+ def app_layout(self) -> global___AppLayout: ...
2216
2273
  def __init__(
2217
2274
  self,
2218
2275
  *,
@@ -2226,9 +2283,10 @@ class ContainerArguments(google.protobuf.message.Message):
2226
2283
  runtime: builtins.str = ...,
2227
2284
  environment_name: builtins.str = ...,
2228
2285
  checkpoint_id: builtins.str | None = ...,
2286
+ app_layout: global___AppLayout | None = ...,
2229
2287
  ) -> None: ...
2230
- def HasField(self, field_name: typing_extensions.Literal["_checkpoint_id", b"_checkpoint_id", "checkpoint_id", b"checkpoint_id", "function_def", b"function_def", "proxy_info", b"proxy_info"]) -> builtins.bool: ...
2231
- def ClearField(self, field_name: typing_extensions.Literal["_checkpoint_id", b"_checkpoint_id", "app_id", b"app_id", "checkpoint_id", b"checkpoint_id", "environment_name", b"environment_name", "function_def", b"function_def", "function_id", b"function_id", "proxy_info", b"proxy_info", "runtime", b"runtime", "serialized_params", b"serialized_params", "task_id", b"task_id", "tracing_context", b"tracing_context"]) -> None: ...
2288
+ def HasField(self, field_name: typing_extensions.Literal["_checkpoint_id", b"_checkpoint_id", "app_layout", b"app_layout", "checkpoint_id", b"checkpoint_id", "function_def", b"function_def", "proxy_info", b"proxy_info"]) -> builtins.bool: ...
2289
+ def ClearField(self, field_name: typing_extensions.Literal["_checkpoint_id", b"_checkpoint_id", "app_id", b"app_id", "app_layout", b"app_layout", "checkpoint_id", b"checkpoint_id", "environment_name", b"environment_name", "function_def", b"function_def", "function_id", b"function_id", "proxy_info", b"proxy_info", "runtime", b"runtime", "serialized_params", b"serialized_params", "task_id", b"task_id", "tracing_context", b"tracing_context"]) -> None: ...
2232
2290
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_checkpoint_id", b"_checkpoint_id"]) -> typing_extensions.Literal["checkpoint_id"] | None: ...
2233
2291
 
2234
2292
  global___ContainerArguments = ContainerArguments
@@ -2444,6 +2502,37 @@ class ContainerFileFlushRequest(google.protobuf.message.Message):
2444
2502
 
2445
2503
  global___ContainerFileFlushRequest = ContainerFileFlushRequest
2446
2504
 
2505
+ class ContainerFileLsRequest(google.protobuf.message.Message):
2506
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
2507
+
2508
+ PATH_FIELD_NUMBER: builtins.int
2509
+ path: builtins.str
2510
+ def __init__(
2511
+ self,
2512
+ *,
2513
+ path: builtins.str = ...,
2514
+ ) -> None: ...
2515
+ def ClearField(self, field_name: typing_extensions.Literal["path", b"path"]) -> None: ...
2516
+
2517
+ global___ContainerFileLsRequest = ContainerFileLsRequest
2518
+
2519
+ class ContainerFileMkdirRequest(google.protobuf.message.Message):
2520
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
2521
+
2522
+ PATH_FIELD_NUMBER: builtins.int
2523
+ MAKE_PARENTS_FIELD_NUMBER: builtins.int
2524
+ path: builtins.str
2525
+ make_parents: builtins.bool
2526
+ def __init__(
2527
+ self,
2528
+ *,
2529
+ path: builtins.str = ...,
2530
+ make_parents: builtins.bool = ...,
2531
+ ) -> None: ...
2532
+ def ClearField(self, field_name: typing_extensions.Literal["make_parents", b"make_parents", "path", b"path"]) -> None: ...
2533
+
2534
+ global___ContainerFileMkdirRequest = ContainerFileMkdirRequest
2535
+
2447
2536
  class ContainerFileOpenRequest(google.protobuf.message.Message):
2448
2537
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
2449
2538
 
@@ -2500,6 +2589,23 @@ class ContainerFileReadRequest(google.protobuf.message.Message):
2500
2589
 
2501
2590
  global___ContainerFileReadRequest = ContainerFileReadRequest
2502
2591
 
2592
+ class ContainerFileRmRequest(google.protobuf.message.Message):
2593
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
2594
+
2595
+ PATH_FIELD_NUMBER: builtins.int
2596
+ RECURSIVE_FIELD_NUMBER: builtins.int
2597
+ path: builtins.str
2598
+ recursive: builtins.bool
2599
+ def __init__(
2600
+ self,
2601
+ *,
2602
+ path: builtins.str = ...,
2603
+ recursive: builtins.bool = ...,
2604
+ ) -> None: ...
2605
+ def ClearField(self, field_name: typing_extensions.Literal["path", b"path", "recursive", b"recursive"]) -> None: ...
2606
+
2607
+ global___ContainerFileRmRequest = ContainerFileRmRequest
2608
+
2503
2609
  class ContainerFileSeekRequest(google.protobuf.message.Message):
2504
2610
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
2505
2611
 
@@ -2520,6 +2626,28 @@ class ContainerFileSeekRequest(google.protobuf.message.Message):
2520
2626
 
2521
2627
  global___ContainerFileSeekRequest = ContainerFileSeekRequest
2522
2628
 
2629
+ class ContainerFileWatchRequest(google.protobuf.message.Message):
2630
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
2631
+
2632
+ PATH_FIELD_NUMBER: builtins.int
2633
+ RECURSIVE_FIELD_NUMBER: builtins.int
2634
+ TIMEOUT_SECS_FIELD_NUMBER: builtins.int
2635
+ path: builtins.str
2636
+ recursive: builtins.bool
2637
+ timeout_secs: builtins.int
2638
+ def __init__(
2639
+ self,
2640
+ *,
2641
+ path: builtins.str = ...,
2642
+ recursive: builtins.bool = ...,
2643
+ timeout_secs: builtins.int | None = ...,
2644
+ ) -> None: ...
2645
+ def HasField(self, field_name: typing_extensions.Literal["_timeout_secs", b"_timeout_secs", "timeout_secs", b"timeout_secs"]) -> builtins.bool: ...
2646
+ def ClearField(self, field_name: typing_extensions.Literal["_timeout_secs", b"_timeout_secs", "path", b"path", "recursive", b"recursive", "timeout_secs", b"timeout_secs"]) -> None: ...
2647
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout_secs", b"_timeout_secs"]) -> typing_extensions.Literal["timeout_secs"] | None: ...
2648
+
2649
+ global___ContainerFileWatchRequest = ContainerFileWatchRequest
2650
+
2523
2651
  class ContainerFileWriteReplaceBytesRequest(google.protobuf.message.Message):
2524
2652
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
2525
2653
 
@@ -2594,6 +2722,10 @@ class ContainerFilesystemExecRequest(google.protobuf.message.Message):
2594
2722
  FILE_DELETE_BYTES_REQUEST_FIELD_NUMBER: builtins.int
2595
2723
  FILE_WRITE_REPLACE_BYTES_REQUEST_FIELD_NUMBER: builtins.int
2596
2724
  FILE_CLOSE_REQUEST_FIELD_NUMBER: builtins.int
2725
+ FILE_LS_REQUEST_FIELD_NUMBER: builtins.int
2726
+ FILE_MKDIR_REQUEST_FIELD_NUMBER: builtins.int
2727
+ FILE_RM_REQUEST_FIELD_NUMBER: builtins.int
2728
+ FILE_WATCH_REQUEST_FIELD_NUMBER: builtins.int
2597
2729
  TASK_ID_FIELD_NUMBER: builtins.int
2598
2730
  @property
2599
2731
  def file_open_request(self) -> global___ContainerFileOpenRequest: ...
@@ -2613,6 +2745,14 @@ class ContainerFilesystemExecRequest(google.protobuf.message.Message):
2613
2745
  def file_write_replace_bytes_request(self) -> global___ContainerFileWriteReplaceBytesRequest: ...
2614
2746
  @property
2615
2747
  def file_close_request(self) -> global___ContainerFileCloseRequest: ...
2748
+ @property
2749
+ def file_ls_request(self) -> global___ContainerFileLsRequest: ...
2750
+ @property
2751
+ def file_mkdir_request(self) -> global___ContainerFileMkdirRequest: ...
2752
+ @property
2753
+ def file_rm_request(self) -> global___ContainerFileRmRequest: ...
2754
+ @property
2755
+ def file_watch_request(self) -> global___ContainerFileWatchRequest: ...
2616
2756
  task_id: builtins.str
2617
2757
  def __init__(
2618
2758
  self,
@@ -2626,11 +2766,15 @@ class ContainerFilesystemExecRequest(google.protobuf.message.Message):
2626
2766
  file_delete_bytes_request: global___ContainerFileDeleteBytesRequest | None = ...,
2627
2767
  file_write_replace_bytes_request: global___ContainerFileWriteReplaceBytesRequest | None = ...,
2628
2768
  file_close_request: global___ContainerFileCloseRequest | None = ...,
2769
+ file_ls_request: global___ContainerFileLsRequest | None = ...,
2770
+ file_mkdir_request: global___ContainerFileMkdirRequest | None = ...,
2771
+ file_rm_request: global___ContainerFileRmRequest | None = ...,
2772
+ file_watch_request: global___ContainerFileWatchRequest | None = ...,
2629
2773
  task_id: builtins.str = ...,
2630
2774
  ) -> None: ...
2631
- def HasField(self, field_name: typing_extensions.Literal["file_close_request", b"file_close_request", "file_delete_bytes_request", b"file_delete_bytes_request", "file_exec_request_oneof", b"file_exec_request_oneof", "file_flush_request", b"file_flush_request", "file_open_request", b"file_open_request", "file_read_line_request", b"file_read_line_request", "file_read_request", b"file_read_request", "file_seek_request", b"file_seek_request", "file_write_replace_bytes_request", b"file_write_replace_bytes_request", "file_write_request", b"file_write_request"]) -> builtins.bool: ...
2632
- def ClearField(self, field_name: typing_extensions.Literal["file_close_request", b"file_close_request", "file_delete_bytes_request", b"file_delete_bytes_request", "file_exec_request_oneof", b"file_exec_request_oneof", "file_flush_request", b"file_flush_request", "file_open_request", b"file_open_request", "file_read_line_request", b"file_read_line_request", "file_read_request", b"file_read_request", "file_seek_request", b"file_seek_request", "file_write_replace_bytes_request", b"file_write_replace_bytes_request", "file_write_request", b"file_write_request", "task_id", b"task_id"]) -> None: ...
2633
- def WhichOneof(self, oneof_group: typing_extensions.Literal["file_exec_request_oneof", b"file_exec_request_oneof"]) -> typing_extensions.Literal["file_open_request", "file_write_request", "file_read_request", "file_flush_request", "file_read_line_request", "file_seek_request", "file_delete_bytes_request", "file_write_replace_bytes_request", "file_close_request"] | None: ...
2775
+ def HasField(self, field_name: typing_extensions.Literal["file_close_request", b"file_close_request", "file_delete_bytes_request", b"file_delete_bytes_request", "file_exec_request_oneof", b"file_exec_request_oneof", "file_flush_request", b"file_flush_request", "file_ls_request", b"file_ls_request", "file_mkdir_request", b"file_mkdir_request", "file_open_request", b"file_open_request", "file_read_line_request", b"file_read_line_request", "file_read_request", b"file_read_request", "file_rm_request", b"file_rm_request", "file_seek_request", b"file_seek_request", "file_watch_request", b"file_watch_request", "file_write_replace_bytes_request", b"file_write_replace_bytes_request", "file_write_request", b"file_write_request"]) -> builtins.bool: ...
2776
+ def ClearField(self, field_name: typing_extensions.Literal["file_close_request", b"file_close_request", "file_delete_bytes_request", b"file_delete_bytes_request", "file_exec_request_oneof", b"file_exec_request_oneof", "file_flush_request", b"file_flush_request", "file_ls_request", b"file_ls_request", "file_mkdir_request", b"file_mkdir_request", "file_open_request", b"file_open_request", "file_read_line_request", b"file_read_line_request", "file_read_request", b"file_read_request", "file_rm_request", b"file_rm_request", "file_seek_request", b"file_seek_request", "file_watch_request", b"file_watch_request", "file_write_replace_bytes_request", b"file_write_replace_bytes_request", "file_write_request", b"file_write_request", "task_id", b"task_id"]) -> None: ...
2777
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["file_exec_request_oneof", b"file_exec_request_oneof"]) -> typing_extensions.Literal["file_open_request", "file_write_request", "file_read_request", "file_flush_request", "file_read_line_request", "file_seek_request", "file_delete_bytes_request", "file_write_replace_bytes_request", "file_close_request", "file_ls_request", "file_mkdir_request", "file_rm_request", "file_watch_request"] | None: ...
2634
2778
 
2635
2779
  global___ContainerFilesystemExecRequest = ContainerFilesystemExecRequest
2636
2780
 
@@ -8577,6 +8721,7 @@ class WebhookConfig(google.protobuf.message.Message):
8577
8721
  WEB_SERVER_PORT_FIELD_NUMBER: builtins.int
8578
8722
  WEB_SERVER_STARTUP_TIMEOUT_FIELD_NUMBER: builtins.int
8579
8723
  WEB_ENDPOINT_DOCS_FIELD_NUMBER: builtins.int
8724
+ REQUIRES_PROXY_AUTH_FIELD_NUMBER: builtins.int
8580
8725
  type: global___WebhookType.ValueType
8581
8726
  method: builtins.str
8582
8727
  requested_suffix: builtins.str
@@ -8586,6 +8731,7 @@ class WebhookConfig(google.protobuf.message.Message):
8586
8731
  web_server_port: builtins.int
8587
8732
  web_server_startup_timeout: builtins.float
8588
8733
  web_endpoint_docs: builtins.bool
8734
+ requires_proxy_auth: builtins.bool
8589
8735
  def __init__(
8590
8736
  self,
8591
8737
  *,
@@ -8597,8 +8743,9 @@ class WebhookConfig(google.protobuf.message.Message):
8597
8743
  web_server_port: builtins.int = ...,
8598
8744
  web_server_startup_timeout: builtins.float = ...,
8599
8745
  web_endpoint_docs: builtins.bool = ...,
8746
+ requires_proxy_auth: builtins.bool = ...,
8600
8747
  ) -> None: ...
8601
- def ClearField(self, field_name: typing_extensions.Literal["async_mode", b"async_mode", "custom_domains", b"custom_domains", "method", b"method", "requested_suffix", b"requested_suffix", "type", b"type", "web_endpoint_docs", b"web_endpoint_docs", "web_server_port", b"web_server_port", "web_server_startup_timeout", b"web_server_startup_timeout"]) -> None: ...
8748
+ def ClearField(self, field_name: typing_extensions.Literal["async_mode", b"async_mode", "custom_domains", b"custom_domains", "method", b"method", "requested_suffix", b"requested_suffix", "requires_proxy_auth", b"requires_proxy_auth", "type", b"type", "web_endpoint_docs", b"web_endpoint_docs", "web_server_port", b"web_server_port", "web_server_startup_timeout", b"web_server_startup_timeout"]) -> None: ...
8602
8749
 
8603
8750
  global___WebhookConfig = WebhookConfig
8604
8751
 
modal_version/__init__.py CHANGED
@@ -7,7 +7,7 @@ from ._version_generated import build_number
7
7
  major_number = 0
8
8
 
9
9
  # Bump this manually on breaking changes, then reset the number in _version_generated.py
10
- minor_number = 67
10
+ minor_number = 68
11
11
 
12
12
  # Right now, automatically increment the patch number in CI
13
13
  __version__ = f"{major_number}.{minor_number}.{max(build_number, 0)}"
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2024
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 43 # git: 98ef292
4
+ build_number = 24 # git: da5127e