@@ -352,6 +352,7 @@ def explore_folder(dirname, experiment_names=None):
352352 nb_segment_per_block = {}
353353 # nested dictionary: block_index > seg_index > data_type > stream_name
354354 all_streams = {}
355+ block_names_dict = {}
355356 possible_experiment_names = []
356357 for root , dirs , files in os .walk (dirname ):
357358 for file in files :
@@ -365,26 +366,32 @@ def explore_folder(dirname, experiment_names=None):
365366 # so no node_name
366367 node_name = ''
367368
368- # here we skip if self. experiment_names is not None
369+ # here we skip if experiment_names is not None
369370 experiment_name = root .parents [0 ].stem
370371 possible_experiment_names .append (experiment_name )
371372 if experiment_names is not None and experiment_name not in experiment_names :
372373 continue
373- block_index = int (root .parents [0 ].stem .lower ().replace ('experiment' , '' )) - 1
374- if block_index not in all_streams :
374+ block_name = experiment_name
375+ if block_name not in block_names_dict :
376+ block_index = nb_block
377+ segment_names_dict = {}
378+ block_names_dict [experiment_name ] = block_index
375379 all_streams [block_index ] = {}
376- nb_block += 1
377380 nb_segment_per_block [block_index ] = 0
381+ nb_block += 1
382+ seg_index = - 1
378383
379- seg_index = int (root .stem .replace ('recording' , '' )) - 1
380- if seg_index not in all_streams [block_index ]:
384+ recording_name = root .stem
385+ if recording_name not in segment_names_dict :
386+ # segment index restarts from zero for each block (index)
387+ seg_index += 1
381388 all_streams [block_index ][seg_index ] = {
382389 'continuous' : {},
383390 'events' : {},
384391 'spikes' : {},
385392 }
386- if seg_index >= nb_segment_per_block [ block_index ]:
387- nb_segment_per_block [block_index ] = seg_index + 1
393+ segment_names_dict [ recording_name ] = seg_index
394+ nb_segment_per_block [block_index ] += 1
388395
389396 # metadata
390397 with open (root / 'structure.oebin' , encoding = 'utf8' , mode = 'r' ) as f :
@@ -440,7 +447,7 @@ def check_stream_consistency(all_streams, nb_block, nb_segment_per_block, possib
440447 for block_index in range (nb_block ):
441448 segment_stream_names = None
442449 if nb_segment_per_block [block_index ] > 1 :
443- for segment_index in range ( nb_segment_per_block [block_index ]) :
450+ for segment_index in all_streams [block_index ]:
444451 stream_names = sorted (list (all_streams [block_index ][segment_index ]["continuous" ].keys ()))
445452 if segment_stream_names is None :
446453 segment_stream_names = stream_names
0 commit comments