========================
Neo 0.10.0 release notes
========================

26th July 2021

.. currentmodule:: neo.core

Removal of Unit and ChannelIndex
--------------------------------
In version 0.9.0 :class:`Group` and :class:`ChannelView` were introduced, replacing :class:`Unit` and :class:`ChannelIndex`, which were deprecated.
In this version the deprecated :class:`Unit` and :class:`ChannelIndex` are removed and only the new :class:`Group` and :class:`ChannelView` objects are available.

Supported Python and NumPy versions
-----------------------------------

We no longer support Python 3.6, nor versions of NumPy older than 1.16.

Other new or modified features
------------------------------

* Lists of :class:`SpikeTrain` objects can now also be created from two arrays: one containing spike times
  and the other unit identities of the times (:class:`SpikeTrainList`).
* Object identity is now preserved when using utility :func:`time_slice()` methods.

See all `pull requests`_ included in this release and the `list of closed issues`_.


New IO modules
--------------

<<<<<<< Updated upstream
  * CEDIO - an alternative to spike2io
  * AxonaIO
  * OpenEphysIO - handle the binary format
  * PhyIO
  * SpikeGLXIO
  * NWBIO
  * MaxwellIO

RawIO modules
-------------

Internal refactoring of the neo.rawio module about the channel grouping.
There is a signal_stream filed that handle channel groups for signal.
This enhanced the way annotation and array_annotaion are rendered at neo.io level.

=======
.. currentmodule:: neo.io

* :class:`CEDIO` - an alternative to :class:`Spike2IO`
* :class:`AxonaIO`
* :class:`OpenEphysIO`
* :class:`PhyIO`
* :class:`SpikeGLXIO`
* :class:`NWBIO` - support for a subset of the `NWB:N`_ format
>>>>>>> Stashed changes

Bug fixes and improvements in IO modules
----------------------------------------

* :class:`NeuralynxIO` was refactored and now supports new file versions (neuraview) and single file loading.
* Legacy versions of old IOs were removed for NeuralynxIO (neuralynxio_v1), BlackrockIO, NeoHdf5IO.
* :class:`NixIOfr` now supports array annotations of :class:`AnalogSignal` objects.
* The IO modules of this release have been tested with version 0.1.0 of the `ephy_testing_data`_.
* :class:`NSDFIO` was removed.
* all IOs now accept :class:`pathlib.Path` objects.


Acknowledgements
----------------

Thanks to Samuel Garcia, Julia Sprenger, Peter N. Steinmetz, Andrew Davison, Steffen Bürgers,
Regimantas Jurkus, Alessio Buccino,  Shashwat Sridhar, Jeffrey Gill, Etienne Combrisson,
Ben Dichter and Elodie Legouée for their contributions to this release.

.. _`list of closed issues`: https://github.com/NeuralEnsemble/python-neo/issues?q=is%3Aissue+milestone%3A0.10.0+is%3Aclosed
.. _`pull requests`: https://github.com/NeuralEnsemble/python-neo/pulls?q=is%3Apr+is%3Aclosed+merged%3A%3E2020-11-10+milestone%3A0.10.0
<<<<<<< Updated upstream
.. _`ephy_test_data`: https://gin.g-node.org/NeuralEnsemble/ephy_testing_data/src/v0.1.0
=======
.. _`ephy_testing_data`: https://gin.g-node.org/NeuralEnsemble/ephy_testing_data/src/v0.1.0
.. _`NWB:N`: https://www.nwb.org/nwb-neurophysiology/
>>>>>>> Stashed changes
