modal 0.72.5__py3-none-any.whl → 0.72.48__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 (73) hide show
  1. modal/_container_entrypoint.py +5 -10
  2. modal/_object.py +297 -0
  3. modal/_resolver.py +7 -5
  4. modal/_runtime/container_io_manager.py +0 -11
  5. modal/_runtime/user_code_imports.py +7 -7
  6. modal/_serialization.py +4 -3
  7. modal/_tunnel.py +1 -1
  8. modal/app.py +14 -61
  9. modal/app.pyi +25 -25
  10. modal/cli/app.py +3 -2
  11. modal/cli/container.py +1 -1
  12. modal/cli/import_refs.py +185 -113
  13. modal/cli/launch.py +10 -5
  14. modal/cli/programs/run_jupyter.py +2 -2
  15. modal/cli/programs/vscode.py +3 -3
  16. modal/cli/run.py +134 -68
  17. modal/client.py +1 -0
  18. modal/client.pyi +18 -14
  19. modal/cloud_bucket_mount.py +4 -0
  20. modal/cloud_bucket_mount.pyi +4 -0
  21. modal/cls.py +33 -5
  22. modal/cls.pyi +20 -5
  23. modal/container_process.pyi +8 -6
  24. modal/dict.py +1 -1
  25. modal/dict.pyi +32 -29
  26. modal/environments.py +1 -1
  27. modal/environments.pyi +2 -1
  28. modal/experimental.py +47 -11
  29. modal/experimental.pyi +29 -0
  30. modal/file_io.pyi +30 -28
  31. modal/file_pattern_matcher.py +3 -4
  32. modal/functions.py +31 -23
  33. modal/functions.pyi +57 -50
  34. modal/gpu.py +19 -26
  35. modal/image.py +47 -19
  36. modal/image.pyi +28 -21
  37. modal/io_streams.pyi +14 -12
  38. modal/mount.py +14 -5
  39. modal/mount.pyi +28 -25
  40. modal/network_file_system.py +7 -7
  41. modal/network_file_system.pyi +27 -24
  42. modal/object.py +2 -265
  43. modal/object.pyi +46 -130
  44. modal/parallel_map.py +2 -2
  45. modal/parallel_map.pyi +10 -7
  46. modal/partial_function.py +22 -3
  47. modal/partial_function.pyi +45 -27
  48. modal/proxy.py +1 -1
  49. modal/proxy.pyi +2 -1
  50. modal/queue.py +1 -1
  51. modal/queue.pyi +26 -23
  52. modal/runner.py +14 -3
  53. modal/sandbox.py +11 -7
  54. modal/sandbox.pyi +30 -27
  55. modal/secret.py +1 -1
  56. modal/secret.pyi +2 -1
  57. modal/token_flow.pyi +6 -4
  58. modal/volume.py +1 -1
  59. modal/volume.pyi +36 -33
  60. {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/METADATA +2 -2
  61. {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/RECORD +73 -71
  62. modal_proto/api.proto +151 -4
  63. modal_proto/api_grpc.py +113 -0
  64. modal_proto/api_pb2.py +998 -795
  65. modal_proto/api_pb2.pyi +430 -11
  66. modal_proto/api_pb2_grpc.py +233 -1
  67. modal_proto/api_pb2_grpc.pyi +75 -3
  68. modal_proto/modal_api_grpc.py +7 -0
  69. modal_version/_version_generated.py +1 -1
  70. {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/LICENSE +0 -0
  71. {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/WHEEL +0 -0
  72. {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/entry_points.txt +0 -0
  73. {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/top_level.txt +0 -0
@@ -405,6 +405,16 @@ class ModalClientStub(object):
405
405
  request_serializer=modal__proto_dot_api__pb2.MountPutFileRequest.SerializeToString,
406
406
  response_deserializer=modal__proto_dot_api__pb2.MountPutFileResponse.FromString,
407
407
  )
408
+ self.NotebookKernelPublishResults = channel.unary_unary(
409
+ '/modal.client.ModalClient/NotebookKernelPublishResults',
410
+ request_serializer=modal__proto_dot_api__pb2.NotebookKernelPublishResultsRequest.SerializeToString,
411
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
412
+ )
413
+ self.ProxyAddIp = channel.unary_unary(
414
+ '/modal.client.ModalClient/ProxyAddIp',
415
+ request_serializer=modal__proto_dot_api__pb2.ProxyAddIpRequest.SerializeToString,
416
+ response_deserializer=modal__proto_dot_api__pb2.ProxyAddIpResponse.FromString,
417
+ )
408
418
  self.ProxyCreate = channel.unary_unary(
409
419
  '/modal.client.ModalClient/ProxyCreate',
410
420
  request_serializer=modal__proto_dot_api__pb2.ProxyCreateRequest.SerializeToString,
@@ -430,6 +440,11 @@ class ModalClientStub(object):
430
440
  request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
431
441
  response_deserializer=modal__proto_dot_api__pb2.ProxyListResponse.FromString,
432
442
  )
443
+ self.ProxyRemoveIp = channel.unary_unary(
444
+ '/modal.client.ModalClient/ProxyRemoveIp',
445
+ request_serializer=modal__proto_dot_api__pb2.ProxyRemoveIpRequest.SerializeToString,
446
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
447
+ )
433
448
  self.QueueClear = channel.unary_unary(
434
449
  '/modal.client.ModalClient/QueueClear',
435
450
  request_serializer=modal__proto_dot_api__pb2.QueueClearRequest.SerializeToString,
@@ -500,11 +515,31 @@ class ModalClientStub(object):
500
515
  request_serializer=modal__proto_dot_api__pb2.SandboxListRequest.SerializeToString,
501
516
  response_deserializer=modal__proto_dot_api__pb2.SandboxListResponse.FromString,
502
517
  )
518
+ self.SandboxRestore = channel.unary_unary(
519
+ '/modal.client.ModalClient/SandboxRestore',
520
+ request_serializer=modal__proto_dot_api__pb2.SandboxRestoreRequest.SerializeToString,
521
+ response_deserializer=modal__proto_dot_api__pb2.SandboxRestoreResponse.FromString,
522
+ )
523
+ self.SandboxSnapshot = channel.unary_unary(
524
+ '/modal.client.ModalClient/SandboxSnapshot',
525
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotRequest.SerializeToString,
526
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotResponse.FromString,
527
+ )
528
+ self.SandboxSnapshotFromId = channel.unary_unary(
529
+ '/modal.client.ModalClient/SandboxSnapshotFromId',
530
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFromIdRequest.SerializeToString,
531
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFromIdResponse.FromString,
532
+ )
503
533
  self.SandboxSnapshotFs = channel.unary_unary(
504
534
  '/modal.client.ModalClient/SandboxSnapshotFs',
505
535
  request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.SerializeToString,
506
536
  response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.FromString,
507
537
  )
538
+ self.SandboxSnapshotWait = channel.unary_unary(
539
+ '/modal.client.ModalClient/SandboxSnapshotWait',
540
+ request_serializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitRequest.SerializeToString,
541
+ response_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitResponse.FromString,
542
+ )
508
543
  self.SandboxStdinWrite = channel.unary_unary(
509
544
  '/modal.client.ModalClient/SandboxStdinWrite',
510
545
  request_serializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.SerializeToString,
@@ -1177,13 +1212,26 @@ class ModalClientServicer(object):
1177
1212
  context.set_details('Method not implemented!')
1178
1213
  raise NotImplementedError('Method not implemented!')
1179
1214
 
1180
- def ProxyCreate(self, request, context):
1215
+ def NotebookKernelPublishResults(self, request, context):
1216
+ """Notebooks
1217
+ """
1218
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1219
+ context.set_details('Method not implemented!')
1220
+ raise NotImplementedError('Method not implemented!')
1221
+
1222
+ def ProxyAddIp(self, request, context):
1181
1223
  """Proxies
1182
1224
  """
1183
1225
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1184
1226
  context.set_details('Method not implemented!')
1185
1227
  raise NotImplementedError('Method not implemented!')
1186
1228
 
1229
+ def ProxyCreate(self, request, context):
1230
+ """Missing associated documentation comment in .proto file."""
1231
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1232
+ context.set_details('Method not implemented!')
1233
+ raise NotImplementedError('Method not implemented!')
1234
+
1187
1235
  def ProxyDelete(self, request, context):
1188
1236
  """Missing associated documentation comment in .proto file."""
1189
1237
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1208,6 +1256,12 @@ class ModalClientServicer(object):
1208
1256
  context.set_details('Method not implemented!')
1209
1257
  raise NotImplementedError('Method not implemented!')
1210
1258
 
1259
+ def ProxyRemoveIp(self, request, context):
1260
+ """Missing associated documentation comment in .proto file."""
1261
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1262
+ context.set_details('Method not implemented!')
1263
+ raise NotImplementedError('Method not implemented!')
1264
+
1211
1265
  def QueueClear(self, request, context):
1212
1266
  """Queues
1213
1267
  """
@@ -1295,12 +1349,36 @@ class ModalClientServicer(object):
1295
1349
  context.set_details('Method not implemented!')
1296
1350
  raise NotImplementedError('Method not implemented!')
1297
1351
 
1352
+ def SandboxRestore(self, request, context):
1353
+ """Missing associated documentation comment in .proto file."""
1354
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1355
+ context.set_details('Method not implemented!')
1356
+ raise NotImplementedError('Method not implemented!')
1357
+
1358
+ def SandboxSnapshot(self, request, context):
1359
+ """Missing associated documentation comment in .proto file."""
1360
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1361
+ context.set_details('Method not implemented!')
1362
+ raise NotImplementedError('Method not implemented!')
1363
+
1364
+ def SandboxSnapshotFromId(self, request, context):
1365
+ """Missing associated documentation comment in .proto file."""
1366
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1367
+ context.set_details('Method not implemented!')
1368
+ raise NotImplementedError('Method not implemented!')
1369
+
1298
1370
  def SandboxSnapshotFs(self, request, context):
1299
1371
  """Missing associated documentation comment in .proto file."""
1300
1372
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1301
1373
  context.set_details('Method not implemented!')
1302
1374
  raise NotImplementedError('Method not implemented!')
1303
1375
 
1376
+ def SandboxSnapshotWait(self, request, context):
1377
+ """Missing associated documentation comment in .proto file."""
1378
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1379
+ context.set_details('Method not implemented!')
1380
+ raise NotImplementedError('Method not implemented!')
1381
+
1304
1382
  def SandboxStdinWrite(self, request, context):
1305
1383
  """Missing associated documentation comment in .proto file."""
1306
1384
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1923,6 +2001,16 @@ def add_ModalClientServicer_to_server(servicer, server):
1923
2001
  request_deserializer=modal__proto_dot_api__pb2.MountPutFileRequest.FromString,
1924
2002
  response_serializer=modal__proto_dot_api__pb2.MountPutFileResponse.SerializeToString,
1925
2003
  ),
2004
+ 'NotebookKernelPublishResults': grpc.unary_unary_rpc_method_handler(
2005
+ servicer.NotebookKernelPublishResults,
2006
+ request_deserializer=modal__proto_dot_api__pb2.NotebookKernelPublishResultsRequest.FromString,
2007
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2008
+ ),
2009
+ 'ProxyAddIp': grpc.unary_unary_rpc_method_handler(
2010
+ servicer.ProxyAddIp,
2011
+ request_deserializer=modal__proto_dot_api__pb2.ProxyAddIpRequest.FromString,
2012
+ response_serializer=modal__proto_dot_api__pb2.ProxyAddIpResponse.SerializeToString,
2013
+ ),
1926
2014
  'ProxyCreate': grpc.unary_unary_rpc_method_handler(
1927
2015
  servicer.ProxyCreate,
1928
2016
  request_deserializer=modal__proto_dot_api__pb2.ProxyCreateRequest.FromString,
@@ -1948,6 +2036,11 @@ def add_ModalClientServicer_to_server(servicer, server):
1948
2036
  request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
1949
2037
  response_serializer=modal__proto_dot_api__pb2.ProxyListResponse.SerializeToString,
1950
2038
  ),
2039
+ 'ProxyRemoveIp': grpc.unary_unary_rpc_method_handler(
2040
+ servicer.ProxyRemoveIp,
2041
+ request_deserializer=modal__proto_dot_api__pb2.ProxyRemoveIpRequest.FromString,
2042
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
2043
+ ),
1951
2044
  'QueueClear': grpc.unary_unary_rpc_method_handler(
1952
2045
  servicer.QueueClear,
1953
2046
  request_deserializer=modal__proto_dot_api__pb2.QueueClearRequest.FromString,
@@ -2018,11 +2111,31 @@ def add_ModalClientServicer_to_server(servicer, server):
2018
2111
  request_deserializer=modal__proto_dot_api__pb2.SandboxListRequest.FromString,
2019
2112
  response_serializer=modal__proto_dot_api__pb2.SandboxListResponse.SerializeToString,
2020
2113
  ),
2114
+ 'SandboxRestore': grpc.unary_unary_rpc_method_handler(
2115
+ servicer.SandboxRestore,
2116
+ request_deserializer=modal__proto_dot_api__pb2.SandboxRestoreRequest.FromString,
2117
+ response_serializer=modal__proto_dot_api__pb2.SandboxRestoreResponse.SerializeToString,
2118
+ ),
2119
+ 'SandboxSnapshot': grpc.unary_unary_rpc_method_handler(
2120
+ servicer.SandboxSnapshot,
2121
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotRequest.FromString,
2122
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotResponse.SerializeToString,
2123
+ ),
2124
+ 'SandboxSnapshotFromId': grpc.unary_unary_rpc_method_handler(
2125
+ servicer.SandboxSnapshotFromId,
2126
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFromIdRequest.FromString,
2127
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFromIdResponse.SerializeToString,
2128
+ ),
2021
2129
  'SandboxSnapshotFs': grpc.unary_unary_rpc_method_handler(
2022
2130
  servicer.SandboxSnapshotFs,
2023
2131
  request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotFsRequest.FromString,
2024
2132
  response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotFsResponse.SerializeToString,
2025
2133
  ),
2134
+ 'SandboxSnapshotWait': grpc.unary_unary_rpc_method_handler(
2135
+ servicer.SandboxSnapshotWait,
2136
+ request_deserializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitRequest.FromString,
2137
+ response_serializer=modal__proto_dot_api__pb2.SandboxSnapshotWaitResponse.SerializeToString,
2138
+ ),
2026
2139
  'SandboxStdinWrite': grpc.unary_unary_rpc_method_handler(
2027
2140
  servicer.SandboxStdinWrite,
2028
2141
  request_deserializer=modal__proto_dot_api__pb2.SandboxStdinWriteRequest.FromString,
@@ -3544,6 +3657,40 @@ class ModalClient(object):
3544
3657
  options, channel_credentials,
3545
3658
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3546
3659
 
3660
+ @staticmethod
3661
+ def NotebookKernelPublishResults(request,
3662
+ target,
3663
+ options=(),
3664
+ channel_credentials=None,
3665
+ call_credentials=None,
3666
+ insecure=False,
3667
+ compression=None,
3668
+ wait_for_ready=None,
3669
+ timeout=None,
3670
+ metadata=None):
3671
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/NotebookKernelPublishResults',
3672
+ modal__proto_dot_api__pb2.NotebookKernelPublishResultsRequest.SerializeToString,
3673
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
3674
+ options, channel_credentials,
3675
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3676
+
3677
+ @staticmethod
3678
+ def ProxyAddIp(request,
3679
+ target,
3680
+ options=(),
3681
+ channel_credentials=None,
3682
+ call_credentials=None,
3683
+ insecure=False,
3684
+ compression=None,
3685
+ wait_for_ready=None,
3686
+ timeout=None,
3687
+ metadata=None):
3688
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/ProxyAddIp',
3689
+ modal__proto_dot_api__pb2.ProxyAddIpRequest.SerializeToString,
3690
+ modal__proto_dot_api__pb2.ProxyAddIpResponse.FromString,
3691
+ options, channel_credentials,
3692
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3693
+
3547
3694
  @staticmethod
3548
3695
  def ProxyCreate(request,
3549
3696
  target,
@@ -3629,6 +3776,23 @@ class ModalClient(object):
3629
3776
  options, channel_credentials,
3630
3777
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3631
3778
 
3779
+ @staticmethod
3780
+ def ProxyRemoveIp(request,
3781
+ target,
3782
+ options=(),
3783
+ channel_credentials=None,
3784
+ call_credentials=None,
3785
+ insecure=False,
3786
+ compression=None,
3787
+ wait_for_ready=None,
3788
+ timeout=None,
3789
+ metadata=None):
3790
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/ProxyRemoveIp',
3791
+ modal__proto_dot_api__pb2.ProxyRemoveIpRequest.SerializeToString,
3792
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
3793
+ options, channel_credentials,
3794
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3795
+
3632
3796
  @staticmethod
3633
3797
  def QueueClear(request,
3634
3798
  target,
@@ -3867,6 +4031,57 @@ class ModalClient(object):
3867
4031
  options, channel_credentials,
3868
4032
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3869
4033
 
4034
+ @staticmethod
4035
+ def SandboxRestore(request,
4036
+ target,
4037
+ options=(),
4038
+ channel_credentials=None,
4039
+ call_credentials=None,
4040
+ insecure=False,
4041
+ compression=None,
4042
+ wait_for_ready=None,
4043
+ timeout=None,
4044
+ metadata=None):
4045
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxRestore',
4046
+ modal__proto_dot_api__pb2.SandboxRestoreRequest.SerializeToString,
4047
+ modal__proto_dot_api__pb2.SandboxRestoreResponse.FromString,
4048
+ options, channel_credentials,
4049
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4050
+
4051
+ @staticmethod
4052
+ def SandboxSnapshot(request,
4053
+ target,
4054
+ options=(),
4055
+ channel_credentials=None,
4056
+ call_credentials=None,
4057
+ insecure=False,
4058
+ compression=None,
4059
+ wait_for_ready=None,
4060
+ timeout=None,
4061
+ metadata=None):
4062
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshot',
4063
+ modal__proto_dot_api__pb2.SandboxSnapshotRequest.SerializeToString,
4064
+ modal__proto_dot_api__pb2.SandboxSnapshotResponse.FromString,
4065
+ options, channel_credentials,
4066
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4067
+
4068
+ @staticmethod
4069
+ def SandboxSnapshotFromId(request,
4070
+ target,
4071
+ options=(),
4072
+ channel_credentials=None,
4073
+ call_credentials=None,
4074
+ insecure=False,
4075
+ compression=None,
4076
+ wait_for_ready=None,
4077
+ timeout=None,
4078
+ metadata=None):
4079
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshotFromId',
4080
+ modal__proto_dot_api__pb2.SandboxSnapshotFromIdRequest.SerializeToString,
4081
+ modal__proto_dot_api__pb2.SandboxSnapshotFromIdResponse.FromString,
4082
+ options, channel_credentials,
4083
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4084
+
3870
4085
  @staticmethod
3871
4086
  def SandboxSnapshotFs(request,
3872
4087
  target,
@@ -3884,6 +4099,23 @@ class ModalClient(object):
3884
4099
  options, channel_credentials,
3885
4100
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3886
4101
 
4102
+ @staticmethod
4103
+ def SandboxSnapshotWait(request,
4104
+ target,
4105
+ options=(),
4106
+ channel_credentials=None,
4107
+ call_credentials=None,
4108
+ insecure=False,
4109
+ compression=None,
4110
+ wait_for_ready=None,
4111
+ timeout=None,
4112
+ metadata=None):
4113
+ return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxSnapshotWait',
4114
+ modal__proto_dot_api__pb2.SandboxSnapshotWaitRequest.SerializeToString,
4115
+ modal__proto_dot_api__pb2.SandboxSnapshotWaitResponse.FromString,
4116
+ options, channel_credentials,
4117
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4118
+
3887
4119
  @staticmethod
3888
4120
  def SandboxStdinWrite(request,
3889
4121
  target,
@@ -336,11 +336,20 @@ class ModalClientStub:
336
336
  modal_proto.api_pb2.MountPutFileRequest,
337
337
  modal_proto.api_pb2.MountPutFileResponse,
338
338
  ]
339
+ NotebookKernelPublishResults: grpc.UnaryUnaryMultiCallable[
340
+ modal_proto.api_pb2.NotebookKernelPublishResultsRequest,
341
+ google.protobuf.empty_pb2.Empty,
342
+ ]
343
+ """Notebooks"""
344
+ ProxyAddIp: grpc.UnaryUnaryMultiCallable[
345
+ modal_proto.api_pb2.ProxyAddIpRequest,
346
+ modal_proto.api_pb2.ProxyAddIpResponse,
347
+ ]
348
+ """Proxies"""
339
349
  ProxyCreate: grpc.UnaryUnaryMultiCallable[
340
350
  modal_proto.api_pb2.ProxyCreateRequest,
341
351
  modal_proto.api_pb2.ProxyCreateResponse,
342
352
  ]
343
- """Proxies"""
344
353
  ProxyDelete: grpc.UnaryUnaryMultiCallable[
345
354
  modal_proto.api_pb2.ProxyDeleteRequest,
346
355
  google.protobuf.empty_pb2.Empty,
@@ -357,6 +366,10 @@ class ModalClientStub:
357
366
  google.protobuf.empty_pb2.Empty,
358
367
  modal_proto.api_pb2.ProxyListResponse,
359
368
  ]
369
+ ProxyRemoveIp: grpc.UnaryUnaryMultiCallable[
370
+ modal_proto.api_pb2.ProxyRemoveIpRequest,
371
+ google.protobuf.empty_pb2.Empty,
372
+ ]
360
373
  QueueClear: grpc.UnaryUnaryMultiCallable[
361
374
  modal_proto.api_pb2.QueueClearRequest,
362
375
  google.protobuf.empty_pb2.Empty,
@@ -416,10 +429,26 @@ class ModalClientStub:
416
429
  modal_proto.api_pb2.SandboxListRequest,
417
430
  modal_proto.api_pb2.SandboxListResponse,
418
431
  ]
432
+ SandboxRestore: grpc.UnaryUnaryMultiCallable[
433
+ modal_proto.api_pb2.SandboxRestoreRequest,
434
+ modal_proto.api_pb2.SandboxRestoreResponse,
435
+ ]
436
+ SandboxSnapshot: grpc.UnaryUnaryMultiCallable[
437
+ modal_proto.api_pb2.SandboxSnapshotRequest,
438
+ modal_proto.api_pb2.SandboxSnapshotResponse,
439
+ ]
440
+ SandboxSnapshotFromId: grpc.UnaryUnaryMultiCallable[
441
+ modal_proto.api_pb2.SandboxSnapshotFromIdRequest,
442
+ modal_proto.api_pb2.SandboxSnapshotFromIdResponse,
443
+ ]
419
444
  SandboxSnapshotFs: grpc.UnaryUnaryMultiCallable[
420
445
  modal_proto.api_pb2.SandboxSnapshotFsRequest,
421
446
  modal_proto.api_pb2.SandboxSnapshotFsResponse,
422
447
  ]
448
+ SandboxSnapshotWait: grpc.UnaryUnaryMultiCallable[
449
+ modal_proto.api_pb2.SandboxSnapshotWaitRequest,
450
+ modal_proto.api_pb2.SandboxSnapshotWaitResponse,
451
+ ]
423
452
  SandboxStdinWrite: grpc.UnaryUnaryMultiCallable[
424
453
  modal_proto.api_pb2.SandboxStdinWriteRequest,
425
454
  modal_proto.api_pb2.SandboxStdinWriteResponse,
@@ -1060,12 +1089,25 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1060
1089
  context: grpc.ServicerContext,
1061
1090
  ) -> modal_proto.api_pb2.MountPutFileResponse: ...
1062
1091
  @abc.abstractmethod
1092
+ def NotebookKernelPublishResults(
1093
+ self,
1094
+ request: modal_proto.api_pb2.NotebookKernelPublishResultsRequest,
1095
+ context: grpc.ServicerContext,
1096
+ ) -> google.protobuf.empty_pb2.Empty:
1097
+ """Notebooks"""
1098
+ @abc.abstractmethod
1099
+ def ProxyAddIp(
1100
+ self,
1101
+ request: modal_proto.api_pb2.ProxyAddIpRequest,
1102
+ context: grpc.ServicerContext,
1103
+ ) -> modal_proto.api_pb2.ProxyAddIpResponse:
1104
+ """Proxies"""
1105
+ @abc.abstractmethod
1063
1106
  def ProxyCreate(
1064
1107
  self,
1065
1108
  request: modal_proto.api_pb2.ProxyCreateRequest,
1066
1109
  context: grpc.ServicerContext,
1067
- ) -> modal_proto.api_pb2.ProxyCreateResponse:
1068
- """Proxies"""
1110
+ ) -> modal_proto.api_pb2.ProxyCreateResponse: ...
1069
1111
  @abc.abstractmethod
1070
1112
  def ProxyDelete(
1071
1113
  self,
@@ -1091,6 +1133,12 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1091
1133
  context: grpc.ServicerContext,
1092
1134
  ) -> modal_proto.api_pb2.ProxyListResponse: ...
1093
1135
  @abc.abstractmethod
1136
+ def ProxyRemoveIp(
1137
+ self,
1138
+ request: modal_proto.api_pb2.ProxyRemoveIpRequest,
1139
+ context: grpc.ServicerContext,
1140
+ ) -> google.protobuf.empty_pb2.Empty: ...
1141
+ @abc.abstractmethod
1094
1142
  def QueueClear(
1095
1143
  self,
1096
1144
  request: modal_proto.api_pb2.QueueClearRequest,
@@ -1178,12 +1226,36 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1178
1226
  context: grpc.ServicerContext,
1179
1227
  ) -> modal_proto.api_pb2.SandboxListResponse: ...
1180
1228
  @abc.abstractmethod
1229
+ def SandboxRestore(
1230
+ self,
1231
+ request: modal_proto.api_pb2.SandboxRestoreRequest,
1232
+ context: grpc.ServicerContext,
1233
+ ) -> modal_proto.api_pb2.SandboxRestoreResponse: ...
1234
+ @abc.abstractmethod
1235
+ def SandboxSnapshot(
1236
+ self,
1237
+ request: modal_proto.api_pb2.SandboxSnapshotRequest,
1238
+ context: grpc.ServicerContext,
1239
+ ) -> modal_proto.api_pb2.SandboxSnapshotResponse: ...
1240
+ @abc.abstractmethod
1241
+ def SandboxSnapshotFromId(
1242
+ self,
1243
+ request: modal_proto.api_pb2.SandboxSnapshotFromIdRequest,
1244
+ context: grpc.ServicerContext,
1245
+ ) -> modal_proto.api_pb2.SandboxSnapshotFromIdResponse: ...
1246
+ @abc.abstractmethod
1181
1247
  def SandboxSnapshotFs(
1182
1248
  self,
1183
1249
  request: modal_proto.api_pb2.SandboxSnapshotFsRequest,
1184
1250
  context: grpc.ServicerContext,
1185
1251
  ) -> modal_proto.api_pb2.SandboxSnapshotFsResponse: ...
1186
1252
  @abc.abstractmethod
1253
+ def SandboxSnapshotWait(
1254
+ self,
1255
+ request: modal_proto.api_pb2.SandboxSnapshotWaitRequest,
1256
+ context: grpc.ServicerContext,
1257
+ ) -> modal_proto.api_pb2.SandboxSnapshotWaitResponse: ...
1258
+ @abc.abstractmethod
1187
1259
  def SandboxStdinWrite(
1188
1260
  self,
1189
1261
  request: modal_proto.api_pb2.SandboxStdinWriteRequest,
@@ -90,11 +90,14 @@ class ModalClientModal:
90
90
  self.ImageJoinStreaming = modal.client.UnaryStreamWrapper(grpclib_stub.ImageJoinStreaming, client)
91
91
  self.MountGetOrCreate = modal.client.UnaryUnaryWrapper(grpclib_stub.MountGetOrCreate, client)
92
92
  self.MountPutFile = modal.client.UnaryUnaryWrapper(grpclib_stub.MountPutFile, client)
93
+ self.NotebookKernelPublishResults = modal.client.UnaryUnaryWrapper(grpclib_stub.NotebookKernelPublishResults, client)
94
+ self.ProxyAddIp = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyAddIp, client)
93
95
  self.ProxyCreate = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyCreate, client)
94
96
  self.ProxyDelete = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyDelete, client)
95
97
  self.ProxyGet = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyGet, client)
96
98
  self.ProxyGetOrCreate = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyGetOrCreate, client)
97
99
  self.ProxyList = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyList, client)
100
+ self.ProxyRemoveIp = modal.client.UnaryUnaryWrapper(grpclib_stub.ProxyRemoveIp, client)
98
101
  self.QueueClear = modal.client.UnaryUnaryWrapper(grpclib_stub.QueueClear, client)
99
102
  self.QueueDelete = modal.client.UnaryUnaryWrapper(grpclib_stub.QueueDelete, client)
100
103
  self.QueueGet = modal.client.UnaryUnaryWrapper(grpclib_stub.QueueGet, client)
@@ -109,7 +112,11 @@ class ModalClientModal:
109
112
  self.SandboxGetTaskId = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetTaskId, client)
110
113
  self.SandboxGetTunnels = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetTunnels, client)
111
114
  self.SandboxList = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxList, client)
115
+ self.SandboxRestore = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxRestore, client)
116
+ self.SandboxSnapshot = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshot, client)
117
+ self.SandboxSnapshotFromId = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshotFromId, client)
112
118
  self.SandboxSnapshotFs = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshotFs, client)
119
+ self.SandboxSnapshotWait = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxSnapshotWait, client)
113
120
  self.SandboxStdinWrite = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxStdinWrite, client)
114
121
  self.SandboxTagsSet = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxTagsSet, client)
115
122
  self.SandboxTerminate = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxTerminate, client)
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 5 # git: 8504d66
4
+ build_number = 48 # git: 0f0beb7