modal 1.0.2.dev0__py3-none-any.whl → 1.0.2.dev2__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 +2 -2
- modal/volume.py +17 -7
- {modal-1.0.2.dev0.dist-info → modal-1.0.2.dev2.dist-info}/METADATA +1 -1
- {modal-1.0.2.dev0.dist-info → modal-1.0.2.dev2.dist-info}/RECORD +9 -9
- modal_version/__init__.py +1 -1
- {modal-1.0.2.dev0.dist-info → modal-1.0.2.dev2.dist-info}/WHEEL +0 -0
- {modal-1.0.2.dev0.dist-info → modal-1.0.2.dev2.dist-info}/entry_points.txt +0 -0
- {modal-1.0.2.dev0.dist-info → modal-1.0.2.dev2.dist-info}/licenses/LICENSE +0 -0
- {modal-1.0.2.dev0.dist-info → modal-1.0.2.dev2.dist-info}/top_level.txt +0 -0
modal/client.pyi
CHANGED
@@ -31,7 +31,7 @@ class _Client:
|
|
31
31
|
server_url: str,
|
32
32
|
client_type: int,
|
33
33
|
credentials: typing.Optional[tuple[str, str]],
|
34
|
-
version: str = "1.0.2.
|
34
|
+
version: str = "1.0.2.dev2",
|
35
35
|
): ...
|
36
36
|
def is_closed(self) -> bool: ...
|
37
37
|
@property
|
@@ -94,7 +94,7 @@ class Client:
|
|
94
94
|
server_url: str,
|
95
95
|
client_type: int,
|
96
96
|
credentials: typing.Optional[tuple[str, str]],
|
97
|
-
version: str = "1.0.2.
|
97
|
+
version: str = "1.0.2.dev2",
|
98
98
|
): ...
|
99
99
|
def is_closed(self) -> bool: ...
|
100
100
|
@property
|
modal/volume.py
CHANGED
@@ -375,10 +375,16 @@ class _Volume(_Object, type_prefix="vo"):
|
|
375
375
|
"Please remove the glob `*` suffix."
|
376
376
|
)
|
377
377
|
|
378
|
-
|
379
|
-
|
380
|
-
for
|
381
|
-
|
378
|
+
if self._is_v1:
|
379
|
+
req = api_pb2.VolumeListFilesRequest(volume_id=self.object_id, path=path, recursive=recursive)
|
380
|
+
async for batch in self._client.stub.VolumeListFiles.unary_stream(req):
|
381
|
+
for entry in batch.entries:
|
382
|
+
yield FileEntry._from_proto(entry)
|
383
|
+
else:
|
384
|
+
req = api_pb2.VolumeListFiles2Request(volume_id=self.object_id, path=path, recursive=recursive)
|
385
|
+
async for batch in self._client.stub.VolumeListFiles2.unary_stream(req):
|
386
|
+
for entry in batch.entries:
|
387
|
+
yield FileEntry._from_proto(entry)
|
382
388
|
|
383
389
|
@live_method
|
384
390
|
async def listdir(self, path: str, *, recursive: bool = False) -> list[FileEntry]:
|
@@ -499,7 +505,7 @@ class _Volume(_Object, type_prefix="vo"):
|
|
499
505
|
num_bytes_written = 0
|
500
506
|
|
501
507
|
async with download_semaphore, ClientSessionRegistry.get_session().get(url) as get_response:
|
502
|
-
async for chunk in get_response.content:
|
508
|
+
async for chunk in get_response.content.iter_any():
|
503
509
|
num_chunk_bytes_written = 0
|
504
510
|
|
505
511
|
while num_chunk_bytes_written < len(chunk):
|
@@ -526,8 +532,12 @@ class _Volume(_Object, type_prefix="vo"):
|
|
526
532
|
@live_method
|
527
533
|
async def remove_file(self, path: str, recursive: bool = False) -> None:
|
528
534
|
"""Remove a file or directory from a volume."""
|
529
|
-
|
530
|
-
|
535
|
+
if self._is_v1:
|
536
|
+
req = api_pb2.VolumeRemoveFileRequest(volume_id=self.object_id, path=path, recursive=recursive)
|
537
|
+
await retry_transient_errors(self._client.stub.VolumeRemoveFile, req)
|
538
|
+
else:
|
539
|
+
req = api_pb2.VolumeRemoveFile2Request(volume_id=self.object_id, path=path, recursive=recursive)
|
540
|
+
await retry_transient_errors(self._client.stub.VolumeRemoveFile2, req)
|
531
541
|
|
532
542
|
@live_method
|
533
543
|
async def copy_files(self, src_paths: Sequence[str], dst_path: str) -> None:
|
@@ -22,7 +22,7 @@ modal/app.py,sha256=NZ_rJ9TuMfiNiLg8-gOFgufD5flGtXWPHOZI0gdD3hE,46585
|
|
22
22
|
modal/app.pyi,sha256=4-b_vbe3lNAqQPcMRpQCEDsE1zsVkQRJGUql9B7HvbM,22659
|
23
23
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
24
24
|
modal/client.py,sha256=OwISJvkgMb-rHm9Gc4i-7YcDgGiZgwJ7F_PzwZH7a6Q,16847
|
25
|
-
modal/client.pyi,sha256=
|
25
|
+
modal/client.pyi,sha256=nzm0PPPYBgqrG1BgwqWEyyh9i9Oj09y7d_ztsF4wO4k,8457
|
26
26
|
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
27
27
|
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
28
28
|
modal/cls.py,sha256=dBbeARwOWftlKd1cwtM0cHFtQWSWkwVXwVmOV4w0SyI,37907
|
@@ -78,7 +78,7 @@ modal/snapshot.pyi,sha256=dIEBdTPb7O3VwkQ8TMPjfyU17RLuS9i0DnACxxHy8X4,676
|
|
78
78
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
79
79
|
modal/token_flow.py,sha256=0_4KabXKsuE4OXTJ1OuLOtA-b1sesShztMZkkRFK7tA,7605
|
80
80
|
modal/token_flow.pyi,sha256=ILbRv6JsZq-jK8jcJM7eB74e0PsbzwBm7hyPcV9lBlQ,2121
|
81
|
-
modal/volume.py,sha256=
|
81
|
+
modal/volume.py,sha256=6pFezqaHyDO8vbnOe9YnqS8O3_UFaSsaD-0TtLp7Y48,43831
|
82
82
|
modal/volume.pyi,sha256=9hPIMRBzGZycVL8uRfGpjSmNu_pCbkGAOyrnE86bU2Y,21113
|
83
83
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
84
84
|
modal/_runtime/asgi.py,sha256=_2xSTsDD27Cit7xnMs4lzkJA2wzer2_N4Oa3BkXFzVA,22521
|
@@ -147,7 +147,7 @@ modal/requirements/2024.10.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddR
|
|
147
147
|
modal/requirements/PREVIEW.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddRo,296
|
148
148
|
modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
|
149
149
|
modal/requirements/base-images.json,sha256=57vMSqzMbLBxw5tFWSaMiIkkVEps4JfX5PAtXGnkS4U,740
|
150
|
-
modal-1.0.2.
|
150
|
+
modal-1.0.2.dev2.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
151
151
|
modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
152
152
|
modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
|
153
153
|
modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
|
@@ -170,10 +170,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
|
|
170
170
|
modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
171
171
|
modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
|
172
172
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
173
|
-
modal_version/__init__.py,sha256=
|
173
|
+
modal_version/__init__.py,sha256=yoPItFzLeU2_BQGqnNVctkrwshHorgYOJVbPiVNotJc,120
|
174
174
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
175
|
-
modal-1.0.2.
|
176
|
-
modal-1.0.2.
|
177
|
-
modal-1.0.2.
|
178
|
-
modal-1.0.2.
|
179
|
-
modal-1.0.2.
|
175
|
+
modal-1.0.2.dev2.dist-info/METADATA,sha256=E2OzDArGxZ0vGKKwayttk6rB58ojnyEVwIlfWq2Si-8,2454
|
176
|
+
modal-1.0.2.dev2.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
177
|
+
modal-1.0.2.dev2.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
178
|
+
modal-1.0.2.dev2.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
179
|
+
modal-1.0.2.dev2.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|