Commit 3ebae6b1 authored by Paul McCarthy's avatar Paul McCarthy 🚵
Browse files

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

parent c63dc780
......@@ -39,14 +39,17 @@ _DISABLE_ASSERTIONS = False
@contextlib.contextmanager
def disabled():
def disabled(disable=True):
"""Context manager which allows assertion checks to be temporarily
disabled.
:arg disable: Set to ``True`` (the default) to disable assertions,
or ``False`` to enable them.
"""
global _DISABLE_ASSERTIONS
oldval = _DISABLE_ASSERTIONS
_DISABLE_ASSERTIONS = True
_DISABLE_ASSERTIONS = disable
try:
yield
......
......@@ -108,10 +108,11 @@ import six
import nibabel as nib
import numpy as np
import fsl.utils.run as run
import fsl.utils.path as fslpath
import fsl.utils.tempdir as tempdir
import fsl.data.image as fslimage
import fsl.utils.run as run
import fsl.utils.assertions as asrt
import fsl.utils.path as fslpath
import fsl.utils.tempdir as tempdir
import fsl.data.image as fslimage
log = logging.getLogger(__name__)
......@@ -185,7 +186,14 @@ def genxwrapper(func, runner):
submit = kwargs.pop('submit', None)
cmdonly = kwargs.pop('cmdonly', False)
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,
stderr=stderr,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment