modal 0.67.47__py3-none-any.whl → 0.68.1__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.py CHANGED
@@ -155,11 +155,6 @@ class _Client:
155
155
 
156
156
  async def __aenter__(self):
157
157
  await self._open()
158
- try:
159
- await self.hello()
160
- except BaseException:
161
- await self._close()
162
- raise
163
158
  return self
164
159
 
165
160
  async def __aexit__(self, exc_type, exc, tb):
@@ -175,7 +170,6 @@ class _Client:
175
170
  client = cls(server_url, api_pb2.CLIENT_TYPE_CLIENT, credentials=None)
176
171
  try:
177
172
  await client._open()
178
- # Skip client.hello
179
173
  yield client
180
174
  finally:
181
175
  await client._close()
@@ -226,7 +220,6 @@ class _Client:
226
220
  client = _Client(server_url, client_type, credentials)
227
221
  await client._open()
228
222
  async_utils.on_shutdown(client._close())
229
- await client.hello()
230
223
  cls._client_from_env = client
231
224
  return client
232
225
 
@@ -249,11 +242,6 @@ class _Client:
249
242
  credentials = (token_id, token_secret)
250
243
  client = _Client(server_url, client_type, credentials)
251
244
  await client._open()
252
- try:
253
- await client.hello()
254
- except BaseException:
255
- await client._close()
256
- raise
257
245
  async_utils.on_shutdown(client._close())
258
246
  return client
259
247
 
@@ -262,8 +250,8 @@ class _Client:
262
250
  """mdmd:hidden
263
251
  Check whether can the client can connect to this server with these credentials; raise if not.
264
252
  """
265
- async with cls(server_url, api_pb2.CLIENT_TYPE_CLIENT, credentials):
266
- pass # Will call ClientHello RPC and possibly raise AuthError or ConnectionError
253
+ async with cls(server_url, api_pb2.CLIENT_TYPE_CLIENT, credentials) as client:
254
+ client.hello() # Will call ClientHello RPC and possibly raise AuthError or ConnectionError
267
255
 
268
256
  @classmethod
269
257
  def set_env_client(cls, client: Optional["_Client"]):
@@ -313,7 +301,6 @@ class _Client:
313
301
  self.set_env_client(None)
314
302
  # TODO(elias): reset _cancellation_context in case ?
315
303
  await self._open()
316
- # intentionally not doing self.hello since we should already be authenticated etc.
317
304
 
318
305
  async def _get_grpclib_method(self, method_name: str) -> Any:
319
306
  # safely get grcplib method that is bound to a valid channel
modal/client.pyi CHANGED
@@ -26,7 +26,7 @@ class _Client:
26
26
  _stub: typing.Optional[modal_proto.api_grpc.ModalClientStub]
27
27
 
28
28
  def __init__(
29
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.67.47"
29
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.68.1"
30
30
  ): ...
31
31
  def is_closed(self) -> bool: ...
32
32
  @property
@@ -81,7 +81,7 @@ class Client:
81
81
  _stub: typing.Optional[modal_proto.api_grpc.ModalClientStub]
82
82
 
83
83
  def __init__(
84
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.67.47"
84
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.68.1"
85
85
  ): ...
86
86
  def is_closed(self) -> bool: ...
87
87
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.67.47
3
+ Version: 0.68.1
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -18,8 +18,8 @@ modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
18
18
  modal/app.py,sha256=EJ7FUN6rWnSwLJoYJh8nmKg_t-8hdN8_rt0OrkP7JvQ,46084
19
19
  modal/app.pyi,sha256=BE5SlR5tRECuc6-e2lUuOknDdov3zxgZ4N0AsLb5ZVQ,25270
20
20
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
21
- modal/client.py,sha256=aLZvv10NPNQAzmF8o7gCT1CgTElZCFct4ANg05ohAzA,16183
22
- modal/client.pyi,sha256=kCSi7pkC4olHh9Ss-Pw1O64drwgyvASCqXYokdHdS8I,7354
21
+ modal/client.py,sha256=uy1Lw3hipt9ILv19VdmBBGYIW7VHmr4rzXi7pO7Kg7s,15791
22
+ modal/client.pyi,sha256=Mpm_iZr5M6GeCM_Dey5sDQtDM0T-2mppR9-n15iBr0Q,7352
23
23
  modal/cloud_bucket_mount.py,sha256=G7T7jWLD0QkmrfKR75mSTwdUZ2xNfj7pkVqb4ipmxmI,5735
24
24
  modal/cloud_bucket_mount.pyi,sha256=CEi7vrH3kDUF4LAy4qP6tfImy2UJuFRcRbsgRNM1wo8,1403
25
25
  modal/cls.py,sha256=pMirIOmb59YzaIK2rn7Vd756E1QKDDweYT90GYIHiMk,27472
@@ -142,10 +142,10 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
142
142
  modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
143
143
  modal_global_objects/mounts/python_standalone.py,sha256=SL_riIxpd8mP4i4CLDCWiFFNj0Ltknm9c_UIGfX5d60,1836
144
144
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
145
- modal_proto/api.proto,sha256=B0FedF8MXOVp1O9yPgjHU8QzFP0aeONN3WvhCaYaMO8,78738
145
+ modal_proto/api.proto,sha256=LDL_Y59tvHAvX50HOXTr2NqQ2TohFiO6Fi05G9_RkC0,79106
146
146
  modal_proto/api_grpc.py,sha256=DveC4ejFYEhCLiWbQShnmY31_FWGYU675Bmr7nHhsgs,101342
147
- modal_proto/api_pb2.py,sha256=YE26HpQSPu6x6hs5S58PeER2FEESNBMu2Ka6ieCjxpk,287062
148
- modal_proto/api_pb2.pyi,sha256=wk_QhoXo1v3S1Tmukt1M8SiH9vfq8TBp9uqb7WUAm68,383922
147
+ modal_proto/api_pb2.py,sha256=lTl_nGWDFgLkvvRiTbpQQhNgj3vvrMc31miwZ0BtLf4,289195
148
+ modal_proto/api_pb2.pyi,sha256=MG8arF8Z48_hXLON0L0T0ZDv9joW855lsTLaEoviBOY,386425
149
149
  modal_proto/api_pb2_grpc.py,sha256=2PEP6JPOoTw2rDC5qYjLNuumP68ZwAouRhCoayisAhY,219162
150
150
  modal_proto/api_pb2_grpc.pyi,sha256=uWtCxVEd0cFpOZ1oOGfZNO7Dv45OP4kp09jMnNyx9D4,51098
151
151
  modal_proto/modal_api_grpc.py,sha256=-8mLby_om5MYo6yu1zA_hqhz0yLsQW7k2YWBVZW1iVs,13546
@@ -157,12 +157,12 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
157
157
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
158
158
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
159
159
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
- modal_version/__init__.py,sha256=3IY-AWLH55r35_mQXIaut0jrJvoPuf1NZJBQQfSbPuo,470
160
+ modal_version/__init__.py,sha256=RT6zPoOdFO99u5Wcxxaoir4ZCuPTbQ22cvzFAXl3vUY,470
161
161
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
162
- modal_version/_version_generated.py,sha256=qtSNSDiEoxsg_ECGv99Dy3iDFgiHUqYwpknhUJqJZhE,149
163
- modal-0.67.47.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
164
- modal-0.67.47.dist-info/METADATA,sha256=C1l6wnl5jd7fbVeXvbFG_ZQnjIDMbAEaKWTSFsEgOEQ,2329
165
- modal-0.67.47.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
166
- modal-0.67.47.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
167
- modal-0.67.47.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
168
- modal-0.67.47.dist-info/RECORD,,
162
+ modal_version/_version_generated.py,sha256=WCQ6ahtgY9jKjpnPehIAR2jb6JCAyY8f-a6ORy1yMZE,148
163
+ modal-0.68.1.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
164
+ modal-0.68.1.dist-info/METADATA,sha256=ZRM5JqpOFrRmhBWuNm2S4AkEL1IaWjJi8xpbnLfl6hI,2328
165
+ modal-0.68.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
166
+ modal-0.68.1.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
167
+ modal-0.68.1.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
168
+ modal-0.68.1.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -771,6 +771,15 @@ message ContainerFileFlushRequest {
771
771
  string file_descriptor = 1;
772
772
  }
773
773
 
774
+ message ContainerFileLsRequest {
775
+ string path = 1;
776
+ }
777
+
778
+ message ContainerFileMkdirRequest {
779
+ string path = 1;
780
+ bool make_parents = 2;
781
+ }
782
+
774
783
  message ContainerFileOpenRequest {
775
784
  // file descriptor is hydrated when sent from server -> worker
776
785
  optional string file_descriptor = 1;
@@ -787,6 +796,11 @@ message ContainerFileReadRequest {
787
796
  optional uint32 n = 2;
788
797
  }
789
798
 
799
+ message ContainerFileRmRequest {
800
+ string path = 1;
801
+ bool recursive = 2;
802
+ }
803
+
790
804
  message ContainerFileSeekRequest {
791
805
  string file_descriptor = 1;
792
806
  int32 offset = 2;
@@ -821,6 +835,9 @@ message ContainerFilesystemExecRequest {
821
835
  ContainerFileDeleteBytesRequest file_delete_bytes_request = 7;
822
836
  ContainerFileWriteReplaceBytesRequest file_write_replace_bytes_request = 8;
823
837
  ContainerFileCloseRequest file_close_request = 9;
838
+ ContainerFileLsRequest file_ls_request = 11;
839
+ ContainerFileMkdirRequest file_mkdir_request = 12;
840
+ ContainerFileRmRequest file_rm_request = 13;
824
841
  }
825
842
  string task_id = 10;
826
843
  }