@@ -388,7 +388,7 @@ def explore_folder(dirname, experiment_names=None):
388388 # here we skip if experiment_names is not None
389389 experiment_folder = root .parents [0 ]
390390 experiment_name = experiment_folder .stem
391- experiment_id = experiment_name .replace ('experiment' , '' )
391+ experiment_id = int ( experiment_name .replace ('experiment' , '' ) )
392392 if experiment_name not in possible_experiment_names :
393393 possible_experiment_names .append (experiment_name )
394394 if experiment_names is not None and experiment_name not in experiment_names :
@@ -406,7 +406,7 @@ def explore_folder(dirname, experiment_names=None):
406406
407407 recording_folder = root
408408 recording_name = root .stem
409- recording_id = recording_name .replace ('recording' , '' )
409+ recording_id = int ( recording_name .replace ('recording' , '' ) )
410410 # add recording
411411 recording = {}
412412 recording ['name' ] = recording_name
@@ -468,27 +468,35 @@ def explore_folder(dirname, experiment_names=None):
468468 folder_structure [node_name ]['experiments' ][experiment_id ]['recordings' ][recording_id ] \
469469 = recording
470470
471- # now create all_streams, nb_block, nb_segment_per_block (from first recording Node)
471+ # now create all_streams, nb_block, nb_segment_per_block
472472 # nested dictionary: block_index > seg_index > data_type > stream_name
473473 all_streams = {}
474474 nb_segment_per_block = {}
475475 recording_node = folder_structure [list (folder_structure .keys ())[0 ]]
476+
477+ # nb_block needs to be consistent across record nodes. Use the first one
476478 nb_block = len (recording_node ['experiments' ])
477479
478- exp_ids_sorted = sorted (list (recording_node ['experiments' ].keys ()))
479- for block_index , exp_id in enumerate (exp_ids_sorted ):
480- experiment = recording_node ['experiments' ][exp_id ]
481- nb_segment_per_block [block_index ] = len (experiment ['recordings' ])
482- all_streams [block_index ] = {}
483-
484- rec_ids_sorted = sorted (list (experiment ['recordings' ].keys ()))
485- for seg_index , rec_id in enumerate (rec_ids_sorted ):
486- recording = experiment ['recordings' ][rec_id ]
487- all_streams [block_index ][seg_index ] = {}
488- for stream_type in recording ['streams' ]:
489- all_streams [block_index ][seg_index ][stream_type ] = {}
490- for stream_name , signal_stream in recording ['streams' ][stream_type ].items ():
491- all_streams [block_index ][seg_index ][stream_type ][stream_name ] = signal_stream
480+ for node_id , recording_node in folder_structure .items ():
481+ exp_ids_sorted = sorted (list (recording_node ['experiments' ].keys ()))
482+ for block_index , exp_id in enumerate (exp_ids_sorted ):
483+ experiment = recording_node ['experiments' ][exp_id ]
484+ nb_segment_per_block [block_index ] = len (experiment ['recordings' ])
485+ if block_index not in all_streams :
486+ all_streams [block_index ] = {}
487+
488+ rec_ids_sorted = sorted (list (experiment ['recordings' ].keys ()))
489+ for seg_index , rec_id in enumerate (rec_ids_sorted ):
490+ recording = experiment ['recordings' ][rec_id ]
491+ if seg_index not in all_streams [block_index ]:
492+ all_streams [block_index ][seg_index ] = {}
493+ for stream_type in recording ['streams' ]:
494+ if stream_type not in all_streams [block_index ][seg_index ]:
495+ all_streams [block_index ][seg_index ][stream_type ] = {}
496+ for stream_name , signal_stream in recording ['streams' ][stream_type ].items ():
497+ all_streams [block_index ][seg_index ][stream_type ][stream_name ] = \
498+ signal_stream
499+
492500 # natural sort possible experiment names
493501 experiment_order = np .argsort ([int (exp .replace ('experiment' , '' ))
494502 for exp in possible_experiment_names ])
0 commit comments