Skip to content

Commit a2c2d79

Browse files
authored
Merge pull request #2679 from effigies/fix/pybids_refactor
FIX: Read BIDS config.json under grabbids or layout
2 parents d2abc85 + f09e125 commit a2c2d79

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

nipype/interfaces/io.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@
4242

4343
have_pybids = True
4444
try:
45-
from bids import grabbids as gb
45+
import bids
4646
except ImportError:
4747
have_pybids = False
4848

49+
if have_pybids:
50+
try:
51+
from bids import layout as bidslayout
52+
except ImportError:
53+
from bids import grabbids as bidslayout
54+
4955
try:
5056
import pyxnat
5157
except:
@@ -2810,7 +2816,7 @@ def __init__(self, infields=None, **kwargs):
28102816

28112817
# If infields is empty, use all BIDS entities
28122818
if infields is None and have_pybids:
2813-
bids_config = join(dirname(gb.__file__), 'config', 'bids.json')
2819+
bids_config = join(dirname(bidslayout.__file__), 'config', 'bids.json')
28142820
bids_config = json.load(open(bids_config, 'r'))
28152821
infields = [i['name'] for i in bids_config['entities']]
28162822

@@ -2835,7 +2841,7 @@ def _list_outputs(self):
28352841
exclude = None
28362842
if self.inputs.strict:
28372843
exclude = ['derivatives/', 'code/', 'sourcedata/']
2838-
layout = gb.BIDSLayout(self.inputs.base_dir, exclude=exclude)
2844+
layout = bidslayout.BIDSLayout(self.inputs.base_dir, exclude=exclude)
28392845

28402846
# If infield is not given nm input value, silently ignore
28412847
filters = {}

nipype/interfaces/tests/test_io.py

-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@
7777
have_pybids = True
7878
try:
7979
import bids
80-
from bids import grabbids as gb
8180
filepath = os.path.realpath(os.path.dirname(bids.__file__))
8281
datadir = os.path.realpath(os.path.join(filepath, 'tests/data/'))
8382
except ImportError:

0 commit comments

Comments
 (0)