From f09e12572279bb5b9152cd0788bf22bb173e439c Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Fri, 10 Aug 2018 15:11:55 -0400 Subject: [PATCH] FIX: Pybids grabbids API is going away --- nipype/interfaces/io.py | 12 +++++++++--- nipype/interfaces/tests/test_io.py | 1 - 2 files changed, 9 insertions(+), 4 deletions(-) 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: