Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""Utilities for calling command-line tools as Python functions."""
4__all__ = ('handling_system_exit',)
9 """Catch any :obj:`SystemExit` and re-raise it as :obj:`RuntimeError`.
11 Some Celery tasks in this package call main functions of command-line tools
12 from other packages. Those main functions may try to exit the Python
13 interpreter (if, for example, the command-line arguments are not
16 Catch any :obj:`SystemExit` exception. If the exit code is zero (signifying
17 a normal exit status), then ignore the exception. If the exit code is
18 nonzero (signifying an error exit status), then re-raise it as a
19 :obj:`RuntimeError` so that the error is reported but the Celery worker is
20 not killed.
24 except SystemExit as e:
25 if e.code != 0:
26 raise RuntimeError(
27 'Command-line tool tried to exit with nonzero status') from e