pybiolib 1.2.1642__py3-none-any.whl → 1.2.1727__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 pybiolib might be problematic. Click here for more details.
- biolib/_data_record/data_record.py +79 -15
- biolib/_index/index.py +1 -1
- biolib/_internal/data_record/push_data.py +64 -15
- biolib/_internal/utils/__init__.py +15 -0
- biolib/_internal/utils/auth.py +46 -0
- biolib/_runtime/runtime.py +1 -1
- biolib/_shared/types/__init__.py +8 -3
- biolib/_shared/types/resource.py +21 -1
- biolib/_shared/types/resource_permission.py +1 -1
- biolib/_shared/types/resource_version.py +8 -2
- biolib/api/client.py +3 -47
- biolib/app/app.py +1 -10
- biolib/biolib_api_client/api_client.py +3 -47
- biolib/cli/data_record.py +65 -0
- biolib/cli/init.py +39 -1
- biolib/cli/run.py +8 -5
- biolib/compute_node/job_worker/job_worker.py +2 -2
- biolib/compute_node/remote_host_proxy.py +18 -16
- biolib/experiments/experiment.py +13 -0
- biolib/utils/multipart_uploader.py +24 -18
- pybiolib-1.2.1727.dist-info/METADATA +41 -0
- {pybiolib-1.2.1642.dist-info → pybiolib-1.2.1727.dist-info}/RECORD +50 -50
- {pybiolib-1.2.1642.dist-info → pybiolib-1.2.1727.dist-info}/WHEEL +1 -1
- pybiolib-1.2.1727.dist-info/entry_points.txt +2 -0
- biolib/_shared/types/resource_types.py +0 -18
- pybiolib-1.2.1642.dist-info/METADATA +0 -52
- pybiolib-1.2.1642.dist-info/entry_points.txt +0 -3
- {pybiolib-1.2.1642.dist-info → pybiolib-1.2.1727.dist-info}/licenses/LICENSE +0 -0
biolib/cli/init.py
CHANGED
|
@@ -10,18 +10,56 @@ from biolib import (
|
|
|
10
10
|
)
|
|
11
11
|
from biolib._internal.add_copilot_prompts import add_copilot_prompts
|
|
12
12
|
from biolib._internal.add_gui_files import add_gui_files
|
|
13
|
-
from biolib._internal.http_client import HttpError
|
|
13
|
+
from biolib._internal.http_client import HttpClient, HttpError
|
|
14
14
|
from biolib._internal.string_utils import normalize_for_docker_tag
|
|
15
15
|
from biolib._internal.templates import templates
|
|
16
16
|
from biolib.api import client as api_client
|
|
17
17
|
from biolib.biolib_api_client.api_client import BiolibApiClient
|
|
18
18
|
from biolib.biolib_api_client.biolib_app_api import BiolibAppApi
|
|
19
|
+
from biolib.biolib_logging import logger_no_user_data
|
|
20
|
+
from biolib.typing_utils import Optional
|
|
19
21
|
from biolib.user.sign_in import sign_in
|
|
20
22
|
from biolib.utils import BIOLIB_PACKAGE_VERSION
|
|
21
23
|
|
|
22
24
|
|
|
25
|
+
def _get_latest_pypi_version() -> Optional[str]:
|
|
26
|
+
try:
|
|
27
|
+
response = HttpClient.request(
|
|
28
|
+
url='https://pypi.org/pypi/pybiolib/json',
|
|
29
|
+
timeout_in_seconds=5,
|
|
30
|
+
retries=1,
|
|
31
|
+
)
|
|
32
|
+
data = response.json()
|
|
33
|
+
version = data.get('info', {}).get('version')
|
|
34
|
+
if isinstance(version, str):
|
|
35
|
+
return version
|
|
36
|
+
return None
|
|
37
|
+
except Exception as error:
|
|
38
|
+
logger_no_user_data.debug(f'Failed to fetch latest version from PyPI: {error}')
|
|
39
|
+
return None
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def _is_current_version_outdated(current: str, latest: str) -> bool:
|
|
43
|
+
try:
|
|
44
|
+
current_parts = [int(x) for x in current.split('.')]
|
|
45
|
+
latest_parts = [int(x) for x in latest.split('.')]
|
|
46
|
+
return current_parts < latest_parts
|
|
47
|
+
except (ValueError, AttributeError):
|
|
48
|
+
return False
|
|
49
|
+
|
|
50
|
+
|
|
23
51
|
@click.command(help='Initialize a BioLib project', hidden=True)
|
|
24
52
|
def init() -> None:
|
|
53
|
+
latest_version = _get_latest_pypi_version()
|
|
54
|
+
if latest_version and _is_current_version_outdated(BIOLIB_PACKAGE_VERSION, latest_version):
|
|
55
|
+
print(f'A newer version of pybiolib is available: {latest_version} (current: {BIOLIB_PACKAGE_VERSION})')
|
|
56
|
+
print('To upgrade, run: pip install --upgrade pybiolib')
|
|
57
|
+
print()
|
|
58
|
+
continue_input = input('Do you want to continue with the current version? [y/N]: ')
|
|
59
|
+
if continue_input.lower() not in ['y', 'yes']:
|
|
60
|
+
print('Please upgrade pybiolib and run `biolib init` again.')
|
|
61
|
+
return
|
|
62
|
+
|
|
25
63
|
cwd = os.getcwd()
|
|
26
64
|
|
|
27
65
|
app_uri = input('What URI do you want to create the application under? (leave blank to skip): ')
|
biolib/cli/run.py
CHANGED
|
@@ -13,19 +13,23 @@ from biolib.typing_utils import Optional, Tuple
|
|
|
13
13
|
help='Run an application on BioLib.',
|
|
14
14
|
)
|
|
15
15
|
@click.option('--experiment', type=str, required=False, help='Experiment name or URI to add the run to.')
|
|
16
|
-
@click.option('--local', is_flag=True, required=False,
|
|
16
|
+
@click.option('--local', is_flag=True, required=False, hidden=True)
|
|
17
17
|
@click.option('--non-blocking', is_flag=True, required=False, help='Run the application non blocking.')
|
|
18
18
|
@click.argument('uri', required=True)
|
|
19
19
|
@click.argument('args', nargs=-1, type=click.UNPROCESSED)
|
|
20
20
|
def run(experiment: Optional[str], local: bool, non_blocking: bool, uri: str, args: Tuple[str]) -> None:
|
|
21
|
+
if local:
|
|
22
|
+
print('Error: Running applications locally with --local is no longer supported.', file=sys.stderr)
|
|
23
|
+
sys.exit(1)
|
|
24
|
+
|
|
21
25
|
if experiment:
|
|
22
26
|
with Experiment(uri=experiment):
|
|
23
|
-
_run(
|
|
27
|
+
_run(non_blocking=non_blocking, uri=uri, args=args)
|
|
24
28
|
else:
|
|
25
|
-
_run(
|
|
29
|
+
_run(non_blocking=non_blocking, uri=uri, args=args)
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
def _run(
|
|
32
|
+
def _run(non_blocking: bool, uri: str, args: Tuple[str]) -> None:
|
|
29
33
|
try:
|
|
30
34
|
app = BioLibApp(uri=uri)
|
|
31
35
|
except biolib_errors.BioLibError as error:
|
|
@@ -43,7 +47,6 @@ def _run(local: bool, non_blocking: bool, uri: str, args: Tuple[str]) -> None:
|
|
|
43
47
|
args=list(args),
|
|
44
48
|
stdin=_get_stdin(),
|
|
45
49
|
files=None,
|
|
46
|
-
machine=('local' if local else ''),
|
|
47
50
|
blocking=blocking,
|
|
48
51
|
)
|
|
49
52
|
|
|
@@ -361,7 +361,7 @@ class JobWorker:
|
|
|
361
361
|
if remote_host_mappings:
|
|
362
362
|
remote_host_proxy = RemoteHostProxy(
|
|
363
363
|
remote_host_mappings=remote_host_mappings,
|
|
364
|
-
|
|
364
|
+
job=job,
|
|
365
365
|
app_caller_network=None,
|
|
366
366
|
)
|
|
367
367
|
remote_host_proxy.start()
|
|
@@ -384,7 +384,7 @@ class JobWorker:
|
|
|
384
384
|
try:
|
|
385
385
|
app_caller_proxy = RemoteHostProxy(
|
|
386
386
|
remote_host_mappings=[],
|
|
387
|
-
|
|
387
|
+
job=job,
|
|
388
388
|
app_caller_network=self._internal_network,
|
|
389
389
|
)
|
|
390
390
|
app_caller_proxy.start()
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import base64
|
|
2
1
|
import io
|
|
3
2
|
import ipaddress
|
|
4
3
|
import tarfile
|
|
@@ -10,7 +9,9 @@ from docker.models.networks import Network
|
|
|
10
9
|
from docker.types import EndpointConfig
|
|
11
10
|
|
|
12
11
|
from biolib import utils
|
|
12
|
+
from biolib._internal.utils import base64_encode_string
|
|
13
13
|
from biolib.biolib_api_client import BiolibApiClient, RemoteHost
|
|
14
|
+
from biolib.biolib_api_client.job_types import CreatedJobDict
|
|
14
15
|
from biolib.biolib_docker_client import BiolibDockerClient
|
|
15
16
|
from biolib.biolib_errors import BioLibError
|
|
16
17
|
from biolib.biolib_logging import logger_no_user_data
|
|
@@ -50,22 +51,26 @@ class RemoteHostProxy:
|
|
|
50
51
|
def __init__(
|
|
51
52
|
self,
|
|
52
53
|
remote_host_mappings: List[RemoteHostMapping],
|
|
53
|
-
|
|
54
|
+
job: CreatedJobDict,
|
|
54
55
|
app_caller_network: Optional[Network] = None,
|
|
55
56
|
):
|
|
56
57
|
self._remote_host_mappings = remote_host_mappings
|
|
57
58
|
self._app_caller_network = app_caller_network
|
|
58
59
|
self.is_app_caller_proxy = app_caller_network is not None
|
|
59
60
|
|
|
60
|
-
if not
|
|
61
|
-
raise Exception('RemoteHostProxy missing argument "
|
|
61
|
+
if not job:
|
|
62
|
+
raise Exception('RemoteHostProxy missing argument "job"')
|
|
62
63
|
|
|
64
|
+
self._job = job
|
|
63
65
|
suffix = '-AppCallerProxy' if app_caller_network else ''
|
|
64
|
-
self._name = f'biolib-remote-host-proxy-{
|
|
65
|
-
self._job_uuid = job_id
|
|
66
|
+
self._name = f'biolib-remote-host-proxy-{self._job_uuid}{suffix}'
|
|
66
67
|
self._container: Optional[Container] = None
|
|
67
68
|
self._docker = BiolibDockerClient().get_docker_client()
|
|
68
69
|
|
|
70
|
+
@property
|
|
71
|
+
def _job_uuid(self) -> str:
|
|
72
|
+
return self._job['uuid']
|
|
73
|
+
|
|
69
74
|
def get_hostname_to_ip_mapping(self) -> Dict[str, str]:
|
|
70
75
|
return {mapping.hostname: mapping.static_ip for mapping in self._remote_host_mappings}
|
|
71
76
|
|
|
@@ -174,8 +179,12 @@ class RemoteHostProxy:
|
|
|
174
179
|
access_token = BiolibApiClient.get().access_token
|
|
175
180
|
bearer_token = f'Bearer {access_token}' if access_token else ''
|
|
176
181
|
|
|
177
|
-
|
|
178
|
-
|
|
182
|
+
user_uuid = self._job['user_id']
|
|
183
|
+
if user_uuid:
|
|
184
|
+
biolib_index_basic_auth = f'biolib_user|{user_uuid.replace("-", "_")}:cloud-{compute_node_auth_token}'
|
|
185
|
+
biolib_index_auth_header_value = f'Basic {base64_encode_string(biolib_index_basic_auth)}'
|
|
186
|
+
else:
|
|
187
|
+
biolib_index_auth_header_value = ''
|
|
179
188
|
|
|
180
189
|
nginx_config = f"""
|
|
181
190
|
events {{
|
|
@@ -343,7 +352,7 @@ http {{
|
|
|
343
352
|
|
|
344
353
|
location /api/proxy/index/ {{
|
|
345
354
|
proxy_pass https://$upstream_hostname$request_uri;
|
|
346
|
-
proxy_set_header authorization "
|
|
355
|
+
proxy_set_header authorization "{biolib_index_auth_header_value}";
|
|
347
356
|
proxy_set_header cookie "";
|
|
348
357
|
proxy_ssl_server_name on;
|
|
349
358
|
}}
|
|
@@ -385,13 +394,6 @@ http {{
|
|
|
385
394
|
proxy_ssl_server_name on;
|
|
386
395
|
}}
|
|
387
396
|
|
|
388
|
-
location /proxy/index/ {{
|
|
389
|
-
proxy_pass https://$upstream_hostname$request_uri;
|
|
390
|
-
proxy_set_header authorization "Basic {biolib_index_basic_auth_base64}";
|
|
391
|
-
proxy_set_header cookie "";
|
|
392
|
-
proxy_ssl_server_name on;
|
|
393
|
-
}}
|
|
394
|
-
|
|
395
397
|
location / {{
|
|
396
398
|
return 404 "Not found";
|
|
397
399
|
}}
|
biolib/experiments/experiment.py
CHANGED
|
@@ -308,6 +308,19 @@ class Experiment:
|
|
|
308
308
|
)
|
|
309
309
|
|
|
310
310
|
def rename(self, destination: str) -> None:
|
|
311
|
+
r"""Rename this experiment to a new URI.
|
|
312
|
+
|
|
313
|
+
Args:
|
|
314
|
+
destination (str): The new URI for the experiment
|
|
315
|
+
(e.g., 'username/new-experiment-name').
|
|
316
|
+
|
|
317
|
+
Example::
|
|
318
|
+
|
|
319
|
+
>>> experiment = biolib.get_experiment(uri='username/my-experiment')
|
|
320
|
+
>>> experiment.rename('username/my-renamed-experiment')
|
|
321
|
+
>>> print(experiment.uri)
|
|
322
|
+
'username/my-renamed-experiment'
|
|
323
|
+
"""
|
|
311
324
|
self._api_client.patch(f'/resources/{self.uuid}/', data={'uri': destination})
|
|
312
325
|
self._refetch()
|
|
313
326
|
|
|
@@ -10,7 +10,7 @@ from biolib._internal.http_client import HttpClient
|
|
|
10
10
|
from biolib.biolib_api_client import BiolibApiClient
|
|
11
11
|
from biolib.biolib_errors import BioLibError
|
|
12
12
|
from biolib.biolib_logging import logger, logger_no_user_data
|
|
13
|
-
from biolib.typing_utils import
|
|
13
|
+
from biolib.typing_utils import Callable, Dict, Iterator, List, Optional, Tuple, TypedDict
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def get_chunk_iterator_from_bytes(byte_buffer: bytes, chunk_size_in_bytes: int = 50_000_000) -> Iterator[bytes]:
|
|
@@ -45,19 +45,20 @@ _UploadChunkReturnType = Tuple[_PartMetadata, int]
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
class MultiPartUploader:
|
|
48
|
-
|
|
49
48
|
def __init__(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
self,
|
|
50
|
+
complete_upload_request: RequestOptions,
|
|
51
|
+
get_presigned_upload_url_request: RequestOptions,
|
|
52
|
+
start_multipart_upload_request: Optional[RequestOptions] = None,
|
|
53
|
+
use_process_pool: Optional[bool] = None,
|
|
54
|
+
on_progress: Optional[Callable[[int, int], None]] = None,
|
|
55
55
|
):
|
|
56
56
|
self._complete_upload_request = complete_upload_request
|
|
57
57
|
self._get_presigned_upload_url_request = get_presigned_upload_url_request
|
|
58
58
|
self._start_multipart_upload_request = start_multipart_upload_request
|
|
59
59
|
self._bytes_uploaded: int = 0
|
|
60
60
|
self._use_process_pool = use_process_pool
|
|
61
|
+
self._on_progress = on_progress
|
|
61
62
|
|
|
62
63
|
def upload(self, payload_iterator: Iterator[bytes], payload_size_in_bytes: int) -> None:
|
|
63
64
|
parts: List[_PartMetadata] = []
|
|
@@ -85,21 +86,22 @@ class MultiPartUploader:
|
|
|
85
86
|
self._update_progress_bar_and_parts(
|
|
86
87
|
upload_chunk_response=upload_chunk_response,
|
|
87
88
|
parts=parts,
|
|
88
|
-
payload_size_in_bytes=payload_size_in_bytes
|
|
89
|
+
payload_size_in_bytes=payload_size_in_bytes,
|
|
89
90
|
)
|
|
90
91
|
else:
|
|
91
92
|
# use 16 cores, unless less is available
|
|
92
93
|
pool_size = min(16, multiprocessing.cpu_count() - 1)
|
|
93
|
-
process_pool =
|
|
94
|
-
multiprocessing.
|
|
94
|
+
process_pool = (
|
|
95
|
+
multiprocessing.Pool(pool_size)
|
|
96
|
+
if self._use_process_pool
|
|
97
|
+
else multiprocessing.pool.ThreadPool(pool_size)
|
|
98
|
+
)
|
|
95
99
|
|
|
96
100
|
try:
|
|
97
101
|
response: _UploadChunkReturnType
|
|
98
102
|
for response in process_pool.imap(self._upload_chunk, iterator_with_index):
|
|
99
103
|
self._update_progress_bar_and_parts(
|
|
100
|
-
upload_chunk_response=response,
|
|
101
|
-
parts=parts,
|
|
102
|
-
payload_size_in_bytes=payload_size_in_bytes
|
|
104
|
+
upload_chunk_response=response, parts=parts, payload_size_in_bytes=payload_size_in_bytes
|
|
103
105
|
)
|
|
104
106
|
finally:
|
|
105
107
|
logger_no_user_data.debug('Multipart upload closing process pool...')
|
|
@@ -148,8 +150,9 @@ class MultiPartUploader:
|
|
|
148
150
|
if app_caller_proxy_job_storage_base_url:
|
|
149
151
|
# Done to hit App Caller Proxy when uploading result from inside an app
|
|
150
152
|
parsed_url = urlparse(presigned_upload_url)
|
|
151
|
-
presigned_upload_url =
|
|
153
|
+
presigned_upload_url = (
|
|
152
154
|
f'{app_caller_proxy_job_storage_base_url}{parsed_url.path}?{parsed_url.query}'
|
|
155
|
+
)
|
|
153
156
|
|
|
154
157
|
put_chunk_response = HttpClient.request(
|
|
155
158
|
url=presigned_upload_url,
|
|
@@ -169,10 +172,10 @@ class MultiPartUploader:
|
|
|
169
172
|
raise BioLibError(f'Max retries hit, when uploading part {part_number}. Exiting...')
|
|
170
173
|
|
|
171
174
|
def _update_progress_bar_and_parts(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
175
|
+
self,
|
|
176
|
+
upload_chunk_response: _UploadChunkReturnType,
|
|
177
|
+
parts: List[_PartMetadata],
|
|
178
|
+
payload_size_in_bytes: int,
|
|
176
179
|
) -> None:
|
|
177
180
|
part_metadata, chunk_byte_length = upload_chunk_response
|
|
178
181
|
part_number = part_metadata['PartNumber']
|
|
@@ -180,6 +183,9 @@ class MultiPartUploader:
|
|
|
180
183
|
parts.append(part_metadata)
|
|
181
184
|
self._bytes_uploaded += chunk_byte_length
|
|
182
185
|
|
|
186
|
+
if self._on_progress is not None:
|
|
187
|
+
self._on_progress(self._bytes_uploaded, payload_size_in_bytes)
|
|
188
|
+
|
|
183
189
|
approx_progress_percent = min(self._bytes_uploaded / (payload_size_in_bytes + 1) * 100, 100)
|
|
184
190
|
approx_rounded_progress = round(approx_progress_percent, 2)
|
|
185
191
|
logger_no_user_data.debug(
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pybiolib
|
|
3
|
+
Version: 1.2.1727
|
|
4
|
+
Summary: BioLib Python Client
|
|
5
|
+
Project-URL: Homepage, https://github.com/biolib
|
|
6
|
+
Author-email: biolib <hello@biolib.com>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Keywords: biolib
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Requires-Python: >=3.6.3
|
|
13
|
+
Requires-Dist: appdirs>=1.4.3
|
|
14
|
+
Requires-Dist: click>=8.0.0
|
|
15
|
+
Requires-Dist: docker>=5.0.3
|
|
16
|
+
Requires-Dist: importlib-metadata>=1.6.1
|
|
17
|
+
Requires-Dist: pyyaml>=5.3.1
|
|
18
|
+
Requires-Dist: rich>=12.4.4
|
|
19
|
+
Requires-Dist: typing-extensions>=4.1.0; python_version < '3.11'
|
|
20
|
+
Provides-Extra: compute-node
|
|
21
|
+
Requires-Dist: flask>=2.0.1; extra == 'compute-node'
|
|
22
|
+
Requires-Dist: gunicorn>=20.1.0; extra == 'compute-node'
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# PyBioLib
|
|
26
|
+
|
|
27
|
+
PyBioLib is a Python package for running BioLib applications from Python scripts and the command line.
|
|
28
|
+
|
|
29
|
+
### Python Example
|
|
30
|
+
```python
|
|
31
|
+
# pip3 install -U pybiolib
|
|
32
|
+
import biolib
|
|
33
|
+
samtools = biolib.load('samtools/samtools')
|
|
34
|
+
print(samtools.cli(args='--help'))
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Command Line Example
|
|
38
|
+
```bash
|
|
39
|
+
pip3 install -U pybiolib
|
|
40
|
+
biolib run samtools/samtools --help
|
|
41
|
+
```
|
|
@@ -1,30 +1,38 @@
|
|
|
1
1
|
biolib/__init__.py,sha256=-pz1Ipyj1KmB709yYpl2Y-iKOWXpLxcFzL48G8rr9cU,12146
|
|
2
|
-
biolib/
|
|
2
|
+
biolib/biolib_download_container.py,sha256=8TmBV8iv3bCvkNlHa1SSsc4zl0wX_eaxhfnW5rvFIh8,1779
|
|
3
|
+
biolib/biolib_errors.py,sha256=eyQolC4oGi350BDEMOd-gAHYVqo2L2lYgv6c4ZdXPjQ,1184
|
|
4
|
+
biolib/biolib_logging.py,sha256=Y3qALGNYaTHdXP2aPFNWfxN71pk2Z3syMG6XrYcRZT8,2863
|
|
5
|
+
biolib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
biolib/tables.py,sha256=MmruV-nJLc3HbLVJBAiDuDCgS2-4oaUkpoCLLUNYbxQ,1173
|
|
7
|
+
biolib/typing_utils.py,sha256=TMw723SPq8zy1VYsdgbq_LPsGtCm3VgFhzz6srt71u0,146
|
|
8
|
+
biolib/_data_record/data_record.py,sha256=2MDs2KR_zA7hUjTDxzmih_ph0Iv6WAlEh4WBMoAGSvI,15441
|
|
3
9
|
biolib/_index/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
biolib/_index/index.py,sha256=
|
|
10
|
+
biolib/_index/index.py,sha256=u89cQ-FpLAEPSPE-QN1X1Cevo_HemTcLX49hS87r5Zk,1560
|
|
5
11
|
biolib/_index/types.py,sha256=iVn4R175FZgqHS6QJXssYUBpBHlkggepRA5-_qvrfuE,124
|
|
6
12
|
biolib/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
13
|
biolib/_internal/add_copilot_prompts.py,sha256=wcIdrceFcfKSoEjvM4uNzhKZ0I1-MCFkfNO4duqtGHA,1861
|
|
8
14
|
biolib/_internal/add_gui_files.py,sha256=MrtvkIpe70tVVJYBBsMbRhjsxf55hFzlzn-ea2oinTc,2218
|
|
15
|
+
biolib/_internal/errors.py,sha256=AokI6Dvaa22B__LTfSZUVdDsm0ye7lgBFv_aD9O_kbs,163
|
|
16
|
+
biolib/_internal/file_utils.py,sha256=62yDRC_3hLKh0_Pbny7-syVduVSnc3H1Rv_D6zbGnS4,4518
|
|
17
|
+
biolib/_internal/http_client.py,sha256=9-3HG6LnLwJfrwjCeFj5XigHVH8Dzz6Dpr58IjQJHDo,6221
|
|
18
|
+
biolib/_internal/push_application.py,sha256=_CMCJZNLcRQ_hWje5_HvD8Re4l55NyTjniMglv3kjaw,21128
|
|
19
|
+
biolib/_internal/runtime.py,sha256=SnunTYa1-056cvb_Z-JwYyUaz5Zoem8jm4RjY3V8zGw,554
|
|
20
|
+
biolib/_internal/string_utils.py,sha256=N7J7oGu6_yA_z0pOiKqxEh__lRdiDLh6kigeDkQEZ5g,265
|
|
21
|
+
biolib/_internal/tree_utils.py,sha256=_Q_6_NDtIiROcefymqxEVddjqti6Mt3OZ4U0GcDW61s,3904
|
|
9
22
|
biolib/_internal/data_record/__init__.py,sha256=fGdME6JGRU_2VxpJbYpGXYndjN-feUkmKY4fuMyq3cg,76
|
|
10
23
|
biolib/_internal/data_record/data_record.py,sha256=vJbjkYj6kyncaNApN94uTJvve1C1XkYWHbWuiMFfzoU,4604
|
|
11
|
-
biolib/_internal/data_record/push_data.py,sha256=
|
|
24
|
+
biolib/_internal/data_record/push_data.py,sha256=WAvZYLQHTA36kX4uvVu1p0UgiDpf0zNFK3blmfxdZ4Y,4369
|
|
12
25
|
biolib/_internal/data_record/remote_storage_endpoint.py,sha256=qooTo6fdC3-x-ko9ipF7_fkg7hE3Fq06MWx4lwnAgAU,1760
|
|
13
|
-
biolib/_internal/errors.py,sha256=AokI6Dvaa22B__LTfSZUVdDsm0ye7lgBFv_aD9O_kbs,163
|
|
14
|
-
biolib/_internal/file_utils.py,sha256=62yDRC_3hLKh0_Pbny7-syVduVSnc3H1Rv_D6zbGnS4,4518
|
|
15
26
|
biolib/_internal/fuse_mount/__init__.py,sha256=B_tM6RM2dBw-vbpoHJC4X3tOAaN1H2RDvqYJOw3xFwg,55
|
|
16
27
|
biolib/_internal/fuse_mount/experiment_fuse_mount.py,sha256=08aUdEq_bvqLBft_gSLjOClKDy5sBnMts1RfJf7AP_U,7012
|
|
17
|
-
biolib/_internal/http_client.py,sha256=9-3HG6LnLwJfrwjCeFj5XigHVH8Dzz6Dpr58IjQJHDo,6221
|
|
18
28
|
biolib/_internal/index/__init__.py,sha256=O1m6QYmqc3DLy7hqAeYDJeGNEegdK9L10omDuNlUGhQ,38
|
|
19
29
|
biolib/_internal/index/index.py,sha256=zuA-Vplkqmv89PiLrPki43CxdCrjEUiCiFEGsAEtlbs,764
|
|
20
30
|
biolib/_internal/lfs/__init__.py,sha256=gSWo_xg61UniYgD7yNYxeT4I9uaXBCBSi3_nmZjnPpE,35
|
|
21
31
|
biolib/_internal/lfs/cache.py,sha256=XMnUuB6vwyv8H_Ha6r6n-QruHUY_YrBj-l2xcXj57QI,2362
|
|
22
32
|
biolib/_internal/libs/__init__.py,sha256=Jdf4tNPqe_oIIf6zYml6TiqhL_02Vyqwge6IELrAFhw,98
|
|
23
33
|
biolib/_internal/libs/fusepy/__init__.py,sha256=AWDzNFS-XV_5yKb0Qx7kggIhPzq1nj_BZS5y2Nso08k,41944
|
|
24
|
-
biolib/_internal/push_application.py,sha256=_CMCJZNLcRQ_hWje5_HvD8Re4l55NyTjniMglv3kjaw,21128
|
|
25
|
-
biolib/_internal/runtime.py,sha256=SnunTYa1-056cvb_Z-JwYyUaz5Zoem8jm4RjY3V8zGw,554
|
|
26
|
-
biolib/_internal/string_utils.py,sha256=N7J7oGu6_yA_z0pOiKqxEh__lRdiDLh6kigeDkQEZ5g,265
|
|
27
34
|
biolib/_internal/templates/__init__.py,sha256=NVbhLUMC8HITzkLvP88Qu7FHaL-SvQord-DX3gh1Ykk,24
|
|
35
|
+
biolib/_internal/templates/templates.py,sha256=ni0euP0KD5NHkxJPIt__i2WvXxYIcC8qugQEoT9oIJQ,308
|
|
28
36
|
biolib/_internal/templates/copilot_template/.github/instructions/general-app-knowledge.instructions.md,sha256=-j8v0GRtDhHoqP2wcGUykiwU7HQ0DmkCNxw_01oKMdY,546
|
|
29
37
|
biolib/_internal/templates/copilot_template/.github/instructions/style-general.instructions.md,sha256=tl2Ve1ZPlPBrH6CSrjIkiMA8xnM2tQIJs1cerKCyAkU,761
|
|
30
38
|
biolib/_internal/templates/copilot_template/.github/instructions/style-python.instructions.md,sha256=xfypuPqMsz5ejobDoVI0HjmNqksl16aFuIol1nAhpHg,1034
|
|
@@ -36,7 +44,6 @@ biolib/_internal/templates/gui_template/.yarnrc.yml,sha256=Rz5t74b8A2OBIODAHQyLu
|
|
|
36
44
|
biolib/_internal/templates/gui_template/App.tsx,sha256=VfaJO_mxbheRrfO1dU28G9Q4pGsGzeJpPREqtAT4fGE,1692
|
|
37
45
|
biolib/_internal/templates/gui_template/Dockerfile,sha256=nGZQiL7coQBUnH1E2abK2PJ4XRjVS1QXn6HDX9UGpcE,479
|
|
38
46
|
biolib/_internal/templates/gui_template/biolib-sdk.ts,sha256=zRN2h4ws7ZuidxYKaRPaurfTxNJN-hX0MdG6POvdxU0,1195
|
|
39
|
-
biolib/_internal/templates/gui_template/dev-data/output.json,sha256=wKcJQtN7NGaCJkmEWyRjEbBtTLMHB6pOkqTgWsKmOh8,162
|
|
40
47
|
biolib/_internal/templates/gui_template/index.css,sha256=WYds1xQY2of84ebHhRW9ummbw0Bg9N-EyfmBzJKigck,70
|
|
41
48
|
biolib/_internal/templates/gui_template/index.html,sha256=EM5xzJ9CsJalgzL-jLNkAoP4tgosw0WYExcH5W6DOs8,403
|
|
42
49
|
biolib/_internal/templates/gui_template/index.tsx,sha256=YrdrpcckwLo0kYIA-2egtzlo0OMWigGxnt7mNN4qmlU,234
|
|
@@ -44,22 +51,22 @@ biolib/_internal/templates/gui_template/package.json,sha256=4E8pDdnrYYjmKAL8NYFE
|
|
|
44
51
|
biolib/_internal/templates/gui_template/tsconfig.json,sha256=T3DJIzeLQ2BL8HLfPHI-IvHtJhnMXdHOoRjkmQlJQAw,541
|
|
45
52
|
biolib/_internal/templates/gui_template/vite-plugin-dev-data.ts,sha256=jLFSl7_DU9W3ScM6fm0aFSCzDhAtzhI9G6zr1exze84,1397
|
|
46
53
|
biolib/_internal/templates/gui_template/vite.config.mts,sha256=5RjRfJHgqLOr-LRydBUnDPr5GrHQuRsviTMC60hvKxU,348
|
|
47
|
-
biolib/_internal/templates/
|
|
48
|
-
biolib/_internal/templates/init_template/.github/workflows/biolib.yml,sha256=3Os7FCptYHKK4ERI5_olM7s7V8KNIsVTBywfXI069sw,645
|
|
54
|
+
biolib/_internal/templates/gui_template/dev-data/output.json,sha256=wKcJQtN7NGaCJkmEWyRjEbBtTLMHB6pOkqTgWsKmOh8,162
|
|
49
55
|
biolib/_internal/templates/init_template/.gitignore,sha256=dR_jhtT0boUspgk3S5PPUwuO0o8gKGIbdwu8IH638CY,20
|
|
50
56
|
biolib/_internal/templates/init_template/Dockerfile,sha256=Cx3ktDxcpgAWAacIewm7mcI7lNEsmgAETvFtN7NA3Ms,199
|
|
51
57
|
biolib/_internal/templates/init_template/requirements.txt,sha256=2GnBHsKg4tX5F06Z4YeLuId6jQO3-HGTITsaVBTDG0Y,42
|
|
52
58
|
biolib/_internal/templates/init_template/run.py,sha256=oat-Vzcz4XZilrTtgy8CzfltBAa5v6iduGof4Tuulhg,402
|
|
53
59
|
biolib/_internal/templates/init_template/run.sh,sha256=ncvInHCn_PgjXmvaa5oBU0vC3dgFJQ6k7fUJKJzpOh4,69
|
|
54
|
-
biolib/_internal/templates/
|
|
55
|
-
biolib/_internal/
|
|
56
|
-
biolib/_internal/utils/__init__.py,sha256=
|
|
60
|
+
biolib/_internal/templates/init_template/.biolib/config.yml,sha256=gxMVd1wjbsDvMv4byc8fKEdJFby4qgi6v38mO5qmhoY,453
|
|
61
|
+
biolib/_internal/templates/init_template/.github/workflows/biolib.yml,sha256=3Os7FCptYHKK4ERI5_olM7s7V8KNIsVTBywfXI069sw,645
|
|
62
|
+
biolib/_internal/utils/__init__.py,sha256=3yh81jzeNUtn72vedM5EPwyMtyQb98J_Vu1R6bbgouE,1978
|
|
63
|
+
biolib/_internal/utils/auth.py,sha256=aPJOF8j38TOS_h_UFdw_AcXlI18YFU-LrmsILX0FPdU,1432
|
|
57
64
|
biolib/_internal/utils/job_url.py,sha256=YpwqCP56BD15M8p2tuSY_Z3O9vWAkG2rJbQu2Z5zqq0,1265
|
|
58
65
|
biolib/_internal/utils/multinode.py,sha256=N7kR49xD1PdkMVlxxzRiSYHfgi9MG-kLCwemcY1rojg,8323
|
|
59
|
-
biolib/_runtime/runtime.py,sha256=
|
|
66
|
+
biolib/_runtime/runtime.py,sha256=pzHpbLlMt4PM0GxT-2pLTtNAtdHgg7N3vhpmkzt42EA,6146
|
|
60
67
|
biolib/_session/session.py,sha256=nP6ETTMUQygElrRIFq8zr9QqjHwmKMsvf6BpiRLUUW4,1821
|
|
61
68
|
biolib/_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
-
biolib/_shared/types/__init__.py,sha256=
|
|
69
|
+
biolib/_shared/types/__init__.py,sha256=UtMVBWMUKvgsLYKh4i4lfgxkUvqlh0HAbfvTAYaBta0,2202
|
|
63
70
|
biolib/_shared/types/account.py,sha256=_MY59S_8r3OqT630HzEoRnS6VnbbLm296wP2WrdpdjM,190
|
|
64
71
|
biolib/_shared/types/account_member.py,sha256=aCcel1McoAsH83Mv1mqawK2Q-yt4OI0xrgPiKjg4Tqg,178
|
|
65
72
|
biolib/_shared/types/app.py,sha256=Mz2QGD_jESX-K9JYnLWPo4YA__Q_1FQQTk9pvidCohU,118
|
|
@@ -67,23 +74,22 @@ biolib/_shared/types/data_record.py,sha256=9r_vdhVs60YTnzU4XQFXfDrfS2P2MqD3BH2xa
|
|
|
67
74
|
biolib/_shared/types/experiment.py,sha256=7WERhHnkbO3qrPWZyJmu-KrKOGRXaX5xdLBUNHh17KE,714
|
|
68
75
|
biolib/_shared/types/file_node.py,sha256=T6BIqo662f3nwMBRqtBHYsg6YuuUaKpiokHcVjv9_ME,283
|
|
69
76
|
biolib/_shared/types/push.py,sha256=qSXCjdzOmHG7_QiwXaNSrVkESTMxnIKPvEut-9Mqt-g,108
|
|
70
|
-
biolib/_shared/types/resource.py,sha256=
|
|
77
|
+
biolib/_shared/types/resource.py,sha256=yMepJ4MA_vQrs1Pqu6LufXSoq7chGyHpEFCW-Smc8hU,920
|
|
71
78
|
biolib/_shared/types/resource_deploy_key.py,sha256=vwPKRHxjkrkEptBiJUovE4P0N4EuZr43_U0u_JP8Pag,204
|
|
72
|
-
biolib/_shared/types/resource_permission.py,sha256=
|
|
73
|
-
biolib/_shared/types/
|
|
74
|
-
biolib/_shared/types/resource_version.py,sha256=cU0YFHqxO-wX_Y6CoeK0Iei61gFwVoyR_kPOSTQ4mCs,304
|
|
79
|
+
biolib/_shared/types/resource_permission.py,sha256=ZE7eokpzswAiqe4GdpdxdZ6_jl0LdiRD9gP81I8C3fY,292
|
|
80
|
+
biolib/_shared/types/resource_version.py,sha256=BwKIsJQjOwJP7-s-gXcy-EBHMDEmkxOHaMKsDQtZzV4,479
|
|
75
81
|
biolib/_shared/types/result.py,sha256=MesSTBXCkaw8HydXgHf1OKGVLzsxhZ1KV5z4w-VI-0M,231
|
|
76
82
|
biolib/_shared/types/typing.py,sha256=qrsk8hHcGEbDpU1QQFzHAKnhQxkMe7uJ6pxHeAnfv1Y,414
|
|
77
83
|
biolib/_shared/types/user.py,sha256=5_hYG0jrdGxynCCWXGaHZCAlVcRKBqMIEA2EBGrnpiE,439
|
|
78
84
|
biolib/_shared/utils/__init__.py,sha256=3PaCkPREN3zgWszO65lHDdqwo958rD9OzCKGmUEP-Fc,216
|
|
79
85
|
biolib/_shared/utils/resource_uri.py,sha256=-jZ9g8aenms0SInVrhvBHAgwy8MsaTNBLYFh4Dr1JOU,2909
|
|
80
86
|
biolib/api/__init__.py,sha256=mQ4u8FijqyLzjYMezMUUbbBGNB3iFmkNdjXnWPZ7Jlw,138
|
|
81
|
-
biolib/api/client.py,sha256=
|
|
87
|
+
biolib/api/client.py,sha256=51D6PO_wazLRdCMYVJKpecrzc0zQDOdCPmwcY8M-bNs,6414
|
|
82
88
|
biolib/app/__init__.py,sha256=cdPtcfb_U-bxb9iSL4fCEq2rpD9OjkyY4W-Zw60B0LI,37
|
|
83
|
-
biolib/app/app.py,sha256=
|
|
89
|
+
biolib/app/app.py,sha256=CY4M2Ty7L7sGVUNa-2JD3Udn1Qmg5EJKB7KYAFt4hv8,13034
|
|
84
90
|
biolib/app/search_apps.py,sha256=K4a41f5XIWth2BWI7OffASgIsD0ko8elCax8YL2igaY,1470
|
|
85
91
|
biolib/biolib_api_client/__init__.py,sha256=E5EMa19wJoblwSdQPYrxc_BtIeRsAuO0L_jQweWw-Yk,182
|
|
86
|
-
biolib/biolib_api_client/api_client.py,sha256=
|
|
92
|
+
biolib/biolib_api_client/api_client.py,sha256=JwH1_3rD0E_gs5x39TN_AajsC7o1wvQx3pAlGMzwANQ,6109
|
|
87
93
|
biolib/biolib_api_client/app_types.py,sha256=P2MbwYZ0VsPUcbcX27lSvVlAYSbkz_IqWTcbxFyuu7I,2477
|
|
88
94
|
biolib/biolib_api_client/auth.py,sha256=kjm0ZHnH3I8so3su2sZbBxNHYp-ZUdrZ5lwQ0K36RSw,949
|
|
89
95
|
biolib/biolib_api_client/biolib_app_api.py,sha256=slnJVuWtN_Et1PSnjN7mPmYWJvk0Rp-h0rvdrW1R9u8,6041
|
|
@@ -105,48 +111,45 @@ biolib/biolib_binary_format/system_exception.py,sha256=T3iL4_cSHAHim3RSDPS8Xyb1m
|
|
|
105
111
|
biolib/biolib_binary_format/system_status_update.py,sha256=aOELuQ0k-GtpaZTUxYd0GFomP_OInmrK585y6fuQuKE,1191
|
|
106
112
|
biolib/biolib_binary_format/utils.py,sha256=jq31QEShs7TSrSKZBr8jif-bJAwVzQrqVxmymL6crpU,5453
|
|
107
113
|
biolib/biolib_docker_client/__init__.py,sha256=aBfA6mtWSI5dBEfNNMD6bIZzCPloW4ghKm0wqQiljdo,1481
|
|
108
|
-
biolib/biolib_download_container.py,sha256=8TmBV8iv3bCvkNlHa1SSsc4zl0wX_eaxhfnW5rvFIh8,1779
|
|
109
|
-
biolib/biolib_errors.py,sha256=eyQolC4oGi350BDEMOd-gAHYVqo2L2lYgv6c4ZdXPjQ,1184
|
|
110
|
-
biolib/biolib_logging.py,sha256=Y3qALGNYaTHdXP2aPFNWfxN71pk2Z3syMG6XrYcRZT8,2863
|
|
111
114
|
biolib/cli/__init__.py,sha256=A_AATNYLH7exu332OYds1PrqOAuK1sU5wDmYYY4tMvM,1352
|
|
112
115
|
biolib/cli/auth.py,sha256=p9ZGY6ld2rnMbpsuRskvIQJNUHlSgYgcLTDsYGyUwyw,1407
|
|
113
|
-
biolib/cli/data_record.py,sha256=
|
|
116
|
+
biolib/cli/data_record.py,sha256=exBfyw-eqF4kpqMT_5NO5NFb8Z5IDpTLu8xNBY0GlAg,6648
|
|
114
117
|
biolib/cli/download_container.py,sha256=HIZVHOPmslGE5M2Dsp9r2cCkAEJx__vcsDz5Wt5LRos,483
|
|
115
118
|
biolib/cli/index.py,sha256=UeE4lo4NYL7-3DGrJyv1OvbdKmTlKMwdArliHTmIzPY,1081
|
|
116
|
-
biolib/cli/init.py,sha256=
|
|
119
|
+
biolib/cli/init.py,sha256=AzcA0WmPXqW1mWfW6Ld-Kt2yusfMvuumjtyu46OHBLM,9887
|
|
117
120
|
biolib/cli/lfs.py,sha256=mCwziiuzhsZW5UdpsVETDlVUvmO71gHKsV2D4wJ2qUY,4164
|
|
118
121
|
biolib/cli/push.py,sha256=J8BswMYVeTacZBHbm4K4a2XbS_I8kvfgRZLoby2wi3I,1695
|
|
119
|
-
biolib/cli/run.py,sha256=
|
|
122
|
+
biolib/cli/run.py,sha256=cWvIaychccFbVtGuQmiJ7syKtImPu7rU7l-9uHKfd4c,2185
|
|
120
123
|
biolib/cli/runtime.py,sha256=Xv-nrma5xX8NidWcvbUKcUvuN5TCarZa4A8mPVmF-z0,361
|
|
121
124
|
biolib/cli/sdk.py,sha256=XisJwTft4QDB_99eGDlz-WBqqRwIqkVg7HyvxWtOG8w,471
|
|
122
125
|
biolib/cli/start.py,sha256=BcjE4MRRLhBJULuSYQY0e7gMHudw7W-yFcz9klJ3xjo,2287
|
|
123
126
|
biolib/compute_node/.gitignore,sha256=GZdZ4g7HftqfOfasFpBC5zV1YQAbht1a7EzcXD6f3zg,45
|
|
124
127
|
biolib/compute_node/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
|
+
biolib/compute_node/remote_host_proxy.py,sha256=BQQ7Qn93k2dVgBP_dA_thp6smhy200Uw7XwtZj_CnSk,19238
|
|
129
|
+
biolib/compute_node/socker_listener_thread.py,sha256=T5_UikA3MB9bD5W_dckYLPTgixh72vKUlgbBvj9dbM0,1601
|
|
130
|
+
biolib/compute_node/socket_sender_thread.py,sha256=YgamPHeUm2GjMFGx8qk-99WlZhEs-kAb3q_2O6qByig,971
|
|
131
|
+
biolib/compute_node/utils.py,sha256=fvdbetPKMdfHkPqNZRw6eln_i13myu-n8tuceTUcfPU,4913
|
|
125
132
|
biolib/compute_node/cloud_utils/__init__.py,sha256=VZSScLqaz5tg_gpMvWgwkAu9Qf-vgW_QHRoDOaAmU44,67
|
|
126
133
|
biolib/compute_node/cloud_utils/cloud_utils.py,sha256=_iaKelsmQLLwbDKVXZMXPFZayZPH9iHXc4NISFP9uzk,7462
|
|
127
134
|
biolib/compute_node/job_worker/__init__.py,sha256=ipdPWaABKYrltxny15e2kK8PWdEE7VzXbkKK6wM_zDk,71
|
|
128
135
|
biolib/compute_node/job_worker/cache_state.py,sha256=MwjSRzcJJ_4jybqvBL4xdgnDYSIiw4s90pNn83Netoo,4830
|
|
129
136
|
biolib/compute_node/job_worker/cache_types.py,sha256=ajpLy8i09QeQS9dEqTn3T6NVNMY_YsHQkSD5nvIHccQ,818
|
|
130
137
|
biolib/compute_node/job_worker/docker_image_cache.py,sha256=ansHIkJIq_EMW1nZNlW-RRLVVeKWTbzNICYaOHpKiRE,7460
|
|
131
|
-
biolib/compute_node/job_worker/executors/__init__.py,sha256=bW6t1qi3PZTlHM4quaTLa8EI4ALTCk83cqcVJfJfJfE,145
|
|
132
|
-
biolib/compute_node/job_worker/executors/docker_executor.py,sha256=PS7c1DMEcwv5Gsrh0mjwlAuEf7BTSNooW9XODqXofRE,32896
|
|
133
|
-
biolib/compute_node/job_worker/executors/docker_types.py,sha256=Hh8SwQYBLdIMGWgITwD2fzoo_sbW2ESx1G8j9Zq2n30,216
|
|
134
|
-
biolib/compute_node/job_worker/executors/tars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
|
-
biolib/compute_node/job_worker/executors/types.py,sha256=dlp7p8KKkd19nC68o-RuAzRBhpdYFMWKg-__LFjvscs,1611
|
|
136
138
|
biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py,sha256=_cvEiZbOwfkv6fYmfrvdi_FVviIEYr_dSClQcOQaUWM,1198
|
|
137
139
|
biolib/compute_node/job_worker/job_max_runtime_timer_thread.py,sha256=K_xgz7IhiIjpLlXRk8sqaMyLoApcidJkgu29sJX0gb8,1174
|
|
138
140
|
biolib/compute_node/job_worker/job_storage.py,sha256=J6B5wkBo3cqmT1AV-qJnm2Lt9Qmcp3qn-1AabjO9m60,4686
|
|
139
|
-
biolib/compute_node/job_worker/job_worker.py,sha256=
|
|
141
|
+
biolib/compute_node/job_worker/job_worker.py,sha256=BY9_fo9OUVzUGcdAjnsP6WaPpJniWqgIhYuxELCA7d4,32094
|
|
140
142
|
biolib/compute_node/job_worker/large_file_system.py,sha256=Xe_LILVfTD9LXb-0HwLqGsp1fWiI-pU55BqgJ-6t8-0,10357
|
|
141
143
|
biolib/compute_node/job_worker/mappings.py,sha256=Z48Kg4nbcOvsT2-9o3RRikBkqflgO4XeaWxTGz-CNvI,2499
|
|
142
144
|
biolib/compute_node/job_worker/network_alloc.py,sha256=b2xNrqHaVRKCMcFyZepQAuNsBWCzHMDTPeacBdo029s,3586
|
|
143
145
|
biolib/compute_node/job_worker/network_buffer.py,sha256=YIiYz_QZNK7O8SSFzLZf2i7drTk1ewd_gvjg9NgG5LQ,9051
|
|
144
146
|
biolib/compute_node/job_worker/utilization_reporter_thread.py,sha256=Tho8GdYVS93Jb5cJjuN3O0qGQ0JIlxabiaGfTp1ksV0,8594
|
|
145
147
|
biolib/compute_node/job_worker/utils.py,sha256=wgxcIA8yAhUPdCwyvuuJ0JmreyWmmUoBO33vWtG60xg,1282
|
|
146
|
-
biolib/compute_node/
|
|
147
|
-
biolib/compute_node/
|
|
148
|
-
biolib/compute_node/
|
|
149
|
-
biolib/compute_node/
|
|
148
|
+
biolib/compute_node/job_worker/executors/__init__.py,sha256=bW6t1qi3PZTlHM4quaTLa8EI4ALTCk83cqcVJfJfJfE,145
|
|
149
|
+
biolib/compute_node/job_worker/executors/docker_executor.py,sha256=PS7c1DMEcwv5Gsrh0mjwlAuEf7BTSNooW9XODqXofRE,32896
|
|
150
|
+
biolib/compute_node/job_worker/executors/docker_types.py,sha256=Hh8SwQYBLdIMGWgITwD2fzoo_sbW2ESx1G8j9Zq2n30,216
|
|
151
|
+
biolib/compute_node/job_worker/executors/types.py,sha256=dlp7p8KKkd19nC68o-RuAzRBhpdYFMWKg-__LFjvscs,1611
|
|
152
|
+
biolib/compute_node/job_worker/executors/tars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
153
|
biolib/compute_node/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
154
|
biolib/compute_node/webserver/compute_node_results_proxy.py,sha256=6gZ-jYZAuK0m4uiUkaSmP7n61ywPoQyCv3DzNOy-gQ0,7980
|
|
152
155
|
biolib/compute_node/webserver/gunicorn_flask_application.py,sha256=jPfR_YvNBekLUXWo_vHFV-FIwlb8s8tacKmGHvh93qc,914
|
|
@@ -156,25 +159,22 @@ biolib/compute_node/webserver/webserver_types.py,sha256=2t8EaFKESnves3BA_NBdnS2y
|
|
|
156
159
|
biolib/compute_node/webserver/webserver_utils.py,sha256=XWvwYPbWNR3qS0FYbLLp-MDDfVk0QdaAmg3xPrT0H2s,4234
|
|
157
160
|
biolib/compute_node/webserver/worker_thread.py,sha256=7uD9yQPhePYvP2HCJ27EeZ_h6psfIWFgqm1RHZxzobs,12483
|
|
158
161
|
biolib/experiments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
159
|
-
biolib/experiments/experiment.py,sha256=
|
|
162
|
+
biolib/experiments/experiment.py,sha256=Dw1bEZUaGs9-cqheGX_IsJ1McOelcdSsvjKuyrv2BQU,14299
|
|
160
163
|
biolib/jobs/__init__.py,sha256=aIb2H2DHjQbM2Bs-dysFijhwFcL58Blp0Co0gimED3w,32
|
|
161
164
|
biolib/jobs/job.py,sha256=3rP__a_UJWdUzOngtmYekzTV1ttKugB1EyXP7SIN37A,31845
|
|
162
165
|
biolib/jobs/job_result.py,sha256=pbCk2raBK9rbi2RlgQM7MmBqi9K52X4D9n8_1qXjLGU,7636
|
|
163
166
|
biolib/jobs/types.py,sha256=rFs6bQWsNI-nb1Hu9QzOW2zFZ8bOVt7ax4UpGVASxVA,1034
|
|
164
|
-
biolib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
167
|
biolib/runtime/__init__.py,sha256=MlRepA11n2H-3plB5rzWyyHK2JmP6PiaP3i6x3vt0mg,506
|
|
166
168
|
biolib/sdk/__init__.py,sha256=Px4wx4Ynq_rQ7A3OzlZnOC9NiGs5jN9IzpKTg3N_GBY,2590
|
|
167
|
-
biolib/tables.py,sha256=MmruV-nJLc3HbLVJBAiDuDCgS2-4oaUkpoCLLUNYbxQ,1173
|
|
168
|
-
biolib/typing_utils.py,sha256=TMw723SPq8zy1VYsdgbq_LPsGtCm3VgFhzz6srt71u0,146
|
|
169
169
|
biolib/user/__init__.py,sha256=Db5wtxLfFz3ID9TULSSTo77csw9tO6RtxMRvV5cqKEE,39
|
|
170
170
|
biolib/user/sign_in.py,sha256=e_JnykVxemq8eUBD5GmthjDV504CT1Dmn0EshrDCGB8,2085
|
|
171
171
|
biolib/utils/__init__.py,sha256=VtuTFu8zWZwJzfYhVEpPdlhvTA2JkHCboqqQA-VNkpA,5790
|
|
172
172
|
biolib/utils/cache_state.py,sha256=GNFLTo2KcoP4ypDoVVCItmkIAuHtsa_41sSDaK5JFCo,3119
|
|
173
|
-
biolib/utils/multipart_uploader.py,sha256=
|
|
173
|
+
biolib/utils/multipart_uploader.py,sha256=4-jxFPXtm4j-a3AUsW15GA0xMp_P667ODFHBgaCcytk,8674
|
|
174
174
|
biolib/utils/seq_util.py,sha256=rImaghQGuIqTVWks6b9P2yKuN34uePUYPUFW_Wyoa4A,6737
|
|
175
175
|
biolib/utils/zip/remote_zip.py,sha256=0wErYlxir5921agfFeV1xVjf29l9VNgGQvNlWOlj2Yc,23232
|
|
176
|
-
pybiolib-1.2.
|
|
177
|
-
pybiolib-1.2.
|
|
178
|
-
pybiolib-1.2.
|
|
179
|
-
pybiolib-1.2.
|
|
180
|
-
pybiolib-1.2.
|
|
176
|
+
pybiolib-1.2.1727.dist-info/METADATA,sha256=0nt4eELWDyf5xP9bYrkyUqFqBlug0Tg3FvrDZxLzjyI,1155
|
|
177
|
+
pybiolib-1.2.1727.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
178
|
+
pybiolib-1.2.1727.dist-info/entry_points.txt,sha256=YtPvuWP8ukZ3WwWH5_hQ6UGW6nDi54rcW2_bGQnbG7M,43
|
|
179
|
+
pybiolib-1.2.1727.dist-info/licenses/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
|
|
180
|
+
pybiolib-1.2.1727.dist-info/RECORD,,
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from .app import AppSlimDict
|
|
2
|
-
from .data_record import DataRecordSlimDict
|
|
3
|
-
from .experiment import DeprecatedExperimentDict
|
|
4
|
-
from .typing import Optional, TypedDict
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class ResourceDict(TypedDict):
|
|
8
|
-
uuid: str
|
|
9
|
-
uri: str
|
|
10
|
-
name: str
|
|
11
|
-
created_at: str
|
|
12
|
-
description: str
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ResourceDetailedDict(ResourceDict):
|
|
16
|
-
app: Optional[AppSlimDict]
|
|
17
|
-
data_record: Optional[DataRecordSlimDict]
|
|
18
|
-
experiment: Optional[DeprecatedExperimentDict]
|