@@ -410,7 +410,7 @@ def explore_folder(dirname, experiment_names=None):
410410 # here we skip if experiment_names is not None
411411 experiment_folder = root .parents [0 ]
412412 experiment_name = experiment_folder .stem
413- experiment_id = experiment_name .replace ('experiment' , '' )
413+ experiment_id = int ( experiment_name .replace ('experiment' , '' ) )
414414 if experiment_name not in possible_experiment_names :
415415 possible_experiment_names .append (experiment_name )
416416 if experiment_names is not None and experiment_name not in experiment_names :
@@ -428,7 +428,7 @@ def explore_folder(dirname, experiment_names=None):
428428
429429 recording_folder = root
430430 recording_name = root .stem
431- recording_id = recording_name .replace ('recording' , '' )
431+ recording_id = int ( recording_name .replace ('recording' , '' ) )
432432 # add recording
433433 recording = {}
434434 recording ['name' ] = recording_name
@@ -490,27 +490,35 @@ def explore_folder(dirname, experiment_names=None):
490490 folder_structure [node_name ]['experiments' ][experiment_id ]['recordings' ][recording_id ] \
491491 = recording
492492
493- # now create all_streams, nb_block, nb_segment_per_block (from first recording Node)
493+ # now create all_streams, nb_block, nb_segment_per_block
494494 # nested dictionary: block_index > seg_index > data_type > stream_name
495495 all_streams = {}
496496 nb_segment_per_block = {}
497497 recording_node = folder_structure [list (folder_structure .keys ())[0 ]]
498+
499+ # nb_block needs to be consistent across record nodes. Use the first one
498500 nb_block = len (recording_node ['experiments' ])
499501
500- exp_ids_sorted = sorted (list (recording_node ['experiments' ].keys ()))
501- for block_index , exp_id in enumerate (exp_ids_sorted ):
502- experiment = recording_node ['experiments' ][exp_id ]
503- nb_segment_per_block [block_index ] = len (experiment ['recordings' ])
504- all_streams [block_index ] = {}
505-
506- rec_ids_sorted = sorted (list (experiment ['recordings' ].keys ()))
507- for seg_index , rec_id in enumerate (rec_ids_sorted ):
508- recording = experiment ['recordings' ][rec_id ]
509- all_streams [block_index ][seg_index ] = {}
510- for stream_type in recording ['streams' ]:
511- all_streams [block_index ][seg_index ][stream_type ] = {}
512- for stream_name , signal_stream in recording ['streams' ][stream_type ].items ():
513- all_streams [block_index ][seg_index ][stream_type ][stream_name ] = signal_stream
502+ for node_id , recording_node in folder_structure .items ():
503+ exp_ids_sorted = sorted (list (recording_node ['experiments' ].keys ()))
504+ for block_index , exp_id in enumerate (exp_ids_sorted ):
505+ experiment = recording_node ['experiments' ][exp_id ]
506+ nb_segment_per_block [block_index ] = len (experiment ['recordings' ])
507+ if block_index not in all_streams :
508+ all_streams [block_index ] = {}
509+
510+ rec_ids_sorted = sorted (list (experiment ['recordings' ].keys ()))
511+ for seg_index , rec_id in enumerate (rec_ids_sorted ):
512+ recording = experiment ['recordings' ][rec_id ]
513+ if seg_index not in all_streams [block_index ]:
514+ all_streams [block_index ][seg_index ] = {}
515+ for stream_type in recording ['streams' ]:
516+ if stream_type not in all_streams [block_index ][seg_index ]:
517+ all_streams [block_index ][seg_index ][stream_type ] = {}
518+ for stream_name , signal_stream in recording ['streams' ][stream_type ].items ():
519+ all_streams [block_index ][seg_index ][stream_type ][stream_name ] = \
520+ signal_stream
521+
514522 # natural sort possible experiment names
515523 experiment_order = np .argsort ([int (exp .replace ('experiment' , '' ))
516524 for exp in possible_experiment_names ])
0 commit comments