modal 0.72.35__py3-none-any.whl → 0.72.36__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/client.pyi CHANGED
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.35"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.36"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -83,7 +83,7 @@ class Client:
83
83
  _snapshotted: bool
84
84
 
85
85
  def __init__(
86
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.35"
86
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.72.36"
87
87
  ): ...
88
88
  def is_closed(self) -> bool: ...
89
89
  @property
modal/functions.pyi CHANGED
@@ -463,11 +463,11 @@ class Function(typing.Generic[P, ReturnType, OriginalReturnType], modal.object.O
463
463
 
464
464
  _call_generator_nowait: ___call_generator_nowait_spec
465
465
 
466
- class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
466
+ class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
467
467
  def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
468
468
  async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
469
469
 
470
- remote: __remote_spec[ReturnType, P]
470
+ remote: __remote_spec[P, ReturnType]
471
471
 
472
472
  class __remote_gen_spec(typing_extensions.Protocol):
473
473
  def __call__(self, *args, **kwargs) -> typing.Generator[typing.Any, None, None]: ...
@@ -480,17 +480,17 @@ class Function(typing.Generic[P, ReturnType, OriginalReturnType], modal.object.O
480
480
  def _get_obj(self) -> typing.Optional[modal.cls.Obj]: ...
481
481
  def local(self, *args: P.args, **kwargs: P.kwargs) -> OriginalReturnType: ...
482
482
 
483
- class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
483
+ class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
484
484
  def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
485
485
  async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
486
486
 
487
- _experimental_spawn: ___experimental_spawn_spec[ReturnType, P]
487
+ _experimental_spawn: ___experimental_spawn_spec[P, ReturnType]
488
488
 
489
- class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
489
+ class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
490
490
  def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
491
491
  async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
492
492
 
493
- spawn: __spawn_spec[ReturnType, P]
493
+ spawn: __spawn_spec[P, ReturnType]
494
494
 
495
495
  def get_raw_f(self) -> typing.Callable[..., typing.Any]: ...
496
496
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.72.35
3
+ Version: 0.72.36
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -20,7 +20,7 @@ modal/app.py,sha256=UOuqlCKlFAjOXCacXmoEMM90FnqFwPRXUhLh0Gi6xzg,45344
20
20
  modal/app.pyi,sha256=5D3LkPP6qvTIl2_YgiyhNQ9X4VsOVuxd69a23UmohDg,25477
21
21
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
22
22
  modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
23
- modal/client.pyi,sha256=zQPANmRIUfQZQWyiOz86Nz8i0c6erIcaS7CfGnKB_OU,7326
23
+ modal/client.pyi,sha256=6X3cs5TRTn1yKyl5IPh2O7Tqkk_F6fJIOTw6f7Cb2JQ,7326
24
24
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
25
25
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
26
26
  modal/cls.py,sha256=xHgZZAmymplw0I2YZGAA8raBboixdNKKTrnsxQZI7G8,32159
@@ -38,7 +38,7 @@ modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
38
38
  modal/file_io.pyi,sha256=NrIoB0YjIqZ8MDMe826xAnybT0ww_kxQM3iPLo82REU,8898
39
39
  modal/file_pattern_matcher.py,sha256=dSo7BMQGZBAuoBFOX-e_72HxmF3FLzjQlEtnGtJiaD4,6506
40
40
  modal/functions.py,sha256=JLQxVn1VEyQMEFzqT1ibDradkb1mvrATJ41zvfffA4I,68499
41
- modal/functions.pyi,sha256=EcGd1uGnJVbnMmdsnANYeDjLzjaL8BREG3XgxaDPcvM,25473
41
+ modal/functions.pyi,sha256=eoXG53WPMnHY7N8dblghdLEBQ47k8uiSSaCDP9LfNxA,25473
42
42
  modal/gpu.py,sha256=rcBwbE-_e2hEUr3VJbr1EgQDRb6aieJKx6G2oQdyBhE,7462
43
43
  modal/image.py,sha256=leeY7fLfFjS0IqTi3D4cRxIDOb80BPtb3jsQfqvVJ8c,90912
44
44
  modal/image.pyi,sha256=X9vj6cwBdYh8q_2cOd-2RSYNMF49ujcy0lrOXh_v1xc,26049
@@ -149,13 +149,13 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
149
149
  modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
150
150
  modal_global_objects/mounts/python_standalone.py,sha256=pEML5GaV2_0ahci_1vpfc_FnySpsfi2fhYmFF5I7IiQ,1837
151
151
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
152
- modal_proto/api.proto,sha256=smkhq5gGvZ6HWMc_-zv6ex3Pj76ySdqrmtHn_Ic0iFg,84501
153
- modal_proto/api_grpc.py,sha256=Bcgo5hmJ0FCAVvWAm7X7Qki2GZ2gvAu3kOtqzRtvoMc,106793
154
- modal_proto/api_pb2.py,sha256=Qy1Z-i65J6CKrSpDJ0IsvA48JJr1pGn8-YsUFEag6lY,307334
155
- modal_proto/api_pb2.pyi,sha256=9pzRwWw2GKZsFwsU5VmGuBQvZq6Jb9GfJdM28S3KjuQ,411354
156
- modal_proto/api_pb2_grpc.py,sha256=OTPQgFBajKwy7fhAFEewDjY6lK49C60Z9vTqUpQy_oY,230822
157
- modal_proto/api_pb2_grpc.pyi,sha256=mwP2mw6UE46CHlraqicXHsgyGPtV0mCy96LwnFMz74s,53787
158
- modal_proto/modal_api_grpc.py,sha256=C5QcdsBWEvF9ufbEjdyPQ5IDDexMdAI2_CQ_U2nEYuc,14258
152
+ modal_proto/api.proto,sha256=hhpsbyLV6Rziyb9pGIw6zVcR30G4ueV3B9qD-8JtwCE,84899
153
+ modal_proto/api_grpc.py,sha256=UH63GuZR9AQFBgk5UdNEnjREgkejsnMH7H9KaRjzpiY,108244
154
+ modal_proto/api_pb2.py,sha256=WrVMzHddqlxj1GXpBz4ciqa0L9PVC6uRDxo3OWF3GV0,309536
155
+ modal_proto/api_pb2.pyi,sha256=rJxZnSSLOI9GjNaGDnRtc9XASiB9128Hnbb01PRAunM,412814
156
+ modal_proto/api_pb2_grpc.py,sha256=0STIhGJkO5sN2JnGKmoNGT38EK-kti4oXziPi-_hty8,234054
157
+ modal_proto/api_pb2_grpc.pyi,sha256=KUZw2u9D23f2QI9Khd_FD8HGPOJksPOTiZGLN3HSPuM,54491
158
+ modal_proto/modal_api_grpc.py,sha256=4sdBOwimIgkh8OmBsiRQHgB2hTBp6mT7lfEukN6GYb4,14444
159
159
  modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
160
160
  modal_proto/options.proto,sha256=a-siq4swVbZPfaFRXAipRZzGP2bq8OsdUvjlyzAeodQ,488
161
161
  modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
@@ -166,10 +166,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
166
166
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
167
  modal_version/__init__.py,sha256=kGya2ZlItX2zB7oHORs-wvP4PG8lg_mtbi1QIK3G6SQ,470
168
168
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
169
- modal_version/_version_generated.py,sha256=Risj0f23NjXwV5p-2zAoUMadoNdAPr6CGxd8K2p7sDk,149
170
- modal-0.72.35.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
171
- modal-0.72.35.dist-info/METADATA,sha256=aHEZox4anXEutB5lNyiMsxgWcHVypn-HV4-8AsxnxoE,2329
172
- modal-0.72.35.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
173
- modal-0.72.35.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
174
- modal-0.72.35.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
175
- modal-0.72.35.dist-info/RECORD,,
169
+ modal_version/_version_generated.py,sha256=_-XkotRkA8vwh-9aU2yqrQqZ-npHVab30PojNeEQ6Ko,149
170
+ modal-0.72.36.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
171
+ modal-0.72.36.dist-info/METADATA,sha256=5yAsDaawujE-MJ84Qy-ju9383RWwNKd0NMFe7Q57lnY,2329
172
+ modal-0.72.36.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
173
+ modal-0.72.36.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
174
+ modal-0.72.36.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
175
+ modal-0.72.36.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -2004,6 +2004,14 @@ message Proxy {
2004
2004
  repeated ProxyIp proxy_ips = 4;
2005
2005
  }
2006
2006
 
2007
+ message ProxyAddIpRequest {
2008
+ string proxy_id = 1 [ (modal.options.audit_target_attr) = true ];
2009
+ }
2010
+
2011
+ message ProxyAddIpResponse {
2012
+ ProxyIp proxy_ip = 1;
2013
+ }
2014
+
2007
2015
  message ProxyCreateRequest {
2008
2016
  string name = 1 [ (modal.options.audit_target_attr) = true ];
2009
2017
  string environment_name = 2;
@@ -2056,6 +2064,10 @@ message ProxyListResponse {
2056
2064
  repeated Proxy proxies = 1;
2057
2065
  }
2058
2066
 
2067
+ message ProxyRemoveIpRequest {
2068
+ string proxy_ip = 1 [ (modal.options.audit_target_attr) = true ];
2069
+ }
2070
+
2059
2071
  message QueueClearRequest {
2060
2072
  string queue_id = 1;
2061
2073
  bytes partition_key = 2;
@@ -2943,11 +2955,13 @@ service ModalClient {
2943
2955
  rpc NotebookKernelPublishResults(NotebookKernelPublishResultsRequest) returns (google.protobuf.Empty);
2944
2956
 
2945
2957
  // Proxies
2958
+ rpc ProxyAddIp(ProxyAddIpRequest) returns (ProxyAddIpResponse);
2946
2959
  rpc ProxyCreate(ProxyCreateRequest) returns (ProxyCreateResponse);
2947
2960
  rpc ProxyDelete(ProxyDeleteRequest) returns (google.protobuf.Empty);
2948
2961
  rpc ProxyGet(ProxyGetRequest) returns (ProxyGetResponse);
2949
2962
  rpc ProxyGetOrCreate(ProxyGetOrCreateRequest) returns (ProxyGetOrCreateResponse);
2950
2963
  rpc ProxyList(google.protobuf.Empty) returns (ProxyListResponse);
2964
+ rpc ProxyRemoveIp(ProxyRemoveIpRequest) returns (google.protobuf.Empty);
2951
2965
 
2952
2966
  // Queues
2953
2967
  rpc QueueClear(QueueClearRequest) returns (google.protobuf.Empty);
modal_proto/api_grpc.py CHANGED
@@ -334,6 +334,10 @@ class ModalClientBase(abc.ABC):
334
334
  async def NotebookKernelPublishResults(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.NotebookKernelPublishResultsRequest, google.protobuf.empty_pb2.Empty]') -> None:
335
335
  pass
336
336
 
337
+ @abc.abstractmethod
338
+ async def ProxyAddIp(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyAddIpRequest, modal_proto.api_pb2.ProxyAddIpResponse]') -> None:
339
+ pass
340
+
337
341
  @abc.abstractmethod
338
342
  async def ProxyCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyCreateRequest, modal_proto.api_pb2.ProxyCreateResponse]') -> None:
339
343
  pass
@@ -354,6 +358,10 @@ class ModalClientBase(abc.ABC):
354
358
  async def ProxyList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ProxyListResponse]') -> None:
355
359
  pass
356
360
 
361
+ @abc.abstractmethod
362
+ async def ProxyRemoveIp(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyRemoveIpRequest, google.protobuf.empty_pb2.Empty]') -> None:
363
+ pass
364
+
357
365
  @abc.abstractmethod
358
366
  async def QueueClear(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueClearRequest, google.protobuf.empty_pb2.Empty]') -> None:
359
367
  pass
@@ -1050,6 +1058,12 @@ class ModalClientBase(abc.ABC):
1050
1058
  modal_proto.api_pb2.NotebookKernelPublishResultsRequest,
1051
1059
  google.protobuf.empty_pb2.Empty,
1052
1060
  ),
1061
+ '/modal.client.ModalClient/ProxyAddIp': grpclib.const.Handler(
1062
+ self.ProxyAddIp,
1063
+ grpclib.const.Cardinality.UNARY_UNARY,
1064
+ modal_proto.api_pb2.ProxyAddIpRequest,
1065
+ modal_proto.api_pb2.ProxyAddIpResponse,
1066
+ ),
1053
1067
  '/modal.client.ModalClient/ProxyCreate': grpclib.const.Handler(
1054
1068
  self.ProxyCreate,
1055
1069
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1080,6 +1094,12 @@ class ModalClientBase(abc.ABC):
1080
1094
  google.protobuf.empty_pb2.Empty,
1081
1095
  modal_proto.api_pb2.ProxyListResponse,
1082
1096
  ),
1097
+ '/modal.client.ModalClient/ProxyRemoveIp': grpclib.const.Handler(
1098
+ self.ProxyRemoveIp,
1099
+ grpclib.const.Cardinality.UNARY_UNARY,
1100
+ modal_proto.api_pb2.ProxyRemoveIpRequest,
1101
+ google.protobuf.empty_pb2.Empty,
1102
+ ),
1083
1103
  '/modal.client.ModalClient/QueueClear': grpclib.const.Handler(
1084
1104
  self.QueueClear,
1085
1105
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1890,6 +1910,12 @@ class ModalClientStub:
1890
1910
  modal_proto.api_pb2.NotebookKernelPublishResultsRequest,
1891
1911
  google.protobuf.empty_pb2.Empty,
1892
1912
  )
1913
+ self.ProxyAddIp = grpclib.client.UnaryUnaryMethod(
1914
+ channel,
1915
+ '/modal.client.ModalClient/ProxyAddIp',
1916
+ modal_proto.api_pb2.ProxyAddIpRequest,
1917
+ modal_proto.api_pb2.ProxyAddIpResponse,
1918
+ )
1893
1919
  self.ProxyCreate = grpclib.client.UnaryUnaryMethod(
1894
1920
  channel,
1895
1921
  '/modal.client.ModalClient/ProxyCreate',
@@ -1920,6 +1946,12 @@ class ModalClientStub:
1920
1946
  google.protobuf.empty_pb2.Empty,
1921
1947
  modal_proto.api_pb2.ProxyListResponse,
1922
1948
  )
1949
+ self.ProxyRemoveIp = grpclib.client.UnaryUnaryMethod(
1950
+ channel,
1951
+ '/modal.client.ModalClient/ProxyRemoveIp',
1952
+ modal_proto.api_pb2.ProxyRemoveIpRequest,
1953
+ google.protobuf.empty_pb2.Empty,
1954
+ )
1923
1955
  self.QueueClear = grpclib.client.UnaryUnaryMethod(
1924
1956
  channel,
1925
1957
  '/modal.client.ModalClient/QueueClear',