diff --git a/neo/io/__init__.py b/neo/io/__init__.py index b8f780e32..5d697e645 100644 --- a/neo/io/__init__.py +++ b/neo/io/__init__.py @@ -281,7 +281,7 @@ from neo.io.brainwaresrcio import BrainwareSrcIO from neo.io.cedio import CedIO from neo.io.elanio import ElanIO -# from neo.io.elphyio import ElphyIO +from neo.io.elphyio import ElphyIO from neo.io.exampleio import ExampleIO from neo.io.igorproio import IgorIO from neo.io.intanio import IntanIO diff --git a/neo/io/elphyio.py b/neo/io/elphyio.py index e85a8be55..3a07c9df4 100644 --- a/neo/io/elphyio.py +++ b/neo/io/elphyio.py @@ -87,8 +87,7 @@ from neo.io.baseio import BaseIO # to import from core -from neo.core import (Block, Segment, - AnalogSignal, Event, SpikeTrain) +from neo.core import (Block, Segment, AnalogSignal, Event, SpikeTrain) # -------------------------------------------------------- @@ -562,7 +561,9 @@ def get_protocol_and_version(self): def get_title(self): title_length, title = struct.unpack(' 16)), "bad number of channels" nbpt = read_from_char(fileobj, 'h') l_xu, x_unit = struct.unpack(' i_1] else: - return [k for k in data_blocks if self.blocks.index(k) in xrange(i_1, i_2)] + return [k for k in data_blocks if self.blocks.index(k) in range(i_1, i_2)] def set_cyberk_blocks(self): ck_blocks = list() @@ -2530,10 +2541,9 @@ def sub_sampling(self, ep, ch): return block.ks_block.k_sampling[ch - 1] if block.ks_block else 1 def aggregate_size(self, block, ep): - ag_count = self.aggregate_sample_count(block) ag_size = 0 - for ch in range(1, ag_count + 1): - if (block.ks_block.k_sampling[ch - 1] != 0): + for ch in range(1, len(block.ks_block.k_sampling)): + if block.ks_block.k_sampling[ch - 1] != 0: ag_size += self.sample_size(ep, ch) return ag_size @@ -2654,7 +2664,7 @@ def aggregate_sample_count(self, block): count = 0 for i in range(0, block.ep_block.n_channels): if block.ks_block.k_sampling[i] > 0: - count += lcm0 / block.ks_block.k_sampling[i] + count += int(lcm0 / block.ks_block.k_sampling[i]) return count @@ -3017,6 +3027,8 @@ def create_sub_block(self, block, sub_offset): self.file.seek(sub_offset) sub_ident_size = read_from_char(self.file, 'B') sub_identifier, = struct.unpack('<%ss' % sub_ident_size, self.file.read(sub_ident_size)) + if hasattr(sub_identifier, 'decode'): + sub_identifier = sub_identifier.decode() sub_data_size = read_from_char(self.file, 'H') sub_data_offset = sub_offset + sub_ident_size + 3 size_format = "H" @@ -3101,6 +3113,8 @@ def create_header(self, layout): def create_block(self, layout, offset): self.file.seek(offset) ident_size, identifier = struct.unpack(' 0) + # ensure that at least one data object is generated for each file + self.assertTrue(any(list(bl.segments[0].size.values()))) + + +if __name__ == "__main__": + unittest.main()