pybiolib 1.2.366__py3-none-any.whl → 1.2.406__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 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,14 @@ 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,
62
63
  ) -> Job:
63
64
  if experiment_id and experiment:
64
65
  raise ValueError('Only one of experiment_id and experiment can be specified')
65
66
 
67
+ if check and not blocking:
68
+ raise ValueError('The argument "check" cannot be True when blocking is False')
69
+
66
70
  if not experiment_id:
67
71
  experiment_instance = Experiment(experiment) if experiment else Experiment.get_experiment_in_context()
68
72
  experiment_id = experiment_instance.uuid if experiment_instance else None
@@ -105,6 +109,11 @@ class BioLibApp:
105
109
  )
106
110
  job._stream_logs(enable_print=enable_print) # pylint: disable=protected-access
107
111
 
112
+ if check:
113
+ exit_code = job.get_exit_code()
114
+ if exit_code != 0:
115
+ raise JobResultNonZeroExitCodeError(exit_code)
116
+
108
117
  return job
109
118
 
110
119
  def exec(self, args=None, stdin=None, files=None, machine=''):
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
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pybiolib
3
- Version: 1.2.366
3
+ Version: 1.2.406
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -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=mJafDLtnoX66egHF94NrUhmhzjpFzvRj2STh0RVGJCY,8862
32
+ biolib/app/app.py,sha256=qhPa-nkIYwq1YUIZyRvs_gzNRJiRpHnOFxIvktDp6Jg,9222
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=xtdo3ybqnc0jhd959kVmBczFdBczrFMr8cZyd4hjKLk,842
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.366.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
122
- pybiolib-1.2.366.dist-info/METADATA,sha256=0VkWxDelNbXapivceuFPSl1TiSZa1myr6plhWi7HNRQ,1570
123
- pybiolib-1.2.366.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
124
- pybiolib-1.2.366.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
125
- pybiolib-1.2.366.dist-info/RECORD,,
121
+ pybiolib-1.2.406.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
122
+ pybiolib-1.2.406.dist-info/METADATA,sha256=RMsKTpxadkRTJtaOOCrJ8pg8vdwOyQGegrOWGX96SEs,1570
123
+ pybiolib-1.2.406.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
124
+ pybiolib-1.2.406.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
125
+ pybiolib-1.2.406.dist-info/RECORD,,