def read_epoch(fh, block_id, array_id): nix_block = fh.handle.blocks[block_id] nix_da = nix_block.data_arrays[array_id] params = { 'times': nix_da[0], # TODO think about lazy data loading 'durations': nix_da[1], # TODO think about lazy data loading 'labels': [x.encode('UTF-8') for x in nix_da.dimensions[0].labels] } name = Reader.Help.get_obj_neo_name(nix_da) if name: params['name'] = name epoch = Epoch(**params) for key, value in Reader.Help.read_attributes(nix_da.metadata, 'epoch').items(): setattr(epoch, key, value) epoch.annotations = Reader.Help.read_annotations(nix_da.metadata, 'epoch') return epoch