========================
Neo 0.12.0 release notes
========================

17th February 2023

.. currentmodule:: neo.io

Change of packaging system
--------------------------

We have updated our tooling for building and installing Neo to follow the
`latest recommendations`_ of the Python community (using pyproject.toml, etc.)

For users, this means you should always use `pip` to install Neo,
unless you're using another package manager such as `conda`, `spack`,
or a Linux package manager.


Improved file format detection
------------------------------

In addition to the existing :func:`get_io()` function, there is now an additional utility function
for finding a suitable IO for a given dataset.

:func:`list_candidate_ios()` provides a list of all IOs supporting the formats detected in a given path.
This list is generated based on the file extension of the file
or the extensions of the matching files in a given folder,
potentially also scanning subfolders if required.


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

Bug fixes and/or improvements have been made to
:class:`OpenEphysBinaryIO` and :class:`NWBIO`.


Other changes
-------------

- The IO test suite has been greatly improved, with a substantial speed-up.


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

Updated dependencies
--------------------

We have dropped support for Python 3.7 and added support for 3.11.
Neo now requires NumPy version >=1.19.5 and Quantities >=v0.14.1.


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

Thanks to Julia Sprenger, Andrew Davison, and Samuel Garcia for their contributions to this release.

.. generated with git shortlog --since=2022-10-21 -sne then checking Github for PRs merged since the last release but with commits before then

.. _`list of closed issues`: https://github.com/NeuralEnsemble/python-neo/issues?q=is%3Aissue+milestone%3A0.12.0+is%3Aclosed
.. _`pull requests`: https://github.com/NeuralEnsemble/python-neo/pulls?q=is%3Apr+is%3Aclosed+merged%3A%3E2022-10-21+milestone%3A0.12.0
.. _`latest recommendations`: https://packaging.python.org/en/latest/