File tree Expand file tree Collapse file tree 2 files changed +29
-9
lines changed Expand file tree Collapse file tree 2 files changed +29
-9
lines changed Original file line number Diff line number Diff line change @@ -90,13 +90,24 @@ def _to_gb(value):
90
90
def _drop_sub (value ):
91
91
return value [4 :] if value .startswith ("sub-" ) else value
92
92
93
- def _filter_pybids_none_any ( dct ):
93
+ def _process_value ( value ):
94
94
import bids
95
95
96
- return {
97
- k : bids .layout .Query .NONE if v is None else (bids .layout .Query .ANY if v == "*" else v )
98
- for k , v in dct .items ()
99
- }
96
+ if value is None :
97
+ return bids .layout .Query .NONE
98
+ elif value == "*" :
99
+ return bids .layout .Query .ANY
100
+ else :
101
+ return value
102
+
103
+ def _filter_pybids_none_any (dct ):
104
+ d = {}
105
+ for k , v in dct .items ():
106
+ if isinstance (v , list ):
107
+ d [k ] = [_process_value (val ) for val in v ]
108
+ else :
109
+ d [k ] = _process_value (v )
110
+ return d
100
111
101
112
def _bids_filter (value , parser ):
102
113
from json import JSONDecodeError , loads
Original file line number Diff line number Diff line change @@ -493,12 +493,21 @@ def init(cls):
493
493
if cls .bids_filters :
494
494
from bids .layout import Query
495
495
496
+ def _process_value (value ):
497
+ """Convert string with "Query" in it to Query object."""
498
+ if isinstance (value , list ):
499
+ return [_process_value (val ) for val in value ]
500
+ else :
501
+ return (
502
+ getattr (Query , value [7 :- 4 ])
503
+ if not isinstance (value , Query ) and "Query" in value
504
+ else value
505
+ )
506
+
496
507
# unserialize pybids Query enum values
497
508
for acq , filters in cls .bids_filters .items ():
498
- cls .bids_filters [acq ] = {
499
- k : getattr (Query , v [7 :- 4 ]) if not isinstance (v , Query ) and "Query" in v else v
500
- for k , v in filters .items ()
501
- }
509
+ for k , v in filters .items ():
510
+ cls .bids_filters [acq ][k ] = _process_value (v )
502
511
503
512
if "all" in cls .debug :
504
513
cls .debug = list (DEBUG_MODES )
You can’t perform that action at this time.
0 commit comments