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

0.4.0 Tasks

Planned tasks and features for 0.4.0

General

  • Move all relationship information from neo.description into the neo.core classes.
  • Deprecate or remove neo.description.
  • harmonize data classes (AnalogSignal, SpikeTrain Evnt and Epoch) : have quantities attributes or inherits quantities.
  • change the model relationship. In 0.3.x accessing Unit and RecordingChannel are indirect from a Block. I propose to attach RC RCG and Unit to Block directly. Few people use RCG and the actual force to use them. It is unnecessary complexe.

neo.core

  • Remove AnalogSignal, Epoch, Event, and Spike.
  • AnalogSignalArray, EpochArray, EventArray, IrregularlySampledSignal, and SpikeTrain all derive from a NeoArray base class
  • Block, Segment, RecordingChannel, RecordingChannelGroup, 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 into BaseNeo.
  • Implement annotations merging in merge.
  • Implement automatic parent/child relationship generation in NeoContainer.
  • Implement recursive and non-recursive child listing and filtering generically in NeoContainer.
  • Implement SpikeTrain.waveforms attribute as an AnalogSignal(Array). So remove SpikeTrain.sampling_rate, SpikeTrain.left_sweep

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. I propose to use the same.

Neo Documentation

Clone this wiki locally