thds.adls 4.1.20250702194306__py3-none-any.whl → 4.1.20250703020842__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 thds.adls might be problematic. Click here for more details.
- thds/adls/azcopy/download.py +13 -3
- thds/adls/azcopy/upload.py +6 -1
- thds/adls/download.py +2 -0
- {thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/METADATA +1 -1
- {thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/RECORD +8 -8
- {thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/WHEEL +0 -0
- {thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/entry_points.txt +0 -0
- {thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/top_level.txt +0 -0
thds/adls/azcopy/download.py
CHANGED
|
@@ -73,19 +73,24 @@ def sync_fastpath(
|
|
|
73
73
|
env=system_resources.restrict_usage(),
|
|
74
74
|
)
|
|
75
75
|
assert process.stdout
|
|
76
|
+
output_lines = list()
|
|
76
77
|
with progress.azcopy_tracker(dl_file_client.url, download_request.size_bytes or 0) as track:
|
|
77
78
|
for line in process.stdout:
|
|
78
79
|
track(line)
|
|
80
|
+
output_lines.append(line.strip())
|
|
79
81
|
|
|
80
82
|
process.wait()
|
|
81
83
|
if process.returncode != 0:
|
|
82
|
-
raise subprocess.
|
|
84
|
+
raise subprocess.CalledProcessError(
|
|
85
|
+
process.returncode,
|
|
86
|
+
f"AzCopy failed with return code {process.returncode}\n\n" + "\n".join(output_lines),
|
|
87
|
+
)
|
|
83
88
|
assert (
|
|
84
89
|
download_request.temp_path.exists()
|
|
85
90
|
), f"AzCopy did not create the file at {download_request.temp_path}"
|
|
86
91
|
return
|
|
87
92
|
|
|
88
|
-
except (subprocess.
|
|
93
|
+
except (subprocess.SubprocessError, FileNotFoundError):
|
|
89
94
|
logger.warning("Falling back to Python SDK for download")
|
|
90
95
|
|
|
91
96
|
logger.debug("Downloading %s using Python SDK", dl_file_client.url)
|
|
@@ -121,17 +126,22 @@ async def async_fastpath(
|
|
|
121
126
|
assert copy_proc.stdout
|
|
122
127
|
|
|
123
128
|
# Feed lines to the tracker asynchronously
|
|
129
|
+
output_lines = list()
|
|
124
130
|
with progress.azcopy_tracker(dl_file_client.url, download_request.size_bytes or 0) as track:
|
|
125
131
|
while True:
|
|
126
132
|
line = await copy_proc.stdout.readline()
|
|
127
133
|
if not line: # EOF
|
|
128
134
|
break
|
|
129
135
|
track(line.decode().strip())
|
|
136
|
+
output_lines.append(line.decode().strip())
|
|
130
137
|
|
|
131
138
|
# Wait for process completion
|
|
132
139
|
exit_code = await copy_proc.wait()
|
|
133
140
|
if exit_code != 0:
|
|
134
|
-
raise subprocess.
|
|
141
|
+
raise subprocess.CalledProcessError(
|
|
142
|
+
exit_code,
|
|
143
|
+
f"AzCopy failed with return code {exit_code}\n\n" + "\n".join(output_lines),
|
|
144
|
+
)
|
|
135
145
|
|
|
136
146
|
return
|
|
137
147
|
|
thds/adls/azcopy/upload.py
CHANGED
|
@@ -86,10 +86,15 @@ def run(
|
|
|
86
86
|
env=system_resources.restrict_usage(),
|
|
87
87
|
)
|
|
88
88
|
assert process.stdout
|
|
89
|
+
output_lines = list()
|
|
89
90
|
with progress.azcopy_tracker(uri.to_blob_windows_url(dest), size_bytes) as track:
|
|
90
91
|
for line in process.stdout:
|
|
91
92
|
track(line)
|
|
93
|
+
output_lines.append(line.strip())
|
|
92
94
|
|
|
93
95
|
process.wait()
|
|
94
96
|
if process.returncode != 0:
|
|
95
|
-
raise subprocess.
|
|
97
|
+
raise subprocess.CalledProcessError(
|
|
98
|
+
process.returncode,
|
|
99
|
+
f"AzCopy failed with return code {process.returncode}\n\n" + "\n".join(output_lines),
|
|
100
|
+
)
|
thds/adls/download.py
CHANGED
|
@@ -7,6 +7,7 @@ import typing as ty
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
|
|
9
9
|
import aiohttp.http_exceptions
|
|
10
|
+
import requests.exceptions
|
|
10
11
|
from azure.core.exceptions import AzureError, HttpResponseError, ResourceModifiedError
|
|
11
12
|
from azure.storage.filedatalake import DataLakeFileClient, FileProperties, FileSystemClient, aio
|
|
12
13
|
|
|
@@ -307,6 +308,7 @@ def _excs_to_retry() -> ty.Callable[[Exception], bool]:
|
|
|
307
308
|
filter(
|
|
308
309
|
None,
|
|
309
310
|
(
|
|
311
|
+
requests.exceptions.ConnectionError,
|
|
310
312
|
aiohttp.http_exceptions.ContentLengthError,
|
|
311
313
|
aiohttp.client_exceptions.ClientPayloadError,
|
|
312
314
|
getattr(
|
|
@@ -7,7 +7,7 @@ thds/adls/conf.py,sha256=nTw3X1ilC3A_905jZH-rWXFsESeHAKQn5IghvfX2VIo,1991
|
|
|
7
7
|
thds/adls/copy.py,sha256=jUWbGvTpb4B3yRGS0nhGSbDzqRPzUqYgH0z1lFRJB3k,6365
|
|
8
8
|
thds/adls/dbfs.py,sha256=pPAjbIZRKJsaXKQljDMUgqS_zy1yKeEZHGMueXbuv3g,2219
|
|
9
9
|
thds/adls/defaults.py,sha256=GGq5Pn4r-8cX4bZItp4nnwWAAz7S07pzPoOegw0y5Fw,676
|
|
10
|
-
thds/adls/download.py,sha256=
|
|
10
|
+
thds/adls/download.py,sha256=u-ckaExnTMAVUlhMbnxM_urBggbZkgXMQSSfp1czPeQ,18350
|
|
11
11
|
thds/adls/download_lock.py,sha256=tgT48l4C5_qmArGeq05gl7VlxT22dZBH2Xwxx0itE9o,3176
|
|
12
12
|
thds/adls/errors.py,sha256=6cLg2E4SB8ic46PBzA3ynRH4b1oR8qRb07RBgKGJRxY,1783
|
|
13
13
|
thds/adls/etag.py,sha256=ct7jpHhNFcKzbekn5rZ3m6DhjK48A7qOZGwDiHkc-pc,242
|
|
@@ -27,16 +27,16 @@ thds/adls/source_tree.py,sha256=yP_v2XrKxXqUOdZ-x8kqHhBFAuur3AlAq3zi4hHj4AE,2235
|
|
|
27
27
|
thds/adls/upload.py,sha256=MRHK9Am-x5FKBPh1SXLTbPC1r0Xk0bGWNU8CcNuUMLo,6602
|
|
28
28
|
thds/adls/uri.py,sha256=9MXuW_KfpPvzBc4ERxuTJ3vvi_6yr7e1kMAW9mx2zXM,1414
|
|
29
29
|
thds/adls/azcopy/__init__.py,sha256=qn2dmT92EHcrtaQ8uwRoUgvtF6Fu3NQbhZItOBdIBmY,45
|
|
30
|
-
thds/adls/azcopy/download.py,sha256=
|
|
30
|
+
thds/adls/azcopy/download.py,sha256=MwkUaQTrrXRX9yip_hiLZXzSgGqyTDUxjr0MeXitWuo,6450
|
|
31
31
|
thds/adls/azcopy/login.py,sha256=923UaewVMPFzkDSgCQsbl-_g7qdFhpXpF0MGNIy3T_A,1538
|
|
32
32
|
thds/adls/azcopy/progress.py,sha256=K7TVmSiWfu561orL3GuOnlQX9VtVxWVECAq9NiweYNo,1387
|
|
33
33
|
thds/adls/azcopy/system_resources.py,sha256=okgDEKAp0oWGQF7OKikbgJ9buBeiOgNaDYy-36j6dHo,761
|
|
34
|
-
thds/adls/azcopy/upload.py,sha256=
|
|
34
|
+
thds/adls/azcopy/upload.py,sha256=0l5FzV9IgZ2iQhm4eKZjTdw4SO17bHd8VnwcTev1lUs,2761
|
|
35
35
|
thds/adls/tools/download.py,sha256=CW2cWbCRdUqisVVVoqqvqk5Ved7pPGTkwnZj3uV0jy4,1587
|
|
36
36
|
thds/adls/tools/ls.py,sha256=OgEaIfTK359twlZIj-A0AW_nv81Z6zi0b9Tw6OJJfWA,1083
|
|
37
37
|
thds/adls/tools/upload.py,sha256=5WyWkpuVp2PETZ3O3ODlq8LXszSHU73ZMnIDZXPJdC8,442
|
|
38
|
-
thds_adls-4.1.
|
|
39
|
-
thds_adls-4.1.
|
|
40
|
-
thds_adls-4.1.
|
|
41
|
-
thds_adls-4.1.
|
|
42
|
-
thds_adls-4.1.
|
|
38
|
+
thds_adls-4.1.20250703020842.dist-info/METADATA,sha256=zWALY04Mrs1zZNpje2AyaiU-B6tN7La5ldtAbVEXxac,587
|
|
39
|
+
thds_adls-4.1.20250703020842.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
40
|
+
thds_adls-4.1.20250703020842.dist-info/entry_points.txt,sha256=uTqreT1AIwqJboMfLv5w6sviM8mNbAkln765gIjzoA4,152
|
|
41
|
+
thds_adls-4.1.20250703020842.dist-info/top_level.txt,sha256=LTZaE5SkWJwv9bwOlMbIhiS-JWQEEIcjVYnJrt-CriY,5
|
|
42
|
+
thds_adls-4.1.20250703020842.dist-info/RECORD,,
|
|
File without changes
|
{thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{thds_adls-4.1.20250702194306.dist-info → thds_adls-4.1.20250703020842.dist-info}/top_level.txt
RENAMED
|
File without changes
|