pybiolib 1.2.216__tar.gz → 1.2.221__tar.gz
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.
- {pybiolib-1.2.216 → pybiolib-1.2.221}/PKG-INFO +1 -1
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/http_client.py +4 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/utils/__init__.py +12 -6
- {pybiolib-1.2.216 → pybiolib-1.2.221}/pyproject.toml +1 -1
- {pybiolib-1.2.216 → pybiolib-1.2.221}/LICENSE +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/PYPI_README.md +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_data_record/data_record.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/data_record/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/data_record/data_record.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/data_record/push_data.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/file_utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/fuse_mount/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/lfs/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/lfs/cache.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/libs/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/libs/fusepy/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/push_application.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/runtime.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/app.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/data_record.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/experiment.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/file_node.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/resource.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/resource_version.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/types/typing.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/utils/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/utils/multinode.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_runtime/runtime.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/api/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/api/client.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/app/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/app/app.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/app/search_apps.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/api_client.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/app_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/auth.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/biolib_app_api.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/biolib_job_api.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/common_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/job_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/lfs_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_api_client/user_state.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/file_in_container.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/module_input.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/module_output_v2.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/saved_job.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/system_exception.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/system_status_update.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_binary_format/utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_docker_client/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_download_container.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_errors.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/biolib_logging.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/auth.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/data_record.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/download_container.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/init.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/lfs.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/push.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/run.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/runtime.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/cli/start.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/.gitignore +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/cloud_utils/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/cache_state.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/cache_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/job_storage.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/job_worker.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/large_file_system.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/mappings.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/remote_host_proxy.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/socker_listener_thread.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/socket_sender_thread.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/webserver.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/webserver_types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/webserver_utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/worker_thread.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/experiments/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/experiments/experiment.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/jobs/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/jobs/job.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/jobs/job_result.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/jobs/types.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/runtime/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/sdk/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/tables.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/templates/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/templates/example_app.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/typing_utils.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/user/__init__.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/user/sign_in.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/utils/app_uri.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/utils/cache_state.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/utils/multipart_uploader.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/utils/seq_util.py +0 -0
- {pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/utils/zip/remote_zip.py +0 -0
@@ -78,6 +78,7 @@ class HttpClient:
|
|
78
78
|
retries: int = 5,
|
79
79
|
timeout_in_seconds: Optional[int] = None,
|
80
80
|
response_path: Optional[str] = None,
|
81
|
+
retry_on_http_500: Optional[bool] = False,
|
81
82
|
) -> HttpResponse:
|
82
83
|
if not HttpClient.ssl_context:
|
83
84
|
HttpClient.ssl_context = _create_ssl_context()
|
@@ -112,6 +113,9 @@ class HttpClient:
|
|
112
113
|
if error.code == 429:
|
113
114
|
logger_no_user_data.warning(f'HTTP {method} request failed with status 429 for "{url}"')
|
114
115
|
last_error = error
|
116
|
+
elif error.code == 500 and retry_on_http_500:
|
117
|
+
logger_no_user_data.warning(f'HTTP {method} request failed with status 500 for "{url}"')
|
118
|
+
last_error = error
|
115
119
|
elif error.code == 502:
|
116
120
|
logger_no_user_data.warning(f'HTTP {method} request failed with status 502 for "{url}"')
|
117
121
|
last_error = error
|
@@ -87,12 +87,18 @@ def _download_chunk(input_tuple: DownloadChunkInputTuple) -> bytes:
|
|
87
87
|
byte_range, presigned_url = input_tuple
|
88
88
|
start, end = byte_range
|
89
89
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
90
|
+
try:
|
91
|
+
response = HttpClient.request(
|
92
|
+
url=presigned_url,
|
93
|
+
headers={'range': f'bytes={start}-{end}'},
|
94
|
+
timeout_in_seconds=300, # timeout after 5 min
|
95
|
+
retries=20,
|
96
|
+
retry_on_http_500=True,
|
97
|
+
)
|
98
|
+
except Exception as exception:
|
99
|
+
logger_no_user_data.exception("Hit error downloading chunk")
|
100
|
+
logger_no_user_data.error(exception)
|
101
|
+
raise exception
|
96
102
|
logger_no_user_data.debug(f'Returning raw data for part {start}')
|
97
103
|
return response.content
|
98
104
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/_internal/data_record/remote_storage_endpoint.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/docker_executor.py
RENAMED
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/docker_types.py
RENAMED
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/executors/tars/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/job_worker/utilization_reporter_thread.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.2.216 → pybiolib-1.2.221}/biolib/compute_node/webserver/gunicorn_flask_application.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|