diff --git a/nipype/interfaces/io.py b/nipype/interfaces/io.py index 5a806a67be..627d9ca7ac 100644 --- a/nipype/interfaces/io.py +++ b/nipype/interfaces/io.py @@ -42,10 +42,16 @@ have_pybids = True try: - from bids import grabbids as gb + import bids except ImportError: have_pybids = False +if have_pybids: + try: + from bids import layout as bidslayout + except ImportError: + from bids import grabbids as bidslayout + try: import pyxnat except: @@ -2810,7 +2816,7 @@ def __init__(self, infields=None, **kwargs): # If infields is empty, use all BIDS entities if infields is None and have_pybids: - bids_config = join(dirname(gb.__file__), 'config', 'bids.json') + bids_config = join(dirname(bidslayout.__file__), 'config', 'bids.json') bids_config = json.load(open(bids_config, 'r')) infields = [i['name'] for i in bids_config['entities']] @@ -2835,7 +2841,7 @@ def _list_outputs(self): exclude = None if self.inputs.strict: exclude = ['derivatives/', 'code/', 'sourcedata/'] - layout = gb.BIDSLayout(self.inputs.base_dir, exclude=exclude) + layout = bidslayout.BIDSLayout(self.inputs.base_dir, exclude=exclude) # If infield is not given nm input value, silently ignore filters = {} diff --git a/nipype/interfaces/tests/test_io.py b/nipype/interfaces/tests/test_io.py index abff491f36..c81e6f8e06 100644 --- a/nipype/interfaces/tests/test_io.py +++ b/nipype/interfaces/tests/test_io.py @@ -77,7 +77,6 @@ have_pybids = True try: import bids - from bids import grabbids as gb filepath = os.path.realpath(os.path.dirname(bids.__file__)) datadir = os.path.realpath(os.path.join(filepath, 'tests/data/')) except ImportError: