Skip to content

Commit 31c772d

Browse files
committed
rf: Cache layout for precomputed derivatives
1 parent bdc3564 commit 31c772d

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

fmriprep/utils/bids.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import os
2929
import sys
3030
from collections import defaultdict
31+
from functools import cache
3132
from pathlib import Path
3233

3334
from bids.layout import BIDSLayout
@@ -38,6 +39,15 @@
3839
from ..data import load as load_data
3940

4041

42+
@cache
43+
def _get_layout(derivatives_dir: Path) -> BIDSLayout:
44+
import niworkflows.data
45+
46+
return BIDSLayout(
47+
derivatives_dir, config=[niworkflows.data.load('nipreps.json')], validate=False
48+
)
49+
50+
4151
def collect_derivatives(
4252
derivatives_dir: Path,
4353
entities: dict,
@@ -57,8 +67,7 @@ def collect_derivatives(
5767
patterns = _patterns
5868

5969
derivs_cache = defaultdict(list, {})
60-
layout = BIDSLayout(derivatives_dir, config=['bids', 'derivatives'], validate=False)
61-
derivatives_dir = Path(derivatives_dir)
70+
layout = _get_layout(derivatives_dir)
6271

6372
# search for both boldrefs
6473
for k, q in spec['baseline'].items():

0 commit comments

Comments
 (0)