modal 1.0.3.dev10__py3-none-any.whl → 1.2.3.dev7__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.

Files changed (160) hide show
  1. modal/__init__.py +0 -2
  2. modal/__main__.py +3 -4
  3. modal/_billing.py +80 -0
  4. modal/_clustered_functions.py +7 -3
  5. modal/_clustered_functions.pyi +15 -3
  6. modal/_container_entrypoint.py +51 -69
  7. modal/_functions.py +508 -240
  8. modal/_grpc_client.py +171 -0
  9. modal/_load_context.py +105 -0
  10. modal/_object.py +81 -21
  11. modal/_output.py +58 -45
  12. modal/_partial_function.py +48 -73
  13. modal/_pty.py +7 -3
  14. modal/_resolver.py +26 -46
  15. modal/_runtime/asgi.py +4 -3
  16. modal/_runtime/container_io_manager.py +358 -220
  17. modal/_runtime/container_io_manager.pyi +296 -101
  18. modal/_runtime/execution_context.py +18 -2
  19. modal/_runtime/execution_context.pyi +64 -7
  20. modal/_runtime/gpu_memory_snapshot.py +262 -57
  21. modal/_runtime/user_code_imports.py +28 -58
  22. modal/_serialization.py +90 -6
  23. modal/_traceback.py +42 -1
  24. modal/_tunnel.pyi +380 -12
  25. modal/_utils/async_utils.py +84 -29
  26. modal/_utils/auth_token_manager.py +111 -0
  27. modal/_utils/blob_utils.py +181 -58
  28. modal/_utils/deprecation.py +19 -0
  29. modal/_utils/function_utils.py +91 -47
  30. modal/_utils/grpc_utils.py +89 -66
  31. modal/_utils/mount_utils.py +26 -1
  32. modal/_utils/name_utils.py +17 -3
  33. modal/_utils/task_command_router_client.py +536 -0
  34. modal/_utils/time_utils.py +34 -6
  35. modal/app.py +256 -88
  36. modal/app.pyi +909 -92
  37. modal/billing.py +5 -0
  38. modal/builder/2025.06.txt +18 -0
  39. modal/builder/PREVIEW.txt +18 -0
  40. modal/builder/base-images.json +58 -0
  41. modal/cli/_download.py +19 -3
  42. modal/cli/_traceback.py +3 -2
  43. modal/cli/app.py +4 -4
  44. modal/cli/cluster.py +15 -7
  45. modal/cli/config.py +5 -3
  46. modal/cli/container.py +7 -6
  47. modal/cli/dict.py +22 -16
  48. modal/cli/entry_point.py +12 -5
  49. modal/cli/environment.py +5 -4
  50. modal/cli/import_refs.py +3 -3
  51. modal/cli/launch.py +102 -5
  52. modal/cli/network_file_system.py +11 -12
  53. modal/cli/profile.py +3 -2
  54. modal/cli/programs/launch_instance_ssh.py +94 -0
  55. modal/cli/programs/run_jupyter.py +1 -1
  56. modal/cli/programs/run_marimo.py +95 -0
  57. modal/cli/programs/vscode.py +1 -1
  58. modal/cli/queues.py +57 -26
  59. modal/cli/run.py +91 -23
  60. modal/cli/secret.py +48 -22
  61. modal/cli/token.py +7 -8
  62. modal/cli/utils.py +4 -7
  63. modal/cli/volume.py +31 -25
  64. modal/client.py +15 -85
  65. modal/client.pyi +183 -62
  66. modal/cloud_bucket_mount.py +5 -3
  67. modal/cloud_bucket_mount.pyi +197 -5
  68. modal/cls.py +200 -126
  69. modal/cls.pyi +446 -68
  70. modal/config.py +29 -11
  71. modal/container_process.py +319 -19
  72. modal/container_process.pyi +190 -20
  73. modal/dict.py +290 -71
  74. modal/dict.pyi +835 -83
  75. modal/environments.py +15 -27
  76. modal/environments.pyi +46 -24
  77. modal/exception.py +14 -2
  78. modal/experimental/__init__.py +194 -40
  79. modal/experimental/flash.py +618 -0
  80. modal/experimental/flash.pyi +380 -0
  81. modal/experimental/ipython.py +11 -7
  82. modal/file_io.py +29 -36
  83. modal/file_io.pyi +251 -53
  84. modal/file_pattern_matcher.py +56 -16
  85. modal/functions.pyi +673 -92
  86. modal/gpu.py +1 -1
  87. modal/image.py +528 -176
  88. modal/image.pyi +1572 -145
  89. modal/io_streams.py +458 -128
  90. modal/io_streams.pyi +433 -52
  91. modal/mount.py +216 -151
  92. modal/mount.pyi +225 -78
  93. modal/network_file_system.py +45 -62
  94. modal/network_file_system.pyi +277 -56
  95. modal/object.pyi +93 -17
  96. modal/parallel_map.py +942 -129
  97. modal/parallel_map.pyi +294 -15
  98. modal/partial_function.py +0 -2
  99. modal/partial_function.pyi +234 -19
  100. modal/proxy.py +17 -8
  101. modal/proxy.pyi +36 -3
  102. modal/queue.py +270 -65
  103. modal/queue.pyi +817 -57
  104. modal/runner.py +115 -101
  105. modal/runner.pyi +205 -49
  106. modal/sandbox.py +512 -136
  107. modal/sandbox.pyi +845 -111
  108. modal/schedule.py +1 -1
  109. modal/secret.py +300 -70
  110. modal/secret.pyi +589 -34
  111. modal/serving.py +7 -11
  112. modal/serving.pyi +7 -8
  113. modal/snapshot.py +11 -8
  114. modal/snapshot.pyi +25 -4
  115. modal/token_flow.py +4 -4
  116. modal/token_flow.pyi +28 -8
  117. modal/volume.py +416 -158
  118. modal/volume.pyi +1117 -121
  119. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/METADATA +10 -9
  120. modal-1.2.3.dev7.dist-info/RECORD +195 -0
  121. modal_docs/mdmd/mdmd.py +17 -4
  122. modal_proto/api.proto +534 -79
  123. modal_proto/api_grpc.py +337 -1
  124. modal_proto/api_pb2.py +1522 -968
  125. modal_proto/api_pb2.pyi +1619 -134
  126. modal_proto/api_pb2_grpc.py +699 -4
  127. modal_proto/api_pb2_grpc.pyi +226 -14
  128. modal_proto/modal_api_grpc.py +175 -154
  129. modal_proto/sandbox_router.proto +145 -0
  130. modal_proto/sandbox_router_grpc.py +105 -0
  131. modal_proto/sandbox_router_pb2.py +149 -0
  132. modal_proto/sandbox_router_pb2.pyi +333 -0
  133. modal_proto/sandbox_router_pb2_grpc.py +203 -0
  134. modal_proto/sandbox_router_pb2_grpc.pyi +75 -0
  135. modal_proto/task_command_router.proto +144 -0
  136. modal_proto/task_command_router_grpc.py +105 -0
  137. modal_proto/task_command_router_pb2.py +149 -0
  138. modal_proto/task_command_router_pb2.pyi +333 -0
  139. modal_proto/task_command_router_pb2_grpc.py +203 -0
  140. modal_proto/task_command_router_pb2_grpc.pyi +75 -0
  141. modal_version/__init__.py +1 -1
  142. modal/requirements/PREVIEW.txt +0 -16
  143. modal/requirements/base-images.json +0 -26
  144. modal-1.0.3.dev10.dist-info/RECORD +0 -179
  145. modal_proto/modal_options_grpc.py +0 -3
  146. modal_proto/options.proto +0 -19
  147. modal_proto/options_grpc.py +0 -3
  148. modal_proto/options_pb2.py +0 -35
  149. modal_proto/options_pb2.pyi +0 -20
  150. modal_proto/options_pb2_grpc.py +0 -4
  151. modal_proto/options_pb2_grpc.pyi +0 -7
  152. /modal/{requirements → builder}/2023.12.312.txt +0 -0
  153. /modal/{requirements → builder}/2023.12.txt +0 -0
  154. /modal/{requirements → builder}/2024.04.txt +0 -0
  155. /modal/{requirements → builder}/2024.10.txt +0 -0
  156. /modal/{requirements → builder}/README.md +0 -0
  157. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/WHEEL +0 -0
  158. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/entry_points.txt +0 -0
  159. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/licenses/LICENSE +0 -0
  160. {modal-1.0.3.dev10.dist-info → modal-1.2.3.dev7.dist-info}/top_level.txt +0 -0
@@ -47,6 +47,10 @@ class ModalClientStub:
47
47
  modal_proto.api_pb2.AppGetOrCreateRequest,
48
48
  modal_proto.api_pb2.AppGetOrCreateResponse,
49
49
  ]
50
+ AppGetTags: grpc.UnaryUnaryMultiCallable[
51
+ modal_proto.api_pb2.AppGetTagsRequest,
52
+ modal_proto.api_pb2.AppGetTagsResponse,
53
+ ]
50
54
  AppHeartbeat: grpc.UnaryUnaryMultiCallable[
51
55
  modal_proto.api_pb2.AppHeartbeatRequest,
52
56
  google.protobuf.empty_pb2.Empty,
@@ -71,6 +75,10 @@ class ModalClientStub:
71
75
  modal_proto.api_pb2.AppSetObjectsRequest,
72
76
  google.protobuf.empty_pb2.Empty,
73
77
  ]
78
+ AppSetTags: grpc.UnaryUnaryMultiCallable[
79
+ modal_proto.api_pb2.AppSetTagsRequest,
80
+ google.protobuf.empty_pb2.Empty,
81
+ ]
74
82
  AppStop: grpc.UnaryUnaryMultiCallable[
75
83
  modal_proto.api_pb2.AppStopRequest,
76
84
  google.protobuf.empty_pb2.Empty,
@@ -79,10 +87,7 @@ class ModalClientStub:
79
87
  modal_proto.api_pb2.AttemptAwaitRequest,
80
88
  modal_proto.api_pb2.AttemptAwaitResponse,
81
89
  ]
82
- """Input Plane
83
- These RPCs are experimental, not deployed to production, and can be changed / removed
84
- without needing to worry about backwards compatibility.
85
- """
90
+ """Input Plane"""
86
91
  AttemptRetry: grpc.UnaryUnaryMultiCallable[
87
92
  modal_proto.api_pb2.AttemptRetryRequest,
88
93
  modal_proto.api_pb2.AttemptRetryResponse,
@@ -91,6 +96,11 @@ class ModalClientStub:
91
96
  modal_proto.api_pb2.AttemptStartRequest,
92
97
  modal_proto.api_pb2.AttemptStartResponse,
93
98
  ]
99
+ AuthTokenGet: grpc.UnaryUnaryMultiCallable[
100
+ modal_proto.api_pb2.AuthTokenGetRequest,
101
+ modal_proto.api_pb2.AuthTokenGetResponse,
102
+ ]
103
+ """Auth Token"""
94
104
  BlobCreate: grpc.UnaryUnaryMultiCallable[
95
105
  modal_proto.api_pb2.BlobCreateRequest,
96
106
  modal_proto.api_pb2.BlobCreateResponse,
@@ -164,6 +174,10 @@ class ModalClientStub:
164
174
  modal_proto.api_pb2.ContainerLogRequest,
165
175
  google.protobuf.empty_pb2.Empty,
166
176
  ]
177
+ ContainerReloadVolumes: grpc.UnaryUnaryMultiCallable[
178
+ modal_proto.api_pb2.ContainerReloadVolumesRequest,
179
+ modal_proto.api_pb2.ContainerReloadVolumesResponse,
180
+ ]
167
181
  ContainerStop: grpc.UnaryUnaryMultiCallable[
168
182
  modal_proto.api_pb2.ContainerStopRequest,
169
183
  modal_proto.api_pb2.ContainerStopResponse,
@@ -247,6 +261,23 @@ class ModalClientStub:
247
261
  modal_proto.api_pb2.EnvironmentUpdateRequest,
248
262
  modal_proto.api_pb2.EnvironmentListItem,
249
263
  ]
264
+ FlashContainerDeregister: grpc.UnaryUnaryMultiCallable[
265
+ modal_proto.api_pb2.FlashContainerDeregisterRequest,
266
+ google.protobuf.empty_pb2.Empty,
267
+ ]
268
+ """Modal Flash (experimental)"""
269
+ FlashContainerList: grpc.UnaryUnaryMultiCallable[
270
+ modal_proto.api_pb2.FlashContainerListRequest,
271
+ modal_proto.api_pb2.FlashContainerListResponse,
272
+ ]
273
+ FlashContainerRegister: grpc.UnaryUnaryMultiCallable[
274
+ modal_proto.api_pb2.FlashContainerRegisterRequest,
275
+ modal_proto.api_pb2.FlashContainerRegisterResponse,
276
+ ]
277
+ FlashSetTargetSlotsMetrics: grpc.UnaryUnaryMultiCallable[
278
+ modal_proto.api_pb2.FlashSetTargetSlotsMetricsRequest,
279
+ modal_proto.api_pb2.FlashSetTargetSlotsMetricsResponse,
280
+ ]
250
281
  FunctionAsyncInvoke: grpc.UnaryUnaryMultiCallable[
251
282
  modal_proto.api_pb2.FunctionAsyncInvokeRequest,
252
283
  modal_proto.api_pb2.FunctionAsyncInvokeResponse,
@@ -260,6 +291,10 @@ class ModalClientStub:
260
291
  modal_proto.api_pb2.FunctionCallCancelRequest,
261
292
  google.protobuf.empty_pb2.Empty,
262
293
  ]
294
+ FunctionCallFromId: grpc.UnaryUnaryMultiCallable[
295
+ modal_proto.api_pb2.FunctionCallFromIdRequest,
296
+ modal_proto.api_pb2.FunctionCallFromIdResponse,
297
+ ]
263
298
  FunctionCallGetDataIn: grpc.UnaryStreamMultiCallable[
264
299
  modal_proto.api_pb2.FunctionCallGetDataRequest,
265
300
  modal_proto.api_pb2.DataChunk,
@@ -280,6 +315,11 @@ class ModalClientStub:
280
315
  modal_proto.api_pb2.FunctionCreateRequest,
281
316
  modal_proto.api_pb2.FunctionCreateResponse,
282
317
  ]
318
+ FunctionFinishInputs: grpc.UnaryUnaryMultiCallable[
319
+ modal_proto.api_pb2.FunctionFinishInputsRequest,
320
+ google.protobuf.empty_pb2.Empty,
321
+ ]
322
+ """For map RPCs, to signal that all inputs have been sent"""
283
323
  FunctionGet: grpc.UnaryUnaryMultiCallable[
284
324
  modal_proto.api_pb2.FunctionGetRequest,
285
325
  modal_proto.api_pb2.FunctionGetResponse,
@@ -339,11 +379,15 @@ class ModalClientStub:
339
379
  modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
340
380
  modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
341
381
  ]
382
+ ImageDelete: grpc.UnaryUnaryMultiCallable[
383
+ modal_proto.api_pb2.ImageDeleteRequest,
384
+ google.protobuf.empty_pb2.Empty,
385
+ ]
386
+ """Images"""
342
387
  ImageFromId: grpc.UnaryUnaryMultiCallable[
343
388
  modal_proto.api_pb2.ImageFromIdRequest,
344
389
  modal_proto.api_pb2.ImageFromIdResponse,
345
390
  ]
346
- """Images"""
347
391
  ImageGetOrCreate: grpc.UnaryUnaryMultiCallable[
348
392
  modal_proto.api_pb2.ImageGetOrCreateRequest,
349
393
  modal_proto.api_pb2.ImageGetOrCreateResponse,
@@ -352,6 +396,19 @@ class ModalClientStub:
352
396
  modal_proto.api_pb2.ImageJoinStreamingRequest,
353
397
  modal_proto.api_pb2.ImageJoinStreamingResponse,
354
398
  ]
399
+ MapAwait: grpc.UnaryUnaryMultiCallable[
400
+ modal_proto.api_pb2.MapAwaitRequest,
401
+ modal_proto.api_pb2.MapAwaitResponse,
402
+ ]
403
+ """Input Plane Map"""
404
+ MapCheckInputs: grpc.UnaryUnaryMultiCallable[
405
+ modal_proto.api_pb2.MapCheckInputsRequest,
406
+ modal_proto.api_pb2.MapCheckInputsResponse,
407
+ ]
408
+ MapStartOrContinue: grpc.UnaryUnaryMultiCallable[
409
+ modal_proto.api_pb2.MapStartOrContinueRequest,
410
+ modal_proto.api_pb2.MapStartOrContinueResponse,
411
+ ]
355
412
  MountGetOrCreate: grpc.UnaryUnaryMultiCallable[
356
413
  modal_proto.api_pb2.MountGetOrCreateRequest,
357
414
  modal_proto.api_pb2.MountGetOrCreateResponse,
@@ -437,6 +494,14 @@ class ModalClientStub:
437
494
  modal_proto.api_pb2.SandboxCreateResponse,
438
495
  ]
439
496
  """Sandboxes"""
497
+ SandboxCreateConnectToken: grpc.UnaryUnaryMultiCallable[
498
+ modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
499
+ modal_proto.api_pb2.SandboxCreateConnectTokenResponse,
500
+ ]
501
+ SandboxGetFromName: grpc.UnaryUnaryMultiCallable[
502
+ modal_proto.api_pb2.SandboxGetFromNameRequest,
503
+ modal_proto.api_pb2.SandboxGetFromNameResponse,
504
+ ]
440
505
  SandboxGetLogs: grpc.UnaryStreamMultiCallable[
441
506
  modal_proto.api_pb2.SandboxGetLogsRequest,
442
507
  modal_proto.api_pb2.TaskLogsBatch,
@@ -470,6 +535,14 @@ class ModalClientStub:
470
535
  modal_proto.api_pb2.SandboxSnapshotFsRequest,
471
536
  modal_proto.api_pb2.SandboxSnapshotFsResponse,
472
537
  ]
538
+ SandboxSnapshotFsAsync: grpc.UnaryUnaryMultiCallable[
539
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncRequest,
540
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncResponse,
541
+ ]
542
+ SandboxSnapshotFsAsyncGet: grpc.UnaryUnaryMultiCallable[
543
+ modal_proto.api_pb2.SandboxSnapshotFsAsyncGetRequest,
544
+ modal_proto.api_pb2.SandboxSnapshotFsResponse,
545
+ ]
473
546
  SandboxSnapshotGet: grpc.UnaryUnaryMultiCallable[
474
547
  modal_proto.api_pb2.SandboxSnapshotGetRequest,
475
548
  modal_proto.api_pb2.SandboxSnapshotGetResponse,
@@ -482,6 +555,10 @@ class ModalClientStub:
482
555
  modal_proto.api_pb2.SandboxStdinWriteRequest,
483
556
  modal_proto.api_pb2.SandboxStdinWriteResponse,
484
557
  ]
558
+ SandboxTagsGet: grpc.UnaryUnaryMultiCallable[
559
+ modal_proto.api_pb2.SandboxTagsGetRequest,
560
+ modal_proto.api_pb2.SandboxTagsGetResponse,
561
+ ]
485
562
  SandboxTagsSet: grpc.UnaryUnaryMultiCallable[
486
563
  modal_proto.api_pb2.SandboxTagsSetRequest,
487
564
  google.protobuf.empty_pb2.Empty,
@@ -553,6 +630,10 @@ class ModalClientStub:
553
630
  google.protobuf.empty_pb2.Empty,
554
631
  modal_proto.api_pb2.TaskCurrentInputsResponse,
555
632
  ]
633
+ TaskGetCommandRouterAccess: grpc.UnaryUnaryMultiCallable[
634
+ modal_proto.api_pb2.TaskGetCommandRouterAccessRequest,
635
+ modal_proto.api_pb2.TaskGetCommandRouterAccessResponse,
636
+ ]
556
637
  TaskList: grpc.UnaryUnaryMultiCallable[
557
638
  modal_proto.api_pb2.TaskListRequest,
558
639
  modal_proto.api_pb2.TaskListResponse,
@@ -648,11 +729,15 @@ class ModalClientStub:
648
729
  modal_proto.api_pb2.VolumeRenameRequest,
649
730
  google.protobuf.empty_pb2.Empty,
650
731
  ]
732
+ WorkspaceBillingReport: grpc.UnaryStreamMultiCallable[
733
+ modal_proto.api_pb2.WorkspaceBillingReportRequest,
734
+ modal_proto.api_pb2.WorkspaceBillingReportItem,
735
+ ]
736
+ """Workspaces"""
651
737
  WorkspaceNameLookup: grpc.UnaryUnaryMultiCallable[
652
738
  google.protobuf.empty_pb2.Empty,
653
739
  modal_proto.api_pb2.WorkspaceNameLookupResponse,
654
740
  ]
655
- """Workspaces"""
656
741
 
657
742
  class ModalClientServicer(metaclass=abc.ABCMeta):
658
743
  @abc.abstractmethod
@@ -711,6 +796,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
711
796
  context: grpc.ServicerContext,
712
797
  ) -> modal_proto.api_pb2.AppGetOrCreateResponse: ...
713
798
  @abc.abstractmethod
799
+ def AppGetTags(
800
+ self,
801
+ request: modal_proto.api_pb2.AppGetTagsRequest,
802
+ context: grpc.ServicerContext,
803
+ ) -> modal_proto.api_pb2.AppGetTagsResponse: ...
804
+ @abc.abstractmethod
714
805
  def AppHeartbeat(
715
806
  self,
716
807
  request: modal_proto.api_pb2.AppHeartbeatRequest,
@@ -747,6 +838,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
747
838
  context: grpc.ServicerContext,
748
839
  ) -> google.protobuf.empty_pb2.Empty: ...
749
840
  @abc.abstractmethod
841
+ def AppSetTags(
842
+ self,
843
+ request: modal_proto.api_pb2.AppSetTagsRequest,
844
+ context: grpc.ServicerContext,
845
+ ) -> google.protobuf.empty_pb2.Empty: ...
846
+ @abc.abstractmethod
750
847
  def AppStop(
751
848
  self,
752
849
  request: modal_proto.api_pb2.AppStopRequest,
@@ -758,10 +855,7 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
758
855
  request: modal_proto.api_pb2.AttemptAwaitRequest,
759
856
  context: grpc.ServicerContext,
760
857
  ) -> modal_proto.api_pb2.AttemptAwaitResponse:
761
- """Input Plane
762
- These RPCs are experimental, not deployed to production, and can be changed / removed
763
- without needing to worry about backwards compatibility.
764
- """
858
+ """Input Plane"""
765
859
  @abc.abstractmethod
766
860
  def AttemptRetry(
767
861
  self,
@@ -775,6 +869,13 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
775
869
  context: grpc.ServicerContext,
776
870
  ) -> modal_proto.api_pb2.AttemptStartResponse: ...
777
871
  @abc.abstractmethod
872
+ def AuthTokenGet(
873
+ self,
874
+ request: modal_proto.api_pb2.AuthTokenGetRequest,
875
+ context: grpc.ServicerContext,
876
+ ) -> modal_proto.api_pb2.AuthTokenGetResponse:
877
+ """Auth Token"""
878
+ @abc.abstractmethod
778
879
  def BlobCreate(
779
880
  self,
780
881
  request: modal_proto.api_pb2.BlobCreateRequest,
@@ -882,6 +983,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
882
983
  context: grpc.ServicerContext,
883
984
  ) -> google.protobuf.empty_pb2.Empty: ...
884
985
  @abc.abstractmethod
986
+ def ContainerReloadVolumes(
987
+ self,
988
+ request: modal_proto.api_pb2.ContainerReloadVolumesRequest,
989
+ context: grpc.ServicerContext,
990
+ ) -> modal_proto.api_pb2.ContainerReloadVolumesResponse: ...
991
+ @abc.abstractmethod
885
992
  def ContainerStop(
886
993
  self,
887
994
  request: modal_proto.api_pb2.ContainerStopRequest,
@@ -1005,6 +1112,31 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1005
1112
  context: grpc.ServicerContext,
1006
1113
  ) -> modal_proto.api_pb2.EnvironmentListItem: ...
1007
1114
  @abc.abstractmethod
1115
+ def FlashContainerDeregister(
1116
+ self,
1117
+ request: modal_proto.api_pb2.FlashContainerDeregisterRequest,
1118
+ context: grpc.ServicerContext,
1119
+ ) -> google.protobuf.empty_pb2.Empty:
1120
+ """Modal Flash (experimental)"""
1121
+ @abc.abstractmethod
1122
+ def FlashContainerList(
1123
+ self,
1124
+ request: modal_proto.api_pb2.FlashContainerListRequest,
1125
+ context: grpc.ServicerContext,
1126
+ ) -> modal_proto.api_pb2.FlashContainerListResponse: ...
1127
+ @abc.abstractmethod
1128
+ def FlashContainerRegister(
1129
+ self,
1130
+ request: modal_proto.api_pb2.FlashContainerRegisterRequest,
1131
+ context: grpc.ServicerContext,
1132
+ ) -> modal_proto.api_pb2.FlashContainerRegisterResponse: ...
1133
+ @abc.abstractmethod
1134
+ def FlashSetTargetSlotsMetrics(
1135
+ self,
1136
+ request: modal_proto.api_pb2.FlashSetTargetSlotsMetricsRequest,
1137
+ context: grpc.ServicerContext,
1138
+ ) -> modal_proto.api_pb2.FlashSetTargetSlotsMetricsResponse: ...
1139
+ @abc.abstractmethod
1008
1140
  def FunctionAsyncInvoke(
1009
1141
  self,
1010
1142
  request: modal_proto.api_pb2.FunctionAsyncInvokeRequest,
@@ -1024,6 +1156,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1024
1156
  context: grpc.ServicerContext,
1025
1157
  ) -> google.protobuf.empty_pb2.Empty: ...
1026
1158
  @abc.abstractmethod
1159
+ def FunctionCallFromId(
1160
+ self,
1161
+ request: modal_proto.api_pb2.FunctionCallFromIdRequest,
1162
+ context: grpc.ServicerContext,
1163
+ ) -> modal_proto.api_pb2.FunctionCallFromIdResponse: ...
1164
+ @abc.abstractmethod
1027
1165
  def FunctionCallGetDataIn(
1028
1166
  self,
1029
1167
  request: modal_proto.api_pb2.FunctionCallGetDataRequest,
@@ -1054,6 +1192,13 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1054
1192
  context: grpc.ServicerContext,
1055
1193
  ) -> modal_proto.api_pb2.FunctionCreateResponse: ...
1056
1194
  @abc.abstractmethod
1195
+ def FunctionFinishInputs(
1196
+ self,
1197
+ request: modal_proto.api_pb2.FunctionFinishInputsRequest,
1198
+ context: grpc.ServicerContext,
1199
+ ) -> google.protobuf.empty_pb2.Empty:
1200
+ """For map RPCs, to signal that all inputs have been sent"""
1201
+ @abc.abstractmethod
1057
1202
  def FunctionGet(
1058
1203
  self,
1059
1204
  request: modal_proto.api_pb2.FunctionGetRequest,
@@ -1141,12 +1286,18 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1141
1286
  context: grpc.ServicerContext,
1142
1287
  ) -> modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse: ...
1143
1288
  @abc.abstractmethod
1289
+ def ImageDelete(
1290
+ self,
1291
+ request: modal_proto.api_pb2.ImageDeleteRequest,
1292
+ context: grpc.ServicerContext,
1293
+ ) -> google.protobuf.empty_pb2.Empty:
1294
+ """Images"""
1295
+ @abc.abstractmethod
1144
1296
  def ImageFromId(
1145
1297
  self,
1146
1298
  request: modal_proto.api_pb2.ImageFromIdRequest,
1147
1299
  context: grpc.ServicerContext,
1148
- ) -> modal_proto.api_pb2.ImageFromIdResponse:
1149
- """Images"""
1300
+ ) -> modal_proto.api_pb2.ImageFromIdResponse: ...
1150
1301
  @abc.abstractmethod
1151
1302
  def ImageGetOrCreate(
1152
1303
  self,
@@ -1160,6 +1311,25 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1160
1311
  context: grpc.ServicerContext,
1161
1312
  ) -> collections.abc.Iterator[modal_proto.api_pb2.ImageJoinStreamingResponse]: ...
1162
1313
  @abc.abstractmethod
1314
+ def MapAwait(
1315
+ self,
1316
+ request: modal_proto.api_pb2.MapAwaitRequest,
1317
+ context: grpc.ServicerContext,
1318
+ ) -> modal_proto.api_pb2.MapAwaitResponse:
1319
+ """Input Plane Map"""
1320
+ @abc.abstractmethod
1321
+ def MapCheckInputs(
1322
+ self,
1323
+ request: modal_proto.api_pb2.MapCheckInputsRequest,
1324
+ context: grpc.ServicerContext,
1325
+ ) -> modal_proto.api_pb2.MapCheckInputsResponse: ...
1326
+ @abc.abstractmethod
1327
+ def MapStartOrContinue(
1328
+ self,
1329
+ request: modal_proto.api_pb2.MapStartOrContinueRequest,
1330
+ context: grpc.ServicerContext,
1331
+ ) -> modal_proto.api_pb2.MapStartOrContinueResponse: ...
1332
+ @abc.abstractmethod
1163
1333
  def MountGetOrCreate(
1164
1334
  self,
1165
1335
  request: modal_proto.api_pb2.MountGetOrCreateRequest,
@@ -1285,6 +1455,18 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1285
1455
  ) -> modal_proto.api_pb2.SandboxCreateResponse:
1286
1456
  """Sandboxes"""
1287
1457
  @abc.abstractmethod
1458
+ def SandboxCreateConnectToken(
1459
+ self,
1460
+ request: modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
1461
+ context: grpc.ServicerContext,
1462
+ ) -> modal_proto.api_pb2.SandboxCreateConnectTokenResponse: ...
1463
+ @abc.abstractmethod
1464
+ def SandboxGetFromName(
1465
+ self,
1466
+ request: modal_proto.api_pb2.SandboxGetFromNameRequest,
1467
+ context: grpc.ServicerContext,
1468
+ ) -> modal_proto.api_pb2.SandboxGetFromNameResponse: ...
1469
+ @abc.abstractmethod
1288
1470
  def SandboxGetLogs(
1289
1471
  self,
1290
1472
  request: modal_proto.api_pb2.SandboxGetLogsRequest,
@@ -1334,6 +1516,18 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1334
1516
  context: grpc.ServicerContext,
1335
1517
  ) -> modal_proto.api_pb2.SandboxSnapshotFsResponse: ...
1336
1518
  @abc.abstractmethod
1519
+ def SandboxSnapshotFsAsync(
1520
+ self,
1521
+ request: modal_proto.api_pb2.SandboxSnapshotFsAsyncRequest,
1522
+ context: grpc.ServicerContext,
1523
+ ) -> modal_proto.api_pb2.SandboxSnapshotFsAsyncResponse: ...
1524
+ @abc.abstractmethod
1525
+ def SandboxSnapshotFsAsyncGet(
1526
+ self,
1527
+ request: modal_proto.api_pb2.SandboxSnapshotFsAsyncGetRequest,
1528
+ context: grpc.ServicerContext,
1529
+ ) -> modal_proto.api_pb2.SandboxSnapshotFsResponse: ...
1530
+ @abc.abstractmethod
1337
1531
  def SandboxSnapshotGet(
1338
1532
  self,
1339
1533
  request: modal_proto.api_pb2.SandboxSnapshotGetRequest,
@@ -1352,6 +1546,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1352
1546
  context: grpc.ServicerContext,
1353
1547
  ) -> modal_proto.api_pb2.SandboxStdinWriteResponse: ...
1354
1548
  @abc.abstractmethod
1549
+ def SandboxTagsGet(
1550
+ self,
1551
+ request: modal_proto.api_pb2.SandboxTagsGetRequest,
1552
+ context: grpc.ServicerContext,
1553
+ ) -> modal_proto.api_pb2.SandboxTagsGetResponse: ...
1554
+ @abc.abstractmethod
1355
1555
  def SandboxTagsSet(
1356
1556
  self,
1357
1557
  request: modal_proto.api_pb2.SandboxTagsSetRequest,
@@ -1457,6 +1657,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1457
1657
  context: grpc.ServicerContext,
1458
1658
  ) -> modal_proto.api_pb2.TaskCurrentInputsResponse: ...
1459
1659
  @abc.abstractmethod
1660
+ def TaskGetCommandRouterAccess(
1661
+ self,
1662
+ request: modal_proto.api_pb2.TaskGetCommandRouterAccessRequest,
1663
+ context: grpc.ServicerContext,
1664
+ ) -> modal_proto.api_pb2.TaskGetCommandRouterAccessResponse: ...
1665
+ @abc.abstractmethod
1460
1666
  def TaskList(
1461
1667
  self,
1462
1668
  request: modal_proto.api_pb2.TaskListRequest,
@@ -1598,11 +1804,17 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1598
1804
  context: grpc.ServicerContext,
1599
1805
  ) -> google.protobuf.empty_pb2.Empty: ...
1600
1806
  @abc.abstractmethod
1807
+ def WorkspaceBillingReport(
1808
+ self,
1809
+ request: modal_proto.api_pb2.WorkspaceBillingReportRequest,
1810
+ context: grpc.ServicerContext,
1811
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.WorkspaceBillingReportItem]:
1812
+ """Workspaces"""
1813
+ @abc.abstractmethod
1601
1814
  def WorkspaceNameLookup(
1602
1815
  self,
1603
1816
  request: google.protobuf.empty_pb2.Empty,
1604
1817
  context: grpc.ServicerContext,
1605
- ) -> modal_proto.api_pb2.WorkspaceNameLookupResponse:
1606
- """Workspaces"""
1818
+ ) -> modal_proto.api_pb2.WorkspaceNameLookupResponse: ...
1607
1819
 
1608
1820
  def add_ModalClientServicer_to_server(servicer: ModalClientServicer, server: grpc.Server) -> None: ...