@@ -363,21 +363,22 @@ def find_estimators(
363
363
)
364
364
dirs = layout .get_directions (** entities )
365
365
if len (dirs ) > 1 :
366
- fieldmaps = layout .get (** {** entities , ** {"direction" : dirs }})
367
- try :
368
- e = fm .FieldmapEstimation (
369
- [
370
- fm .FieldmapFile (fmap .path , metadata = fmap .get_metadata ())
371
- for fmap in fieldmaps
372
- ]
373
- )
374
- except ValueError as err :
375
- _log_debug_estimator_fail (
376
- logger , "unnamed PEPOLAR" , fieldmaps , layout .root , str (err )
377
- )
378
- else :
379
- _log_debug_estimation (logger , e , layout .root )
380
- estimators .append (e )
366
+ by_intent = {}
367
+ for fmap in layout .get (** {** entities , ** {'direction' : dirs }}):
368
+ fmapfile = fm .FieldmapFile (fmap .path , metadata = fmap .get_metadata ())
369
+ by_intent .setdefault (
370
+ tuple (fmapfile .metadata .get ('IntendedFor' , ())), []
371
+ ).append (fmapfile )
372
+ for collection in by_intent .values ():
373
+ try :
374
+ e = fm .FieldmapEstimation (collection )
375
+ except ValueError as err :
376
+ _log_debug_estimator_fail (
377
+ logger , "unnamed PEPOLAR" , collection , layout .root , str (err )
378
+ )
379
+ else :
380
+ _log_debug_estimation (logger , e , layout .root )
381
+ estimators .append (e )
381
382
382
383
# At this point, only single-PE _epi files WITH ``IntendedFor`` can
383
384
# be automatically processed.
0 commit comments