geoseeq 0.5.6a11__py3-none-any.whl → 0.5.6a12__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.
- geoseeq/cli/main.py +1 -1
- geoseeq/cli/upload/upload.py +9 -4
- geoseeq/result/file_upload.py +4 -2
- geoseeq/upload_download_manager.py +6 -3
- {geoseeq-0.5.6a11.dist-info → geoseeq-0.5.6a12.dist-info}/METADATA +1 -1
- {geoseeq-0.5.6a11.dist-info → geoseeq-0.5.6a12.dist-info}/RECORD +10 -10
- {geoseeq-0.5.6a11.dist-info → geoseeq-0.5.6a12.dist-info}/LICENSE +0 -0
- {geoseeq-0.5.6a11.dist-info → geoseeq-0.5.6a12.dist-info}/WHEEL +0 -0
- {geoseeq-0.5.6a11.dist-info → geoseeq-0.5.6a12.dist-info}/entry_points.txt +0 -0
- {geoseeq-0.5.6a11.dist-info → geoseeq-0.5.6a12.dist-info}/top_level.txt +0 -0
geoseeq/cli/main.py
CHANGED
@@ -53,7 +53,7 @@ def version():
|
|
53
53
|
Use of this tool implies acceptance of the GeoSeeq End User License Agreement.
|
54
54
|
Run `geoseeq eula show` to view the EULA.
|
55
55
|
"""
|
56
|
-
click.echo('0.5.
|
56
|
+
click.echo('0.5.6a12') # remember to update setup
|
57
57
|
|
58
58
|
|
59
59
|
@main.group('advanced')
|
geoseeq/cli/upload/upload.py
CHANGED
@@ -36,8 +36,9 @@ hidden_option = click.option('--hidden/--no-hidden', default=False, help='Upload
|
|
36
36
|
|
37
37
|
@click.command('files')
|
38
38
|
@use_common_state
|
39
|
-
@click.option('--cores', default=1, help='Number of uploads to run in parallel')
|
40
|
-
@click.option('--threads-per-upload', default=4, help='Number of threads used to upload each file')
|
39
|
+
@click.option('--cores', default=1, help='Number of uploads to run in parallel', show_default=True)
|
40
|
+
@click.option('--threads-per-upload', default=4, help='Number of threads used to upload each file', show_default=True)
|
41
|
+
@click.option('--num-retries', default=3, help='Number of times to retry a failed upload', show_default=True)
|
41
42
|
@yes_option
|
42
43
|
@private_option
|
43
44
|
@link_option
|
@@ -45,10 +46,11 @@ hidden_option = click.option('--hidden/--no-hidden', default=False, help='Upload
|
|
45
46
|
@hidden_option
|
46
47
|
@no_new_versions_option
|
47
48
|
@click.option('-n', '--geoseeq-file-name', default=None, multiple=True,
|
48
|
-
help='Specify a different name for the file on GeoSeeq than the local file name.'
|
49
|
+
help='Specify a different name for the file on GeoSeeq than the local file name.',
|
50
|
+
show_default=True)
|
49
51
|
@folder_id_arg
|
50
52
|
@click.argument('file_paths', type=click.Path(exists=True), nargs=-1)
|
51
|
-
def cli_upload_file(state, cores, threads_per_upload, yes, private, link_type, recursive, hidden, no_new_versions, geoseeq_file_name, folder_id, file_paths):
|
53
|
+
def cli_upload_file(state, cores, threads_per_upload, num_retries, yes, private, link_type, recursive, hidden, no_new_versions, geoseeq_file_name, folder_id, file_paths):
|
52
54
|
"""Upload files to GeoSeeq.
|
53
55
|
|
54
56
|
This command uploads files to either a sample or project on GeoSeeq. It can be used to upload
|
@@ -93,6 +95,8 @@ def cli_upload_file(state, cores, threads_per_upload, yes, private, link_type, r
|
|
93
95
|
|
94
96
|
---
|
95
97
|
"""
|
98
|
+
if num_retries < 1:
|
99
|
+
raise click.UsageError('--num-retries must be at least 1')
|
96
100
|
knex = state.get_knex()
|
97
101
|
result_folder = handle_folder_id(knex, folder_id, yes=yes, private=private, create=True)
|
98
102
|
if geoseeq_file_name:
|
@@ -113,6 +117,7 @@ def cli_upload_file(state, cores, threads_per_upload, yes, private, link_type, r
|
|
113
117
|
log_level=state.log_level,
|
114
118
|
no_new_versions=no_new_versions,
|
115
119
|
use_cache=state.use_cache,
|
120
|
+
num_retries=num_retries,
|
116
121
|
)
|
117
122
|
for geoseeq_file_name, file_path in name_pairs:
|
118
123
|
if isfile(file_path):
|
geoseeq/result/file_upload.py
CHANGED
@@ -188,9 +188,11 @@ class ResultFileUpload:
|
|
188
188
|
f"Upload for part {num + 1} failed. Attempt {attempts + 1} of {max_retries}."
|
189
189
|
)
|
190
190
|
attempts += 1
|
191
|
-
if attempts
|
191
|
+
if attempts >= max_retries:
|
192
192
|
raise e
|
193
|
-
|
193
|
+
|
194
|
+
retry_time = min(8 ** attempts, 120) # exponential backoff, max 120s
|
195
|
+
time.sleep(retry_time)
|
194
196
|
|
195
197
|
etag = http_response.headers["ETag"].replace('"', "")
|
196
198
|
blob = {"ETag": etag, "PartNumber": num + 1}
|
@@ -21,7 +21,8 @@ def _make_in_process_logger(log_level):
|
|
21
21
|
def _upload_one_file(args):
|
22
22
|
(result_file, filepath, session, progress_tracker,
|
23
23
|
link_type, overwrite, log_level, parallel_uploads,
|
24
|
-
use_cache, no_new_versions, threads_per_upload
|
24
|
+
use_cache, no_new_versions, threads_per_upload,
|
25
|
+
num_retries) = args
|
25
26
|
if parallel_uploads:
|
26
27
|
_make_in_process_logger(log_level)
|
27
28
|
if link_type == 'upload':
|
@@ -30,7 +31,7 @@ def _upload_one_file(args):
|
|
30
31
|
filepath,
|
31
32
|
session=session, overwrite=overwrite, progress_tracker=progress_tracker,
|
32
33
|
threads=threads_per_upload, use_cache=use_cache,
|
33
|
-
no_new_versions=no_new_versions
|
34
|
+
no_new_versions=no_new_versions, max_retries=num_retries,
|
34
35
|
)
|
35
36
|
else:
|
36
37
|
result_file.link_file(link_type, filepath)
|
@@ -48,6 +49,7 @@ class GeoSeeqUploadManager:
|
|
48
49
|
log_level=logging.WARNING,
|
49
50
|
overwrite=True,
|
50
51
|
no_new_versions=False,
|
52
|
+
num_retries=3,
|
51
53
|
use_cache=True):
|
52
54
|
self.session = session
|
53
55
|
self.n_parallel_uploads = n_parallel_uploads
|
@@ -59,6 +61,7 @@ class GeoSeeqUploadManager:
|
|
59
61
|
self.no_new_versions = no_new_versions
|
60
62
|
self.use_cache = use_cache
|
61
63
|
self.threads_per_upload = threads_per_upload
|
64
|
+
self.num_retries = num_retries
|
62
65
|
|
63
66
|
def add_result_file(self, result_file, local_path):
|
64
67
|
self._result_files.append((result_file, local_path))
|
@@ -84,7 +87,7 @@ class GeoSeeqUploadManager:
|
|
84
87
|
self.session, self.progress_tracker_factory(local_path),
|
85
88
|
self.link_type, self.overwrite, self.log_level,
|
86
89
|
self.n_parallel_uploads > 1, self.use_cache, self.no_new_versions,
|
87
|
-
self.threads_per_upload
|
90
|
+
self.threads_per_upload, self.num_retries
|
88
91
|
) for result_file, local_path in self._result_files
|
89
92
|
]
|
90
93
|
out = []
|
@@ -11,7 +11,7 @@ geoseeq/project.py,sha256=-9Y2ik0-BpT3iqh89v8VQBbdadhI58oaUP9oZK8oetc,13741
|
|
11
11
|
geoseeq/remote_object.py,sha256=Es-JlAz8iLRmCpAzh1MOwUh2MqtbuQM-p8wHIBAqNlQ,7131
|
12
12
|
geoseeq/sample.py,sha256=whgEVk6GnDJJLjn5uTOqFqRtVxZD3BgjTo7brAC5noU,7981
|
13
13
|
geoseeq/search.py,sha256=gawad6Cx5FxJBPlYkXWb-UKAO-UC0_yhvyU9Ca1kaNI,3388
|
14
|
-
geoseeq/upload_download_manager.py,sha256
|
14
|
+
geoseeq/upload_download_manager.py,sha256=-s2Zdru_O2YWThAdmXRksIx2q8RwSOEZ2nLvm1VM4EM,7738
|
15
15
|
geoseeq/user.py,sha256=tol8i1UGLRrbMw5jeJDnna1ikRgrCDd50Jxz0a1lSgg,690
|
16
16
|
geoseeq/utils.py,sha256=PDRiEQIZYTcfEV9AYvloQVvfqs5JaebcFZodAa2SUW8,3577
|
17
17
|
geoseeq/work_orders.py,sha256=5uLVVfdKE8qh4gGaHkdBpXJGRTujuSg59knWCqEET4A,8071
|
@@ -22,7 +22,7 @@ geoseeq/cli/detail.py,sha256=q8Suu-j2k18knfSVFG-SWWGNsKM-n8y9RMA3LcIIi9Y,4132
|
|
22
22
|
geoseeq/cli/download.py,sha256=_upzZo08K0fAPbEsyi1uN0HGNUaY1pl6OoGPcWmvSUY,17765
|
23
23
|
geoseeq/cli/fastq_utils.py,sha256=-bmeQLaiMBm57zWOF0R5OlWTU0_3sh1JBC1RYw2BOFM,3083
|
24
24
|
geoseeq/cli/get_eula.py,sha256=79mbUwyiF7O1r0g6UTxG9kJGQEqKuH805E6eLkPC6Y4,997
|
25
|
-
geoseeq/cli/main.py,sha256=
|
25
|
+
geoseeq/cli/main.py,sha256=lqRT8Y62SqLQs9J_P7TCZIZ9CGk6sMphKOALz9TSQ0o,3260
|
26
26
|
geoseeq/cli/manage.py,sha256=wGXAcVaXqE5JQEU8Jh6OlHr02nB396bpS_SFcOZdrEo,5929
|
27
27
|
geoseeq/cli/progress_bar.py,sha256=p1Xl01nkYxSBZCB30ue2verIIi22W93m3ZAMAxipD0g,738
|
28
28
|
geoseeq/cli/run.py,sha256=bx2AV6VIqOSTlxUda78xl0XxcZ8TXlQx02-e7iLQPwI,3838
|
@@ -37,7 +37,7 @@ geoseeq/cli/shared_params/id_handlers.py,sha256=501K9sCVkI0YGDQ62vXk_DM5lMMDrdB5
|
|
37
37
|
geoseeq/cli/shared_params/obj_getters.py,sha256=ZSkt6LnDkVFlNVYKgLrjzg60-6BthZMr3eeD3HNqzac,2741
|
38
38
|
geoseeq/cli/shared_params/opts_and_args.py,sha256=LrDkv9WtUryM4uUMXPRk04-EBcTQ7q5V6Yu-XRDUvvA,2083
|
39
39
|
geoseeq/cli/upload/__init__.py,sha256=3C9_S9t7chmYU-2ot89NV03x-EtmsjibulErKaU9w1k,627
|
40
|
-
geoseeq/cli/upload/upload.py,sha256=
|
40
|
+
geoseeq/cli/upload/upload.py,sha256=whhj-cX324_N_IQKuR3t-Zw4BFzDz7NHzMrmWg5aqiE,9688
|
41
41
|
geoseeq/cli/upload/upload_advanced.py,sha256=Jq5eGe-wOdrzxGWVwaFPg0BAJcW0YSx_eHEmYjJeKuA,3434
|
42
42
|
geoseeq/cli/upload/upload_reads.py,sha256=EMGqyZf11xwN4v2j8gNxMagTbE4kaOd-_hwupmg5I-8,10670
|
43
43
|
geoseeq/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -64,7 +64,7 @@ geoseeq/plotting/map/overlay.py,sha256=4VmxqOESTQra9tPr8b8OLEUhJSit9lNipabeSznEY
|
|
64
64
|
geoseeq/result/__init__.py,sha256=IFHIyRV8ZzuKIfwfze1SXgcKwNMcSgMAknLHMkwjXIU,356
|
65
65
|
geoseeq/result/bioinfo.py,sha256=QQtbyogrdro9avJSN0713sxLVnVeA24mFw3hWtKDKyw,1782
|
66
66
|
geoseeq/result/file_download.py,sha256=vbYo2B4JshTIqLaklcgcBb7NY9cD5pMkas95GuQxW8s,5776
|
67
|
-
geoseeq/result/file_upload.py,sha256=
|
67
|
+
geoseeq/result/file_upload.py,sha256=qQ2F28W6ieLoEsbqCWr61cQ8hYlNaKkhn4DBQ5xqR-I,13214
|
68
68
|
geoseeq/result/result_file.py,sha256=1Yj9fkZhds3J-tay6eNH2-EHi00MovHGV1M80_ckHD8,8677
|
69
69
|
geoseeq/result/result_folder.py,sha256=6porOXPh7Tpxw3oX5yMRPYQzNCGYqszqmFJd3SwQmTc,11122
|
70
70
|
geoseeq/result/utils.py,sha256=C-CxGzB3WddlnRiqFSkrY78I_m0yFgNqsTBRzGU-y8Q,2772
|
@@ -80,9 +80,9 @@ geoseeq/vc/vc_stub.py,sha256=IQr8dI0zsWKVAeY_5ybDD6n49_3othcgfHS3P0O9tuY,3110
|
|
80
80
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
81
81
|
tests/test_api_client.py,sha256=TS5njc5pcPP_Ycy-ljcfPVT1hQRBsFVdQ0lCqBmoesU,12810
|
82
82
|
tests/test_plotting.py,sha256=TcTu-2ARr8sxZJ7wPQxmbs3-gHw7uRvsgrhhhg0qKik,784
|
83
|
-
geoseeq-0.5.
|
84
|
-
geoseeq-0.5.
|
85
|
-
geoseeq-0.5.
|
86
|
-
geoseeq-0.5.
|
87
|
-
geoseeq-0.5.
|
88
|
-
geoseeq-0.5.
|
83
|
+
geoseeq-0.5.6a12.dist-info/LICENSE,sha256=IuhIl1XCxXLPLJT_coN1CNqQU4Khlq7x4IdW7ioOJD8,1067
|
84
|
+
geoseeq-0.5.6a12.dist-info/METADATA,sha256=DTEadRCMzytqJtg9vPNagyrMCY8l8gIslgIr7PaOA1o,4806
|
85
|
+
geoseeq-0.5.6a12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
86
|
+
geoseeq-0.5.6a12.dist-info/entry_points.txt,sha256=yF-6KDM8zXib4Al0qn49TX-qM7PUkWUIcYtsgt36rjM,45
|
87
|
+
geoseeq-0.5.6a12.dist-info/top_level.txt,sha256=zZk7mmeaqAYqFJG8nq2DTgSQPbflRjJwkDIhNURPDEU,14
|
88
|
+
geoseeq-0.5.6a12.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|