pybiolib 1.2.366__py3-none-any.whl → 1.2.408__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 +13 -3
- biolib/biolib_errors.py +9 -0
- {pybiolib-1.2.366.dist-info → pybiolib-1.2.408.dist-info}/METADATA +1 -1
- {pybiolib-1.2.366.dist-info → pybiolib-1.2.408.dist-info}/RECORD +7 -7
- {pybiolib-1.2.366.dist-info → pybiolib-1.2.408.dist-info}/LICENSE +0 -0
- {pybiolib-1.2.366.dist-info → pybiolib-1.2.408.dist-info}/WHEEL +0 -0
- {pybiolib-1.2.366.dist-info → pybiolib-1.2.408.dist-info}/entry_points.txt +0 -0
biolib/app/app.py
CHANGED
@@ -11,7 +11,7 @@ from biolib.biolib_api_client.app_types import App, AppVersion
|
|
11
11
|
from biolib.biolib_api_client.biolib_app_api import BiolibAppApi
|
12
12
|
from biolib.biolib_api_client.biolib_job_api import BiolibJobApi
|
13
13
|
from biolib.biolib_binary_format import ModuleInput
|
14
|
-
from biolib.biolib_errors import BioLibError
|
14
|
+
from biolib.biolib_errors import BioLibError, JobResultNonZeroExitCodeError
|
15
15
|
from biolib.biolib_logging import logger
|
16
16
|
from biolib.compute_node.job_worker.job_worker import JobWorker
|
17
17
|
from biolib.experiments.experiment import Experiment
|
@@ -59,10 +59,15 @@ class BioLibApp:
|
|
59
59
|
machine_count: Optional[int] = None,
|
60
60
|
experiment: Optional[str] = None,
|
61
61
|
temporary_client_secrets: Optional[Dict[str, str]] = None,
|
62
|
+
check: bool = False,
|
63
|
+
stream_logs: bool = False,
|
62
64
|
) -> Job:
|
63
65
|
if experiment_id and experiment:
|
64
66
|
raise ValueError('Only one of experiment_id and experiment can be specified')
|
65
67
|
|
68
|
+
if check and not blocking:
|
69
|
+
raise ValueError('The argument "check" cannot be True when blocking is False')
|
70
|
+
|
66
71
|
if not experiment_id:
|
67
72
|
experiment_instance = Experiment(experiment) if experiment else Experiment.get_experiment_in_context()
|
68
73
|
experiment_id = experiment_instance.uuid if experiment_instance else None
|
@@ -100,10 +105,15 @@ class BioLibApp:
|
|
100
105
|
utils.STREAM_STDOUT = True
|
101
106
|
|
102
107
|
enable_print = bool(
|
103
|
-
utils.STREAM_STDOUT
|
108
|
+
(utils.STREAM_STDOUT or stream_logs)
|
104
109
|
and (self._app_version.get('main_output_file') or self._app_version.get('stdout_render_type') == 'text')
|
105
110
|
)
|
106
|
-
job._stream_logs(enable_print=enable_print)
|
111
|
+
job._stream_logs(enable_print=enable_print) # pylint: disable=protected-access
|
112
|
+
|
113
|
+
if check:
|
114
|
+
exit_code = job.get_exit_code()
|
115
|
+
if exit_code != 0:
|
116
|
+
raise JobResultNonZeroExitCodeError(exit_code)
|
107
117
|
|
108
118
|
return job
|
109
119
|
|
biolib/biolib_errors.py
CHANGED
@@ -43,3 +43,12 @@ class JobResultNotFound(JobResultError):
|
|
43
43
|
|
44
44
|
class JobResultPermissionError(JobResultError):
|
45
45
|
pass
|
46
|
+
|
47
|
+
|
48
|
+
class JobResultNonZeroExitCodeError(JobResultError):
|
49
|
+
"""Raised when an app returns a non-zero exit code and check=True."""
|
50
|
+
def __init__(self, exit_code: int, message: Optional[str] = None):
|
51
|
+
self.exit_code = exit_code
|
52
|
+
super().__init__(
|
53
|
+
message or f'App returned non-zero exit code: {exit_code}'
|
54
|
+
)
|
@@ -29,7 +29,7 @@ biolib/_runtime/runtime.py,sha256=bZQ0m39R9jOBVAtlyvzDnOobKueOAQUCwMUZjDQnO7E,44
|
|
29
29
|
biolib/api/__init__.py,sha256=mQ4u8FijqyLzjYMezMUUbbBGNB3iFmkNdjXnWPZ7Jlw,138
|
30
30
|
biolib/api/client.py,sha256=EN3lDbbgWxw3aPDe8W5XIU6WkMfOHW7Dmsz-R6QqxAw,4176
|
31
31
|
biolib/app/__init__.py,sha256=cdPtcfb_U-bxb9iSL4fCEq2rpD9OjkyY4W-Zw60B0LI,37
|
32
|
-
biolib/app/app.py,sha256=
|
32
|
+
biolib/app/app.py,sha256=fWBIz9WXw4_dFPhFwdEpMIMG5-evt0s6oP937tSRsLw,9273
|
33
33
|
biolib/app/search_apps.py,sha256=K4a41f5XIWth2BWI7OffASgIsD0ko8elCax8YL2igaY,1470
|
34
34
|
biolib/biolib_api_client/__init__.py,sha256=E5EMa19wJoblwSdQPYrxc_BtIeRsAuO0L_jQweWw-Yk,182
|
35
35
|
biolib/biolib_api_client/api_client.py,sha256=ohvbWbpresxLHFGPkvXACfmiTYsBk8RBx5XsBbLYg_M,7546
|
@@ -55,7 +55,7 @@ biolib/biolib_binary_format/system_status_update.py,sha256=aOELuQ0k-GtpaZTUxYd0G
|
|
55
55
|
biolib/biolib_binary_format/utils.py,sha256=jq31QEShs7TSrSKZBr8jif-bJAwVzQrqVxmymL6crpU,5453
|
56
56
|
biolib/biolib_docker_client/__init__.py,sha256=aBfA6mtWSI5dBEfNNMD6bIZzCPloW4ghKm0wqQiljdo,1481
|
57
57
|
biolib/biolib_download_container.py,sha256=8TmBV8iv3bCvkNlHa1SSsc4zl0wX_eaxhfnW5rvFIh8,1779
|
58
|
-
biolib/biolib_errors.py,sha256=
|
58
|
+
biolib/biolib_errors.py,sha256=eyQolC4oGi350BDEMOd-gAHYVqo2L2lYgv6c4ZdXPjQ,1184
|
59
59
|
biolib/biolib_logging.py,sha256=S2y6fk7jjxZQMN2BtKkHBb4JbVQQSSU97T7ep4P_QCE,2855
|
60
60
|
biolib/cli/__init__.py,sha256=0v3c_J-U0k46c5ZWeQjLG_kTaKDJm81LBxQpDO2B_aI,1286
|
61
61
|
biolib/cli/auth.py,sha256=rpWGmXs6Fz6CGrO9K8ibPRszOdXG78Vig_boKaVCD9A,2082
|
@@ -118,8 +118,8 @@ biolib/utils/cache_state.py,sha256=u256F37QSRIVwqKlbnCyzAX4EMI-kl6Dwu6qwj-Qmag,3
|
|
118
118
|
biolib/utils/multipart_uploader.py,sha256=XvGP1I8tQuKhAH-QugPRoEsCi9qvbRk-DVBs5PNwwJo,8452
|
119
119
|
biolib/utils/seq_util.py,sha256=Ozk0blGtPur_D9MwShD02r_mphyQmgZkx-lOHOwnlIM,6730
|
120
120
|
biolib/utils/zip/remote_zip.py,sha256=0wErYlxir5921agfFeV1xVjf29l9VNgGQvNlWOlj2Yc,23232
|
121
|
-
pybiolib-1.2.
|
122
|
-
pybiolib-1.2.
|
123
|
-
pybiolib-1.2.
|
124
|
-
pybiolib-1.2.
|
125
|
-
pybiolib-1.2.
|
121
|
+
pybiolib-1.2.408.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
|
122
|
+
pybiolib-1.2.408.dist-info/METADATA,sha256=04U3f4zWFYOFZCw_WBmpELSuomhQn0omc300cRMd9cQ,1570
|
123
|
+
pybiolib-1.2.408.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
124
|
+
pybiolib-1.2.408.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
|
125
|
+
pybiolib-1.2.408.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|