From cb88e459800f68ae1f620050ed95c299d07215c9 Mon Sep 17 00:00:00 2001 From: basile Date: Fri, 5 Jun 2020 16:30:16 -0400 Subject: [PATCH 1/5] bugfix for dumping meaningfull bids-filters null values with toml --- fmriprep/cli/parser.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fmriprep/cli/parser.py b/fmriprep/cli/parser.py index a30eeafc6..4f5ffc0c4 100644 --- a/fmriprep/cli/parser.py +++ b/fmriprep/cli/parser.py @@ -48,7 +48,8 @@ def _drop_sub(value): def _filter_pybids_none_any(dct): import bids - return {k: bids.layout.Query.ANY if v == "*" else v + return {k: bids.layout.Query.NONE if v is None else + (bids.layout.Query.ANY if v == "*" else v) for k, v in dct.items()} def _bids_filter(value): From f6a2d4b738f8b9f0e76b48d199b9691e9c752b65 Mon Sep 17 00:00:00 2001 From: basile Date: Mon, 8 Jun 2020 10:39:31 -0400 Subject: [PATCH 2/5] unserialize pybids Query enum values --- fmriprep/config.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fmriprep/config.py b/fmriprep/config.py index a614060cc..01441e5f0 100644 --- a/fmriprep/config.py +++ b/fmriprep/config.py @@ -410,6 +410,13 @@ def init(cls): ignore=("code", "stimuli", "sourcedata", "models", "derivatives", re.compile(r'^\.'))) cls.layout = cls._layout + if cls.bids_filters: + from bids.layout import Query + # unserialize pybids Query enum values + for acq, filters in cls.bids_filters.items(): + cls.bids_filters[acq] = { + k: getattr(Query, v[7:-4]) if 'Query' in v else v + for k, v in filters.items()} # These variables are not necessary anymore From 86ca4d8a2d2a2bc6767b59ac12abd6c17c0f20ef Mon Sep 17 00:00:00 2001 From: basile Date: Tue, 9 Jun 2020 09:23:41 -0400 Subject: [PATCH 3/5] fix bids-filters unserialize --- fmriprep/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fmriprep/config.py b/fmriprep/config.py index 01441e5f0..fe0ce7326 100644 --- a/fmriprep/config.py +++ b/fmriprep/config.py @@ -415,7 +415,7 @@ def init(cls): # unserialize pybids Query enum values for acq, filters in cls.bids_filters.items(): cls.bids_filters[acq] = { - k: getattr(Query, v[7:-4]) if 'Query' in v else v + k: getattr(Query, v[7:-4]) if not isinstance(v, Query) and 'Query' in v else v for k, v in filters.items()} From d2f7c9abf95579c9ceda93f67c0a49cc192d17e3 Mon Sep 17 00:00:00 2001 From: basile Date: Thu, 18 Jun 2020 09:16:00 -0400 Subject: [PATCH 4/5] add exemplar bids filter to config.toml --- fmriprep/data/tests/config.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fmriprep/data/tests/config.toml b/fmriprep/data/tests/config.toml index d02b31f38..7c525cda6 100644 --- a/fmriprep/data/tests/config.toml +++ b/fmriprep/data/tests/config.toml @@ -61,3 +61,9 @@ stop_on_first_crash = false [nipype.plugin_args] maxtasksperchild = 1 raise_insufficient = false + +[execution.bids_filters.t1w] +reconstruction = "" + +[execution.bids_filters.t2w] +reconstruction = "" From b562327aa88828af44759327168e9ee9c8878420 Mon Sep 17 00:00:00 2001 From: Mathias Goncalves Date: Wed, 1 Jul 2020 09:49:28 -0400 Subject: [PATCH 5/5] Update fmriprep/cli/parser.py Co-authored-by: Oscar Esteban --- fmriprep/cli/parser.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fmriprep/cli/parser.py b/fmriprep/cli/parser.py index 4f5ffc0c4..231ee3138 100644 --- a/fmriprep/cli/parser.py +++ b/fmriprep/cli/parser.py @@ -48,9 +48,12 @@ def _drop_sub(value): def _filter_pybids_none_any(dct): import bids - return {k: bids.layout.Query.NONE if v is None else - (bids.layout.Query.ANY if v == "*" else v) - for k, v in dct.items()} + return { + k: bids.layout.Query.NONE + if v is None + else (bids.layout.Query.ANY if v == "*" else v) + for k, v in dct.items() + } def _bids_filter(value): from json import loads