|
1 | 1 | # PyNWB Changelog |
2 | 2 |
|
3 | | -## PyNWB 3.0.0 (Upcoming) |
| 3 | +## PyNWB 3.0.0 (February 26, 2025) |
| 4 | + |
| 5 | +### Breaking changes |
| 6 | +- The validation methods have been updated with multiple breaking changes. @stephprince [#1911](https://github.com/NeurodataWithoutBorders/pynwb/pull/1911) |
| 7 | + - The behavior of `pynwb.validate(io=...)` now matches the behavior of `pynwb.validate(path=...)`. In previous pynwb versions, `pynwb.validate(io=...)` did not use the cached namespaces during validation. To obtain the same behavior as in previous versions, you can update the function call to `pynwb.validate(io=..., use_cached_namespaces=False)` |
| 8 | + - `pynwb.validate` will return only a list of validation errors instead of a tuple: (list of validation_errors, status code) |
| 9 | + - the `pynwb.validate(path=...)` argument has been added as a replacement for `pynwb.validate(paths=[...])`, which will be deprecated in a future major release [#2024](https://github.com/NeurodataWithoutBorders/pynwb/pull/2024) |
| 10 | + - The validate module has been renamed to `validation.py`. The validate method can be |
| 11 | + imported using `import pynwb; pynwb.validate` or `from pynwb import validate` |
| 12 | + |
| 13 | +### Deprecations |
| 14 | +- The following deprecated classes will now raise errors when creating new instances of these classes: ``ClusteringWaveforms``, ``Clustering``, ``SweepTable``. Reading files using these data types will continue to be supported. |
| 15 | +- The following methods and arguments have been deprecated: |
| 16 | + - ``ProcessingModule.add_container`` and ``ProcessingModule.add_data_interface`` are replaced by ``ProcessingModule.add`` |
| 17 | + - ``ProcessingModule.get_container`` and ``ProcessingModule.get_data_interface`` are replaced by ``ProcessingModule.get`` |
| 18 | + - ``ScratchData.notes`` is deprecated. Use ``ScratchData.description`` instead. |
| 19 | + - ``NWBFile.ic_electrodes`` is deprecated. Use ``NWBFile.icephys_electrodes`` instead. |
| 20 | + - ``NWBFile.ec_electrodes`` is deprecated. Use ``NWBFile.electrodes`` instead. |
| 21 | + - ``NWBFile.icephys_filtering`` is deprecated. Use ``IntracellularElectrode.filtering`` instead. |
| 22 | + - ``NWBFile.modules`` is deprecated. Use ``NWBFile.processing`` instead. |
| 23 | + - ``ImageSeries.format`` is fixed to 'external' if an external file is provided. |
| 24 | + - ``ImageSeries.bits_per_pixel`` is deprecated. |
| 25 | + - ``ImagingPlane.manifold``, ``ImagingPlane.conversion`` and ``ImagingPlane.unit`` are deprecated. Use ``ImagingPlane.origin_coords`` and ``ImagingPlane.grid_spacing`` instead. |
| 26 | + - ``IndexSeries.unit`` is fixed to "N\A". |
| 27 | + - ``IndexSeries.indexed_timeseries`` is deprecated. Use ``IndexSeries.indexed_images`` instead. |
| 28 | +- The following deprecated methods have been removed: |
| 29 | + - ``NWBFile.add_ic_electrode`` is removed. Use ``NWBFile.add_icephys_electrode`` instead. |
| 30 | + - ``NWBFile.create_ic_electrode`` is removed. Use ``NWBFile.create_icephys_electrode`` instead. |
| 31 | + - ``NWBFile.get_ic_electrode`` is removed. Use ``NWBFile.get_icephys_electrode`` instead. |
| 32 | + - ``pynwb._get_resources`` is removed. |
4 | 33 |
|
5 | 34 | ### Enhancements and minor changes |
6 | 35 | - Added `__all__` to modules. @bendichter [#2021](https://github.com/NeurodataWithoutBorders/pynwb/pull/2021) |
7 | 36 | - Added `pynwb.read_nwb` convenience method to simplify reading an NWBFile written with any backend @h-mayorquin [#1994](https://github.com/NeurodataWithoutBorders/pynwb/pull/1994) |
| 37 | +- Constrained `hdmf<5` to prevent future compatibility issues. [#2040](https://github.com/NeurodataWithoutBorders/pynwb/pull/2040) |
8 | 38 |
|
9 | 39 | ### Bug fixes |
10 | 40 | - Made distance, orientation, and field_of_view optional in OpticalSeries to match schema @bendichter [#2023](https://github.com/NeurodataWithoutBorders/pynwb/pull/2023) |
|
14 | 44 | - Added support for `model_number`, `model_name`, and `serial_number` fields to `Device`. @stephprince [#1997](https://github.com/NeurodataWithoutBorders/pynwb/pull/1997) |
15 | 45 | - Deprecated `EventWaveform` neurodata type. @rly [#1940](https://github.com/NeurodataWithoutBorders/pynwb/pull/1940) |
16 | 46 | - Deprecated `ImageMaskSeries` neurodata type. @rly [#1941](https://github.com/NeurodataWithoutBorders/pynwb/pull/1941) |
| 47 | +- Added enhancements to the validation CLI. @stephprince [#1911](https://github.com/NeurodataWithoutBorders/pynwb/pull/1911) |
| 48 | + - Added an entry point for the validation module. You can now use `pynwb-validate "file.nwb"`. |
| 49 | + - Added the `--json-outpath-path` CLI argument to output validation results in a machine readable format. |
17 | 50 | - Removed python 3.8 support, added python 3.13 support. @stephprince [#2007](https://github.com/NeurodataWithoutBorders/pynwb/pull/2007) |
| 51 | +- Added warnings when using positional arguments in `Container` constructor methods. Positional arguments will raise errors in the next major release. @stephprince [#1972](https://github.com/NeurodataWithoutBorders/pynwb/pull/1972) |
18 | 52 | - `mock_ElectricalSeries`. Make number of electrodes between data and electrode region agree when explicitly passing data @h-mayorquin [#2019](https://github.com/NeurodataWithoutBorders/pynwb/pull/2019) |
19 | 53 |
|
20 | 54 | ### Documentation and tutorial enhancements |
|
0 commit comments