pybiolib 1.1.2097__py3-none-any.whl → 1.1.2112__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.
- biolib/app/app.py +2 -0
- biolib/biolib_api_client/biolib_job_api.py +6 -0
- biolib/compute_node/job_worker/executors/docker_executor.py +8 -3
- biolib/jobs/job.py +3 -0
- {pybiolib-1.1.2097.dist-info → pybiolib-1.1.2112.dist-info}/METADATA +1 -1
- {pybiolib-1.1.2097.dist-info → pybiolib-1.1.2112.dist-info}/RECORD +9 -9
- {pybiolib-1.1.2097.dist-info → pybiolib-1.1.2112.dist-info}/LICENSE +0 -0
- {pybiolib-1.1.2097.dist-info → pybiolib-1.1.2112.dist-info}/WHEEL +0 -0
- {pybiolib-1.1.2097.dist-info → pybiolib-1.1.2112.dist-info}/entry_points.txt +0 -0
biolib/app/app.py
CHANGED
@@ -56,6 +56,7 @@ class BioLibApp:
|
|
56
56
|
result_prefix: Optional[str] = None,
|
57
57
|
timeout: Optional[int] = None,
|
58
58
|
notify: bool = False,
|
59
|
+
machine_count: Optional[int] = None,
|
59
60
|
) -> Job:
|
60
61
|
if not experiment_id:
|
61
62
|
experiment = Experiment.get_experiment_in_context()
|
@@ -85,6 +86,7 @@ class BioLibApp:
|
|
85
86
|
override_command=override_command,
|
86
87
|
result_prefix=result_prefix,
|
87
88
|
timeout=timeout,
|
89
|
+
requested_machine_count=machine_count,
|
88
90
|
)
|
89
91
|
if blocking:
|
90
92
|
# TODO: Deprecate utils.STREAM_STDOUT and always stream logs by simply calling job.stream_logs()
|
@@ -46,6 +46,7 @@ class BiolibJobApi:
|
|
46
46
|
experiment_uuid: Optional[str] = None,
|
47
47
|
timeout: Optional[int] = None,
|
48
48
|
notify: bool = False,
|
49
|
+
requested_machine_count: Optional[int] = None,
|
49
50
|
):
|
50
51
|
data = {
|
51
52
|
'app_version_id': app_version_id,
|
@@ -73,6 +74,9 @@ class BiolibJobApi:
|
|
73
74
|
'requested_machine': machine
|
74
75
|
})
|
75
76
|
|
77
|
+
if requested_machine_count:
|
78
|
+
data.update({'requested_machine_count': requested_machine_count})
|
79
|
+
|
76
80
|
if experiment_uuid:
|
77
81
|
data['experiment_uuid'] = experiment_uuid
|
78
82
|
|
@@ -156,6 +160,7 @@ class BiolibJobApi:
|
|
156
160
|
caller_job_uuid: Optional[str] = None,
|
157
161
|
requested_timeout_seconds: Optional[int] = None,
|
158
162
|
notify: bool = False,
|
163
|
+
requested_machine_count: Optional[int] = None,
|
159
164
|
) -> Dict:
|
160
165
|
job_dict: Dict = biolib.api.client.post(
|
161
166
|
path='/jobs/create_job_with_data/',
|
@@ -171,6 +176,7 @@ class BiolibJobApi:
|
|
171
176
|
'client-version': BIOLIB_PACKAGE_VERSION,
|
172
177
|
'experiment-uuid': experiment_uuid,
|
173
178
|
'requested-machine': requested_machine,
|
179
|
+
'requested-machine-count': str(requested_machine_count) if requested_machine_count else None,
|
174
180
|
'result-name-prefix': result_name_prefix,
|
175
181
|
'requested-timeout-seconds': str(requested_timeout_seconds) if requested_timeout_seconds else None,
|
176
182
|
'notify': 'true' if notify else 'false',
|
@@ -270,6 +270,8 @@ class DockerExecutor:
|
|
270
270
|
# TODO: type this method
|
271
271
|
def _initialize_docker_container(self, module_input):
|
272
272
|
try:
|
273
|
+
job_uuid = self._options['job']['public_id']
|
274
|
+
logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container...')
|
273
275
|
module = self._options['module']
|
274
276
|
logger.debug(f"Initializing docker container with command: {module['command']}")
|
275
277
|
|
@@ -314,6 +316,7 @@ class DockerExecutor:
|
|
314
316
|
}
|
315
317
|
)
|
316
318
|
|
319
|
+
logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container. Getting IPs for proxies...')
|
317
320
|
for proxy in self._options['remote_host_proxies']:
|
318
321
|
proxy_ip = proxy.get_ip_address_on_network(internal_network)
|
319
322
|
if proxy.is_app_caller_proxy:
|
@@ -332,6 +335,7 @@ class DockerExecutor:
|
|
332
335
|
else:
|
333
336
|
extra_hosts[proxy.hostname] = proxy_ip
|
334
337
|
|
338
|
+
logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container. Constructing container args...')
|
335
339
|
create_container_args = {
|
336
340
|
'environment': environment_vars,
|
337
341
|
'extra_hosts': extra_hosts,
|
@@ -368,9 +372,10 @@ class DockerExecutor:
|
|
368
372
|
if docker_runtime is not None:
|
369
373
|
create_container_args['runtime'] = docker_runtime
|
370
374
|
|
371
|
-
|
372
|
-
|
373
|
-
|
375
|
+
docker_client = BiolibDockerClient.get_docker_client()
|
376
|
+
logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container. Creating container...')
|
377
|
+
self._docker_container = docker_client.containers.create(**create_container_args)
|
378
|
+
logger_no_user_data.debug(f'Job "{job_uuid}" finished initializing Docker container.')
|
374
379
|
except Exception as exception:
|
375
380
|
raise ComputeProcessException(
|
376
381
|
exception, SystemExceptionCodes.FAILED_TO_START_COMPUTE_CONTAINER.value, self._send_system_exception
|
biolib/jobs/job.py
CHANGED
@@ -412,6 +412,7 @@ class Job:
|
|
412
412
|
result_prefix: Optional[str] = None,
|
413
413
|
timeout: Optional[int] = None,
|
414
414
|
notify: bool = False,
|
415
|
+
requested_machine_count: Optional[int] = None,
|
415
416
|
) -> 'Job':
|
416
417
|
if len(module_input_serialized) < 500_000:
|
417
418
|
_job_dict = BiolibJobApi.create_job_with_data(
|
@@ -424,6 +425,7 @@ class Job:
|
|
424
425
|
requested_machine=machine,
|
425
426
|
requested_timeout_seconds=timeout,
|
426
427
|
result_name_prefix=result_prefix,
|
428
|
+
requested_machine_count=requested_machine_count,
|
427
429
|
)
|
428
430
|
return Job(cast(JobDict, _job_dict))
|
429
431
|
|
@@ -435,6 +437,7 @@ class Job:
|
|
435
437
|
notify=notify,
|
436
438
|
override_command=override_command,
|
437
439
|
timeout=timeout,
|
440
|
+
requested_machine_count=requested_machine_count,
|
438
441
|
)
|
439
442
|
JobStorage.upload_module_input(job=job_dict, module_input_serialized=module_input_serialized)
|
440
443
|
cloud_job = BiolibJobApi.create_cloud_job(job_id=job_dict['public_id'], result_name_prefix=result_prefix)
|
@@ -21,14 +21,14 @@ biolib/_runtime/runtime.py,sha256=zy9HrE4X5hBqm8doUHkckyflquSBDSXV3REhT2MQGas,27
|
|
21
21
|
biolib/api/__init__.py,sha256=mQ4u8FijqyLzjYMezMUUbbBGNB3iFmkNdjXnWPZ7Jlw,138
|
22
22
|
biolib/api/client.py,sha256=9MD1qI52BnRC_QSydFGjyFquwFw0R9dkDfUrjUouuHQ,3490
|
23
23
|
biolib/app/__init__.py,sha256=cdPtcfb_U-bxb9iSL4fCEq2rpD9OjkyY4W-Zw60B0LI,37
|
24
|
-
biolib/app/app.py,sha256=
|
24
|
+
biolib/app/app.py,sha256=P2RwaDAskUHzlciuTJUroqUocRwoyOLT6YbgMyCRRDI,8484
|
25
25
|
biolib/app/search_apps.py,sha256=K4a41f5XIWth2BWI7OffASgIsD0ko8elCax8YL2igaY,1470
|
26
26
|
biolib/biolib_api_client/__init__.py,sha256=E5EMa19wJoblwSdQPYrxc_BtIeRsAuO0L_jQweWw-Yk,182
|
27
27
|
biolib/biolib_api_client/api_client.py,sha256=krlSRmmAwtdMMyN1XzQhh1gihB1ERSIVslWQ-dqI1yU,7188
|
28
28
|
biolib/biolib_api_client/app_types.py,sha256=FxSr4UqfnMhLe34p8bm02wsC3g1Jz8iaing5tRKDOQI,2442
|
29
29
|
biolib/biolib_api_client/auth.py,sha256=kjm0ZHnH3I8so3su2sZbBxNHYp-ZUdrZ5lwQ0K36RSw,949
|
30
30
|
biolib/biolib_api_client/biolib_app_api.py,sha256=DndlVxrNTes6DOaWyMINLGZQCRMWVvR7gwt5HVlyf5Y,4240
|
31
|
-
biolib/biolib_api_client/biolib_job_api.py,sha256=
|
31
|
+
biolib/biolib_api_client/biolib_job_api.py,sha256=7bKfav3-12ewXkEUoLdCmbWdebW8148kxfGJW9SsXZI,7125
|
32
32
|
biolib/biolib_api_client/common_types.py,sha256=RH-1KNHqUF-EkTpfPOSTt5Mq1GPdfju_cqXDesscO1I,123
|
33
33
|
biolib/biolib_api_client/job_types.py,sha256=Dl4NhU2xpgpXV-7YIoDf6WL63SLR5bni55OX8x5539M,1300
|
34
34
|
biolib/biolib_api_client/lfs_types.py,sha256=joZWP6-sa5_Ug_6xIp5fHAgEo_bqLE3rbleQocZtDcg,339
|
@@ -68,7 +68,7 @@ biolib/compute_node/job_worker/cache_state.py,sha256=MwjSRzcJJ_4jybqvBL4xdgnDYSI
|
|
68
68
|
biolib/compute_node/job_worker/cache_types.py,sha256=ajpLy8i09QeQS9dEqTn3T6NVNMY_YsHQkSD5nvIHccQ,818
|
69
69
|
biolib/compute_node/job_worker/docker_image_cache.py,sha256=ansHIkJIq_EMW1nZNlW-RRLVVeKWTbzNICYaOHpKiRE,7460
|
70
70
|
biolib/compute_node/job_worker/executors/__init__.py,sha256=bW6t1qi3PZTlHM4quaTLa8EI4ALTCk83cqcVJfJfJfE,145
|
71
|
-
biolib/compute_node/job_worker/executors/docker_executor.py,sha256=
|
71
|
+
biolib/compute_node/job_worker/executors/docker_executor.py,sha256=2H7GooL0oAifPcbie0unatB4fRoHyqbsr6S91uagc_g,27952
|
72
72
|
biolib/compute_node/job_worker/executors/docker_types.py,sha256=VhsU1DKtJjx_BbCkVmiPZPH4ROiL1ygW1Y_s1Kbpa2o,216
|
73
73
|
biolib/compute_node/job_worker/executors/tars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
74
|
biolib/compute_node/job_worker/executors/types.py,sha256=yP5gG39hr-DLnw9bOE--VHi-1arDbIYiGuV1rlTbbHI,1466
|
@@ -94,7 +94,7 @@ biolib/experiments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
94
94
|
biolib/experiments/experiment.py,sha256=IMjnokTc9ZEKUjpsM_JnFolh9HsLbjXus_xKBb2ypJ8,7219
|
95
95
|
biolib/experiments/types.py,sha256=n9GxdFA7cLMfHvLLqLmZzX31ELeSSkMXFoEEdFsdWGY,171
|
96
96
|
biolib/jobs/__init__.py,sha256=aIb2H2DHjQbM2Bs-dysFijhwFcL58Blp0Co0gimED3w,32
|
97
|
-
biolib/jobs/job.py,sha256=
|
97
|
+
biolib/jobs/job.py,sha256=aJck0zl6QTE-70pkHY9tKDctchdJyA-YaCIozrlqGkA,19065
|
98
98
|
biolib/jobs/job_result.py,sha256=rALHiKYNaC9lHi_JJqBob1RubzNLwG9Z386kwRJjd2M,5885
|
99
99
|
biolib/jobs/types.py,sha256=qhadtH2KDC2WUOOqPiwke0YgtQY4FtuB71Stekq1k48,970
|
100
100
|
biolib/runtime/__init__.py,sha256=Fg2ZIAmUegurLKagpBNfRgLcOwR2VZSmXQpb-ryRwI0,505
|
@@ -111,8 +111,8 @@ biolib/utils/cache_state.py,sha256=u256F37QSRIVwqKlbnCyzAX4EMI-kl6Dwu6qwj-Qmag,3
|
|
111
111
|
biolib/utils/multipart_uploader.py,sha256=XvGP1I8tQuKhAH-QugPRoEsCi9qvbRk-DVBs5PNwwJo,8452
|
112
112
|
biolib/utils/seq_util.py,sha256=jC5WhH63FTD7SLFJbxQGA2hOt9NTwq9zHl_BEec1Z0c,4907
|
113
113
|
biolib/utils/zip/remote_zip.py,sha256=0wErYlxir5921agfFeV1xVjf29l9VNgGQvNlWOlj2Yc,23232
|
114
|
-
pybiolib-1.1.
|
115
|
-
pybiolib-1.1.
|
116
|
-
pybiolib-1.1.
|
117
|
-
pybiolib-1.1.
|
118
|
-
pybiolib-1.1.
|
114
|
+
pybiolib-1.1.2112.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
|
115
|
+
pybiolib-1.1.2112.dist-info/METADATA,sha256=zFj4CxOhsy98RLU_W0SYBRreB85CsOhtcAg6UZ_Af4I,1508
|
116
|
+
pybiolib-1.1.2112.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
117
|
+
pybiolib-1.1.2112.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
|
118
|
+
pybiolib-1.1.2112.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|