Releases: NeurodataWithoutBorders/pynwb
Releases · NeurodataWithoutBorders/pynwb
Latest (updated on 2025-01-29 17:01 UTC)
update default mock_NWBFile start time (#2018) * update default mock_NWBFile start time * Update src/pynwb/testing/mock/file.py Co-authored-by: Ryan Ly <[email protected]> --------- Co-authored-by: Ben Dichter <[email protected]> Co-authored-by: Ryan Ly <[email protected]>
3.0.0rc1
Breaking changes
- The validation methods have been updated with multiple breaking changes. @stephprince #1911
- The behavior of
pynwb.validate(io=...)
now matches the behavior ofpynwb.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 topynwb.validate(io=..., use_cached_namespaces=False)
pynwb.validate
will return only a list of validation errors instead of a tuple: (list of validation_errors, status code)- the
pynwb.validate(path=...)
argument has been added as a replacement forpynwb.validate(paths=[...])
, which will be deprecated in a future major release #2024 - The validate module has been renamed to
validation.py
. The validate method can be
imported usingimport pynwb; pynwb.validate
orfrom pynwb import validate
- The behavior of
Deprecations
- 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. - The following methods and arguments have been deprecated:
ProcessingModule.add_container
andProcessingModule.add_data_interface
are replaced byProcessingModule.add
ProcessingModule.get_container
andProcessingModule.get_data_interface
are replaced byProcessingModule.get
ScratchData.notes
is deprecated. UseScratchData.description
instead.NWBFile.ic_electrodes
is deprecated. UseNWBFile.icephys_electrodes
instead.NWBFile.ec_electrodes
is deprecated. UseNWBFile.electrodes
instead.NWBFile.icephys_filtering
is deprecated. UseIntracellularElectrode.filtering
instead.NWBFile.modules
is deprecated. UseNWBFile.processing
instead.ImageSeries.format
is fixed to 'external' if an external file is provided.ImageSeries.bits_per_pixel
is deprecated.ImagingPlane.manifold
,ImagingPlane.conversion
andImagingPlane.unit
are deprecated. UseImagingPlane.origin_coords
andImagingPlane.grid_spacing
instead.IndexSeries.unit
is fixed to "N\A".IndexSeries.indexed_timeseries
is deprecated. UseIndexSeries.indexed_images
instead.
- The following deprecated methods have been removed:
NWBFile.add_ic_electrode
is removed. UseNWBFile.add_icephys_electrode
instead.NWBFile.create_ic_electrode
is removed. UseNWBFile.create_icephys_electrode
instead.NWBFile.get_ic_electrode
is removed. UseNWBFile.get_icephys_electrode
instead.pynwb._get_resources
is removed.
Enhancements and minor changes
- Added
pynwb.read_nwb
convenience method to simplify reading an NWBFile written with any backend @h-mayorquin #1994 - Added support for NWB schema 2.8.0. @rly #2001
- Removed
SpatialSeries.bounds
field that was not functional. This will be fixed in a future release. @rly #1907, #1996 - Added support for
NWBFile.was_generated_by
field. @stephprince #1924 - Added support for
model_number
,model_name
, andserial_number
fields toDevice
. @stephprince #1997 - Deprecated
EventWaveform
neurodata type. @rly #1940 - Deprecated
ImageMaskSeries
neurodata type. @rly #1941
- Removed
- Added enhancements to the validation CLI. @stephprince #1911
- Added an entry point for the validation module. You can now use
pynwb-validate "file.nwb"
. - Added the
--json-outpath-path
CLI argument to output validation results in a machine readable format.
- Added an entry point for the validation module. You can now use
- Removed python 3.8 support, added python 3.13 support. @stephprince #2007
- Added warnings when using positional arguments in
Container
constructor methods. Positional arguments will raise errors in the next major release. @stephprince #1972 mock_ElectricalSeries
. Make number of electrodes between data and electrode region agree when explicitly passing data @h-mayorquin #2019
Documentation and tutorial enhancements
- Updated
SpikeEventSeries
,DecompositionSeries
, andFilteredEphys
examples. @stephprince #2012 - Replaced deprecated
scipy.misc.face
dataset in the images tutorial with another example. @stephprince #2016
2.8.3
Enhancements and minor changes
- Made gain an optional argument for PatchClampSeries to match the schema. @stephprince #1975
- Added warning when writing files with
NWBHDF5IO
without the.nwb
extension. @stephprince #1978 - Added
NWBHDF5IO.read_nwb
convenience method to simplify reading an NWB file. @h-mayorquin #1979 - Removed unused references to region references and builders in preparation for changes in HDMF 4.0. @rly #1991
Documentation and tutorial enhancements
- Added documentation example for
SpikeEventSeries
. @stephprince #1983 - Added documentation example for
AnnotationSeries
. @stephprince #1989 - Added documentation example for
DecompositionSeries
. @stephprince #1981
Performance
- Cache global type map to speed import 3X. @sneakers-the-rat #1931
Bug fixes
2.8.2
Enhancements and minor changes
- Added support for numpy 2.0. @mavaylon1 #1956
- Make
get_cached_namespaces_to_validate
a public function @stephprince #1961
Documentation and tutorial enhancements
- Added pre-release pull request instructions to release process documentation @stephprince #1928
- Added section on how to use the
family
driver inh5py
for splitting data across multiple files @oruebel #1949
Bug fixes
- Fixed
can_read
method to return False if no nwbfile version can be found @stephprince #1934 - Changed
epoch_tags
to be a NWBFile property instead of constructor argument. @stephprince #1935 - Exposed option to not cache the spec in
NWBHDF5IO.export
. @rly #1959
2.8.1
Documentation and tutorial enhancements
- Simplified the introduction to NWB tutorial. @rly #1914
- Simplified the ecephys and ophys tutorials. #1915
- Add comments to
src/pynwb/io/file.py
to improve developer documentation. @rly #1925
Bug fixes
- Fixed use of
channel_conversion
inTimeSeries
get_data_in_units
. @rohanshah 1923
2.8.0
Enhancements and minor changes
- Set rate default value inside
mock_ElectricalSeries
to avoid having to setrate=None
explicitly when passing timestamps. @h-mayorquin #1894 - Integrate validation through the
TypeConfigurator
. @mavaylon1 #1829 - Exposed
aws_region
toNWBHDF5IO
. @rly #1903
Bug fixes
2.7.0
PyNWB 2.7.0 (May 2, 2024)
Enhancements and minor changes
- Added
bounds
field toSpatialSeries
to set optional boundary range (min, max) for each dimension of data. @mavaylon1 #1869 - Added support for NWB schema 2.7.0. See 2.7.0 release notes for details
- Deprecated
ImagingRetinotopy
neurodata type. @rly #1813 - Modified
OptogeneticSeries
to allow 2D data, primarily in extensions ofOptogeneticSeries
. @rly #1812 - Support
stimulus_template
as optional predefined column inIntracellularStimuliTable
. @stephprince #1815 - Support
NWBDataInterface
andDynamicTable
inNWBFile.stimulus
. @rly #1842 - Added support for python 3.12 and upgraded dependency versions. This also includes infrastructure updates for developers. @mavaylon1 #1853
- Added
grid_spacing
,grid_spacing_unit
,origin_coords
,origin_coords_unit
toImagingPlane
fields. @h-mayorquin #1892 - Added
mock_Units
for generating Units tables. @h-mayorquin #1875 and #1883 - Allow datetimes without a timezone and without a time. @rly #1886
- No longer automatically set the timezone to the local timezone when not provided. #1886
- Updated testing to not install in editable mode and not run
coverage
by default. #1897
Bug fixes
2.6.0
PyNWB 2.6.0 (February 21, 2024)
Enhancements and minor changes
- For
NWBHDF5IO()
, change the default of argload_namespaces
fromFalse
toTrue
. @bendichter #1748 - Add
NWBHDF5IO.can_read()
. @bendichter #1703 - Add
pynwb.get_nwbfile_version()
. @bendichter #1703 - Fix usage of the
validate
function in thepynwb.testing.testh5io
classes and cache the spec by default in those classes. @rly #1782 - Updated timeseries data checks to warn instead of error when reading invalid files. @stephprince #1793 and #1809
- Expose the offset, conversion and channel conversion parameters in
mock_ElectricalSeries
. @h-mayorquin #1796 - Expose
starting_time
inmock_ElectricalSeries
. @h-mayorquin #1805 - Enhance
get_data_in_units()
to work with objects that have achannel_conversion
attribute like theElectricalSeries
. @h-mayorquin #1806 - Refactor validation CLI tests to use
{sys.executable} -m coverage
to use the same Python version and run correctly on Debian systems. @yarikoptic #1811 - Fixed tests to address newly caught validation errors. @rly #1839
Bug fixes
- Fix bug where namespaces were loaded in "w-" mode. @h-mayorquin #1795
- Fix bug where pynwb version was reported as "unknown" to readthedocs @stephprince #1810
- Fixed bug to allow linking of
TimeSeries.data
by setting thedata
constructor argument to anotherTimeSeries
. @oruebel #1766 - Fix recursion error in html representation generation in jupyter notebooks. @stephprince #1831
Documentation and tutorial enhancements
- Add RemFile to streaming tutorial. @bendichter #1761
- Fix typos and improve clarify throughout tutorials. @zm711 #1825
- Fix internal links in docstrings and tutorials. @stephprince #1827
- Add Zarr IO tutorial @bendichter #1834
2.5.0
2.4.0
PyNWB 2.4.0 (July 23, 2023)
Enhancements and minor changes
- Add support for
ExternalResources
. @mavaylon1 #1684 - Update links for making a release. @mavaylon1 #1720
Bug fixes
- Fixed sphinx-gallery setting to correctly display index in the docs with sphinx-gallery>=0.11. @oruebel #1733
Documentation and tutorial enhancements
- Added thumbnail for Optogentics tutorial. @oruebel #1729
- Update and fix errors in tutorials. @bendichter @oruebel