Skip to content
Snippets Groups Projects
Commit 3ebae6b1 authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

RF: when cmdonly is used with a wrapper function, assertions are disabled

parent c63dc780
No related branches found
No related tags found
No related merge requests found
...@@ -39,14 +39,17 @@ _DISABLE_ASSERTIONS = False ...@@ -39,14 +39,17 @@ _DISABLE_ASSERTIONS = False
@contextlib.contextmanager @contextlib.contextmanager
def disabled(): def disabled(disable=True):
"""Context manager which allows assertion checks to be temporarily """Context manager which allows assertion checks to be temporarily
disabled. disabled.
:arg disable: Set to ``True`` (the default) to disable assertions,
or ``False`` to enable them.
""" """
global _DISABLE_ASSERTIONS global _DISABLE_ASSERTIONS
oldval = _DISABLE_ASSERTIONS oldval = _DISABLE_ASSERTIONS
_DISABLE_ASSERTIONS = True _DISABLE_ASSERTIONS = disable
try: try:
yield yield
......
...@@ -108,10 +108,11 @@ import six ...@@ -108,10 +108,11 @@ import six
import nibabel as nib import nibabel as nib
import numpy as np import numpy as np
import fsl.utils.run as run import fsl.utils.run as run
import fsl.utils.path as fslpath import fsl.utils.assertions as asrt
import fsl.utils.tempdir as tempdir import fsl.utils.path as fslpath
import fsl.data.image as fslimage import fsl.utils.tempdir as tempdir
import fsl.data.image as fslimage
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
...@@ -185,7 +186,14 @@ def genxwrapper(func, runner): ...@@ -185,7 +186,14 @@ def genxwrapper(func, runner):
submit = kwargs.pop('submit', None) submit = kwargs.pop('submit', None)
cmdonly = kwargs.pop('cmdonly', False) cmdonly = kwargs.pop('cmdonly', False)
log = kwargs.pop('log', {'tee' : True}) log = kwargs.pop('log', {'tee' : True})
cmd = func(*args, **kwargs)
# many wrapper functions use fsl.utils.assertions
# statements to check that input arguments are
# valid. Disable these if the cmdonly argument is
# being used to generate a command without running
# it.
with asrt.disabled(cmdonly):
cmd = func(*args, **kwargs)
return runner(cmd, return runner(cmd,
stderr=stderr, stderr=stderr,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment