geoseeq 0.5.6a15__py3-none-any.whl → 0.5.6a16__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 +18 -2
- geoseeq/cli/upload/upload.py +3 -3
- geoseeq/result/file_upload.py +8 -2
- geoseeq/upload_download_manager.py +1 -1
- {geoseeq-0.5.6a15.dist-info → geoseeq-0.5.6a16.dist-info}/METADATA +1 -1
- {geoseeq-0.5.6a15.dist-info → geoseeq-0.5.6a16.dist-info}/RECORD +10 -10
- {geoseeq-0.5.6a15.dist-info → geoseeq-0.5.6a16.dist-info}/LICENSE +0 -0
- {geoseeq-0.5.6a15.dist-info → geoseeq-0.5.6a16.dist-info}/WHEEL +0 -0
- {geoseeq-0.5.6a15.dist-info → geoseeq-0.5.6a16.dist-info}/entry_points.txt +0 -0
- {geoseeq-0.5.6a15.dist-info → geoseeq-0.5.6a16.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.6a16') # remember to update setup
|
57
57
|
|
58
58
|
|
59
59
|
@main.group('advanced')
|
@@ -101,4 +101,20 @@ def cli_config(yes, api_token, endpoint, profile, overwrite):
|
|
101
101
|
click.echo('You must accept the EULA to use the GeoSeeq API.')
|
102
102
|
return
|
103
103
|
set_profile(api_token, endpoint=endpoint, profile=profile, overwrite=overwrite)
|
104
|
-
click.echo(f'Profile configured.')
|
104
|
+
click.echo(f'Profile configured.')
|
105
|
+
|
106
|
+
|
107
|
+
@main.command('clear-cache')
|
108
|
+
@yes_option
|
109
|
+
def cli_clear_cache(yes):
|
110
|
+
"""Clear the local cache.
|
111
|
+
|
112
|
+
---
|
113
|
+
|
114
|
+
Use of this tool implies acceptance of the GeoSeeq End User License Agreement.
|
115
|
+
Run `geoseeq eula show` to view the EULA.
|
116
|
+
"""
|
117
|
+
from geoseeq.file_system_cache import GEOSEEQ_CACHE_DIR
|
118
|
+
import shutil
|
119
|
+
if yes or click.confirm('Are you sure you want to clear the cache?'):
|
120
|
+
shutil.rmtree(GEOSEEQ_CACHE_DIR, ignore_errors=True)
|
geoseeq/cli/upload/upload.py
CHANGED
@@ -40,7 +40,7 @@ hidden_option = click.option('--hidden/--no-hidden', default=False, help='Upload
|
|
40
40
|
@click.option('--cores', default=1, help='Number of uploads to run in parallel', show_default=True)
|
41
41
|
@click.option('--threads-per-upload', default=4, help='Number of threads used to upload each file', show_default=True)
|
42
42
|
@click.option('--num-retries', default=3, help='Number of times to retry a failed upload', show_default=True)
|
43
|
-
@click.option('--chunk-size-mb', default
|
43
|
+
@click.option('--chunk-size-mb', default=-1, help='Size of chunks to upload in MB', show_default=True)
|
44
44
|
@ignore_errors_option
|
45
45
|
@yes_option
|
46
46
|
@private_option
|
@@ -122,8 +122,8 @@ def cli_upload_file(state, cores, threads_per_upload, num_retries, chunk_size_mb
|
|
122
122
|
use_cache=state.use_cache,
|
123
123
|
num_retries=num_retries,
|
124
124
|
ignore_errors=ignore_errors,
|
125
|
-
session=knex.new_session(),
|
126
|
-
chunk_size_mb=chunk_size_mb,
|
125
|
+
session=None, #knex.new_session(),
|
126
|
+
chunk_size_mb=chunk_size_mb if chunk_size_mb > 0 else None,
|
127
127
|
)
|
128
128
|
for geoseeq_file_name, file_path in name_pairs:
|
129
129
|
if isfile(file_path):
|
geoseeq/result/file_upload.py
CHANGED
@@ -175,6 +175,7 @@ class ResultFileUpload:
|
|
175
175
|
attempts = 0
|
176
176
|
while attempts < max_retries:
|
177
177
|
try:
|
178
|
+
# url = url.replace("s3.wasabisys.com", "s3.us-east-1.wasabisys.com")
|
178
179
|
logger.debug(f"Uploading part {num + 1} to {url}. Size: {len(file_chunk)} bytes.")
|
179
180
|
if session:
|
180
181
|
http_response = session.put(url, data=file_chunk)
|
@@ -192,7 +193,7 @@ class ResultFileUpload:
|
|
192
193
|
raise e
|
193
194
|
|
194
195
|
retry_time = min(8 ** attempts, 120) # exponential backoff, max 120s
|
195
|
-
retry_time *= 0.
|
196
|
+
retry_time *= 0.6 + (random() * 0.8) # randomize to avoid thundering herd
|
196
197
|
logger.debug(f"Retrying upload for part {num + 1} in {retry_time} seconds.")
|
197
198
|
time.sleep(retry_time)
|
198
199
|
|
@@ -250,7 +251,7 @@ class ResultFileUpload:
|
|
250
251
|
filepath,
|
251
252
|
file_size,
|
252
253
|
optional_fields=None,
|
253
|
-
chunk_size=
|
254
|
+
chunk_size=None,
|
254
255
|
max_retries=3,
|
255
256
|
session=None,
|
256
257
|
progress_tracker=None,
|
@@ -259,6 +260,11 @@ class ResultFileUpload:
|
|
259
260
|
):
|
260
261
|
"""Upload a file to S3 using the multipart upload process."""
|
261
262
|
logger.info(f"Uploading {filepath} to S3 using multipart upload.")
|
263
|
+
if not chunk_size:
|
264
|
+
chunk_size = FIVE_MB
|
265
|
+
if file_size >= 10 * FIVE_MB:
|
266
|
+
chunk_size = 5 * FIVE_MB
|
267
|
+
logger.debug(f"Using chunk size of {chunk_size} bytes.")
|
262
268
|
resumable_upload_tracker = None
|
263
269
|
if use_cache and file_size > 10 * FIVE_MB: # only use resumable upload tracker for larger files
|
264
270
|
resumable_upload_tracker = ResumableUploadTracker(filepath, chunk_size)
|
@@ -23,7 +23,7 @@ def _upload_one_file(args):
|
|
23
23
|
link_type, overwrite, log_level, parallel_uploads,
|
24
24
|
use_cache, no_new_versions, threads_per_upload,
|
25
25
|
num_retries, ignore_errors, chunk_size_mb) = args
|
26
|
-
chunk_size = chunk_size_mb * 1024 * 1024
|
26
|
+
chunk_size = chunk_size_mb * 1024 * 1024 if chunk_size_mb else None
|
27
27
|
if parallel_uploads:
|
28
28
|
_make_in_process_logger(log_level)
|
29
29
|
try:
|
@@ -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=_I_wJHKoeumMhX6cq_WDna9Il6MYatSfSSZ9DUwTW-E,8275
|
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=KL4TcaypRtrSoP0Om62T5cVZ7uOzjR6hcr2WqUm4qSU,3723
|
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=e0tI68OxVLgS6sauUS-m-AJgza13n0XgMhxd86fq0Gw,10017
|
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=3RhFEdCFP64A3PY1AwkWz5Qp9at78GlNhzP-OWtHsq8,13721
|
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.6a16.dist-info/LICENSE,sha256=IuhIl1XCxXLPLJT_coN1CNqQU4Khlq7x4IdW7ioOJD8,1067
|
84
|
+
geoseeq-0.5.6a16.dist-info/METADATA,sha256=04xNdeQsTinp3ka0HCZVdy4-4uiCpAx2HA-vtlzBSSA,4806
|
85
|
+
geoseeq-0.5.6a16.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
86
|
+
geoseeq-0.5.6a16.dist-info/entry_points.txt,sha256=yF-6KDM8zXib4Al0qn49TX-qM7PUkWUIcYtsgt36rjM,45
|
87
|
+
geoseeq-0.5.6a16.dist-info/top_level.txt,sha256=zZk7mmeaqAYqFJG8nq2DTgSQPbflRjJwkDIhNURPDEU,14
|
88
|
+
geoseeq-0.5.6a16.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|