Skip to content
Andrew Davison edited this page Feb 18, 2016 · 10 revisions

0.4.0 Tasks

Planned tasks and features for 0.4.0

API changes

  • harmonize data classes (AnalogSignal, SpikeTrain, Event and Epoch): have quantities attributes or inherits quantities.
  • Rename AnalogSignalArray to AnalogSignal, EpochArray to Epoch, EventArray to Event. Remove the original, 1D AnalogSignal, Epoch and Event classes.
  • Remove the Spike class.
  • Remove the RecordingChannel class, and replace lists of RecordingChannels with a modified/repurposed RecordingChannelGroup.
  • Rename RecordingChannelGroup to ChannelIndex.
  • Attach units directly to Block.
  • Implement SpikeTrain.waveforms attribute as an AnalogSignal. So remove SpikeTrain.sampling_rate, SpikeTrain.left_sweep

Implementation

  • Move all relationship information from neo.description into the neo.core classes.
  • Deprecate or remove neo.description.
  • AnalogSignal, Epoch, Event, IrregularlySampledSignal, and SpikeTrain all derive from a NeoArray base class
  • Block, Segment, RecordingChannelGroup (ChannelIndex), and Unit all derive from a NeoContainer base class.
  • Implement all attributes as properties, with built-in compliance testing.
  • Move mathematics, slicing, and time methods into NeoArray. IrregularlySampledSignal and SpikeTrain override them.
  • Move merge() method into BaseNeo.
  • Implement annotation merging in merge().
  • Implement automatic parent/child relationship generation in NeoContainer.
  • Implement recursive and non-recursive child listing and filtering generically in NeoContainer.

neo.io

  • Python 3.x compatibility for all IO classes.
  • PEP8 compliance for all IO classes.
  • add stream reading where possible (HDF, ..) in the API.
  • change the formalism for parameters description. pyqtgraph use a simple way to do it with list and dict only. we propose to use the same.

Neo Documentation

  • Revamp the Neo documentation.
Clone this wiki locally