Skip to content

Commit 01d9ab9

Browse files
authored
Merge pull request #2015 from NeurodataWithoutBorders/release-3.0.0
Prepare release 3.0
2 parents 5564f82 + 2a2e7ff commit 01d9ab9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1525
-1197
lines changed

.github/workflows/run_all_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ jobs:
167167
run: |
168168
conda config --set always_yes yes --set changeps1 no
169169
conda info
170-
conda install -c conda-forge tox
170+
conda install -c conda-forge "tox>=4.0"
171171
172172
- name: Conda reporting
173173
run: |

CHANGELOG.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,40 @@
11
# PyNWB Changelog
22

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.
433

534
### Enhancements and minor changes
635
- Added `__all__` to modules. @bendichter [#2021](https://github.com/NeurodataWithoutBorders/pynwb/pull/2021)
736
- 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)
838

939
### Bug fixes
1040
- Made distance, orientation, and field_of_view optional in OpticalSeries to match schema @bendichter [#2023](https://github.com/NeurodataWithoutBorders/pynwb/pull/2023)
@@ -14,7 +44,11 @@
1444
- Added support for `model_number`, `model_name`, and `serial_number` fields to `Device`. @stephprince [#1997](https://github.com/NeurodataWithoutBorders/pynwb/pull/1997)
1545
- Deprecated `EventWaveform` neurodata type. @rly [#1940](https://github.com/NeurodataWithoutBorders/pynwb/pull/1940)
1646
- 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.
1750
- 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)
1852
- `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)
1953

2054
### Documentation and tutorial enhancements

Legal.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
“pynwb” Copyright (c) 2017-2024, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
1+
“pynwb” Copyright (c) 2017-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
22

33
If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at [email protected].
44

README.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ Citing NWB
9494
LICENSE
9595
=======
9696

97-
"pynwb" Copyright (c) 2017-2024, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
97+
"pynwb" Copyright (c) 2017-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
9898
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
9999

100100
(1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
@@ -110,7 +110,7 @@ You are under no obligation whatsoever to provide any bug fixes, patches, or upg
110110
COPYRIGHT
111111
=========
112112

113-
"pynwb" Copyright (c) 2017-2024, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
113+
"pynwb" Copyright (c) 2017-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
114114
If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at [email protected].
115115

116116
NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit other to do so.

docs/gallery/domain/icephys.py

Lines changed: 0 additions & 239 deletions
This file was deleted.

docs/gallery/general/extensions.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@
3737
ns_builder = NWBNamespaceBuilder(
3838
"Extension for use in my Lab", "mylab", version="0.1.0"
3939
)
40-
41-
ns_builder.include_type("ElectricalSeries", namespace="core")
40+
ns_builder.include_namespace("core")
4241

4342
ext = NWBGroupSpec(
4443
"A custom ElectricalSeries for my lab",
@@ -264,7 +263,7 @@ def __init__(self, **kwargs):
264263
ext_source = name + ".extensions.yaml"
265264

266265
ns_builder = NWBNamespaceBuilder(name + " extensions", name, version="0.1.0")
267-
ns_builder.include_type("NWBDataInterface", namespace="core")
266+
ns_builder.include_namespace("core")
268267

269268
potato = NWBGroupSpec(
270269
neurodata_type_def="Potato",

docs/gallery/general/scratch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
# Now lets do an analysis for which we do not have a specification, but we would like to store
146146
# the results for.
147147

148-
filt_ts = nwb_scratch.modules["filtering_module"]["filtered_timeseries"]
148+
filt_ts = nwb_scratch.processing["filtering_module"]["filtered_timeseries"]
149149

150150
fft = np.fft.fft(filt_ts.data)
151151

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def __call__(self, filename):
191191

192192
# General information about the project.
193193
project = u'PyNWB'
194-
copyright = u'2017-2024, Neurodata Without Borders'
194+
copyright = u'2017-2025, Neurodata Without Borders'
195195

196196
# The version info for the project you're documenting, acts as replacement for
197197
# |version| and |release|, also used in various other places throughout the

0 commit comments

Comments
 (0)