@@ -420,7 +420,7 @@ def create_full_nix_file(cls, filename):
420420 asig_md .create_property (arr_ann_name ,
421421 arr_ann_val .magnitude .flatten ())
422422 asig_md .props [arr_ann_name ].unit = str (arr_ann_val .dimensionality )
423- asig_md .props [arr_ann_name ].definition = 'ARRAYANNOTATION'
423+ asig_md .props [arr_ann_name ].type = 'ARRAYANNOTATION'
424424
425425 for idx in range (10 ):
426426 da_asig = blk .create_data_array (
@@ -454,7 +454,7 @@ def create_full_nix_file(cls, filename):
454454 imgseq_md .create_property (arr_ann_name ,
455455 arr_ann_val .magnitude .flatten ())
456456 imgseq_md .props [arr_ann_name ].unit = str (arr_ann_val .dimensionality )
457- imgseq_md .props [arr_ann_name ].definition = 'ARRAYANNOTATION'
457+ imgseq_md .props [arr_ann_name ].type = 'ARRAYANNOTATION'
458458
459459 for idx in range (10 ):
460460 da_imgseq = blk .create_data_array (
@@ -487,7 +487,7 @@ def create_full_nix_file(cls, filename):
487487 isig_md .create_property (arr_ann_name ,
488488 arr_ann_val .magnitude .flatten ())
489489 isig_md .props [arr_ann_name ].unit = str (arr_ann_val .dimensionality )
490- isig_md .props [arr_ann_name ].definition = 'ARRAYANNOTATION'
490+ isig_md .props [arr_ann_name ].type = 'ARRAYANNOTATION'
491491 for idx in range (7 ):
492492 da_isig = blk .create_data_array (
493493 "{}.{}" .format (isig_name , idx ),
@@ -529,7 +529,7 @@ def create_full_nix_file(cls, filename):
529529 mtag_st_md .create_property (arr_ann_name ,
530530 arr_ann_val .magnitude .flatten ())
531531 mtag_st_md .props [arr_ann_name ].unit = str (arr_ann_val .dimensionality )
532- mtag_st_md .props [arr_ann_name ].definition = 'ARRAYANNOTATION'
532+ mtag_st_md .props [arr_ann_name ].type = 'ARRAYANNOTATION'
533533
534534 waveforms = cls .rquant ((10 , 8 , 5 ), 1 )
535535 wfname = "{}.waveforms" .format (mtag_st .name )
@@ -581,7 +581,7 @@ def create_full_nix_file(cls, filename):
581581 mtag_ep .metadata .create_property (arr_ann_name ,
582582 arr_ann_val .magnitude .flatten ())
583583 mtag_ep .metadata .props [arr_ann_name ].unit = str (arr_ann_val .dimensionality )
584- mtag_ep .metadata .props [arr_ann_name ].definition = 'ARRAYANNOTATION'
584+ mtag_ep .metadata .props [arr_ann_name ].type = 'ARRAYANNOTATION'
585585
586586 label_dim = mtag_ep .positions .append_set_dimension ()
587587 label_dim .labels = cls .rsentence (5 ).split (" " )
@@ -614,7 +614,7 @@ def create_full_nix_file(cls, filename):
614614 mtag_ev .metadata .create_property (arr_ann_name ,
615615 arr_ann_val .magnitude .flatten ())
616616 mtag_ev .metadata .props [arr_ann_name ].unit = str (arr_ann_val .dimensionality )
617- mtag_ev .metadata .props [arr_ann_name ].definition = 'ARRAYANNOTATION'
617+ mtag_ev .metadata .props [arr_ann_name ].type = 'ARRAYANNOTATION'
618618
619619 label_dim = mtag_ev .positions .append_set_dimension ()
620620 label_dim .labels = cls .rsentence (5 ).split (" " )
@@ -1570,6 +1570,24 @@ def test_annotations_special_cases(self):
15701570
15711571 # TODO: multi dimensional value (GH Issue #501)
15721572
1573+ def test_empty_array_annotations (self ):
1574+ wblock = Block ("block with spiketrain" )
1575+ wseg = Segment ()
1576+ wseg .spiketrains = [SpikeTrain (times = [] * pq .s , t_stop = 1 * pq .s ,
1577+ array_annotations = {'empty' : []})]
1578+ wblock .segments = [wseg ]
1579+ self .writer .write_block (wblock )
1580+ try :
1581+ rblock = self .writer .read_block (neoname = "block with spiketrain" )
1582+ except Exception as exc :
1583+ self .fail ('The following exception was raised when'
1584+ + ' reading the block with an empty array annotation:\n '
1585+ + str (exc ))
1586+ rst = rblock .segments [0 ].spiketrains [0 ]
1587+ self .assertEqual (len (rst .array_annotations ), 1 )
1588+ self .assertIn ('empty' , rst .array_annotations .keys ())
1589+ self .assertEqual (len (rst .array_annotations ['empty' ]), 0 )
1590+
15731591 def test_write_proxyobjects (self ):
15741592
15751593 def generate_complete_block ():
0 commit comments