Skip to content

build(deps): update pynwb requirement from <4,>=3.1 to >=3.1,<5 - #7

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pynwb-gte-3.1-and-lt-5
Open

build(deps): update pynwb requirement from <4,>=3.1 to >=3.1,<5#7
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/pynwb-gte-3.1-and-lt-5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 23, 2026

Copy link
Copy Markdown

Updates the requirements on pynwb to permit the latest version.

Release notes

Sourced from pynwb's releases.

4.0.0

Removed

  • Removed functionality that was deprecated with a "will be removed in PyNWB 4.0" notice. @​rly #2210
    • ProcessingModule.add_container, get_container, add_data_interface, and get_data_interface. Use add and get instead.
    • The extensions argument of get_type_map, get_manager, and NWBHDF5IO. Load cached namespaces from the file or pass a prebuilt manager instead.
    • The notes argument and notes property of ScratchData. Use description instead.
    • The notes and table_description arguments of NWBFile.add_scratch. Use description instead.
    • The ic_electrodes argument of NWBFile. Use icephys_electrodes instead.
    • The paths argument of pynwb.validate. Use path and call validate once per file instead.
  • Made NWBFile.icephys_filtering read-only. Use IntracellularElectrode.filtering instead. The legacy /general/intracellular_ephys/filtering value is still read from older files. @​rly #2210

Changed

  • Consolidated dependency declarations into pyproject.toml and removed the requirements.txt, requirements-dev.txt, requirements-opt.txt, requirements-doc.txt, and requirements-min.txt files. Added user-installable zarr and termset optional-dependency extras (e.g. pip install pynwb[zarr]), and declared development dependencies as PEP 735 [dependency-groups] (test, stream, docs). tox now installs dependencies via extras and dependency groups, with minimum-version testing using uv pip install --resolution lowest-direct. Install development dependencies with pip install --group test --group docs -e ".[zarr,termset]". @​rly #2205
  • Deprecated NWBGroupSpec.add_group and NWBGroupSpec.add_dataset. Use NWBGroupSpec.set_group, NWBGroupSpec.set_dataset, or pass the group or dataset to the NWBGroupSpec constructor. @​rly #2138
  • Fixed TimeSeries.get_timestamps() to handle numpy array timestamps when they are set. @​pauladkisson #2181
  • Fixed Units.waveform_rate and Units.waveform_unit to also map to the sampling_rate and unit attributes of the waveforms column on write and read, so waveform sampling metadata round-trips for Units tables that contain only waveforms (without waveform_mean or waveform_sd). @​ehennestad #2183
  • Added Python 3.14 support. @​bendichter, @​rly #2168
  • Bumped the minimum HDMF dependency to >=6.1.0 for pandas 3.0 compatibility. See the HDMF changelog for the full list of changes in HDMF 6.1.0. @​rly #2171, #2208
  • Deprecated Python 3.9 support. (EOL was Oct 31, 2025) @​bendichter #2141
  • Deprecated BehavioralEvents and AnnotationSeries in favor of using an EventsTable in NWBFile.events. Creating a new instance of either type now emits a UserWarning; reading existing files containing these types continues to work without warnings. @​rly #2156

Added

  • Added optional source_description attribute to EventsTable for a short free-text label of where events originated (e.g., "Acquisition system", "Manual video review"). Added NWBFile.merge_events_tables() to merge a list of EventsTable objects into a single DataFrame sorted by timestamp with a source_events_table column. Added NWBFile.get_all_events() to merge all tables in NWBFile.events. @​rly #2192
  • Added support for NWB Schema 2.10.0 (NWBEP001), which introduces the EventsTable, TimestampVectorData, and DurationVectorData neurodata types and a new events group on NWBFile for storing EventsTable instances. Use NWBFile.add_events_table() to add an EventsTable and NWBFile.get_events_table() to retrieve one. NWB Schema 2.10.0 also incorporates hdmf-common-schema 1.9.0, which adds the MeaningsTable neurodata type (re-exported via hdmf.common) and support for attaching one or more MeaningsTable instances to a DynamicTable to document the meanings of values in a column. See the NWB Schema release notes and the hdmf-common-schema release notes for the full list of changes. @​rly #2156
  • Added support for HERD (HDMF External Resources Data Structure) as the external_resources field on NWBFile, enabling users to associate external resource annotations (e.g., ontology term mappings) with their NWB files. link_resources is inherited from HERDManager in hdmf. @​mavaylon1, @​rly #2111
  • NWBFile.get_external_resources() returns the file's existing HERD or creates and attaches a new empty one if the file does not have external resources yet, mirroring get_intracellular_recordings(). @​rly #2200
  • Added get_starting_time() and get_duration() methods to TimeSeries to get the starting time and duration of the time series. @​h-mayorquin #2146
  • Added get_starting_time() and get_duration() methods to TimeIntervals to get the earliest start time and total duration (span from earliest start to latest stop) of all intervals. @​h-mayorquin #2146
  • Added get_starting_time() and get_duration() methods to Units to get the earliest spike time and total duration (span from earliest to latest spike) across all units. @​h-mayorquin #2164
  • Added pandas 3.0 compatibility. NWBFile.add_scratch now accepts a pandas.Series or a pandas ExtensionArray (e.g., StringArray and ArrowStringArray) as data, which is normalized to numpy when constructing ScratchData. This relies on the coercion added in hdmf-dev/hdmf#1469 (HDMF 6.1.0), which also makes the inherited PyArrow-backed string columns from pandas 3 DataFrames work across TimeSeries subclasses, add_unit, add_electrode, and DynamicTable.from_dataframe. The pandas<3 cap has been lifted. @​rly #2208

Fixed

  • Fixed ROS3 streaming and added an aws_region argument to validate so the AWS region can be passed through when validating a file opened with the ros3 driver. HDF5 2.1.0 (h5py 3.16.0) requires the AWS region to be specified when opening an S3 URL with the ros3 driver, so the ROS3 tests and the streaming tutorial now pass aws_region="us-east-2" (the region of the DANDI Archive S3 bucket). @​rly #2201
  • Fixed reading legacy files where Device.model is a string containing / or : (e.g., "MFC_200/250-0.66_40mm"), which previously raised a ValueError. The string is now remapped to a read-only DeviceModel that preserves the original name, with a warning explaining that the file cannot be written or exported until a DeviceModel with a valid name is created. Writing or exporting such a DeviceModel raises a clear error instead of silently corrupting the file. @​rly #2186
  • Fixed invalid CSS properties in documentation assistant toggle that prevented proper positioning on displays ≥1400px wide. @​rly #2151

Documentation and tutorial enhancements

  • Added a tutorial on using HERD to annotate an NWB file with external resources and store it at /general/external_resources, plus a companion example showing how to annotate multiple NWB files streamed from a DANDI dandiset with a single HERD. @​rly, @​mavaylon1 #2200
  • Added pandas.ExtensionArray to nitpick_ignore so the Sphinx build does not fail on the unresolved cross-reference that HDMF's array_data docval macro renders for every type that accepts array data. @​rly #2209
  • Added app.readthedocs.org/projects/pynwb/* to linkcheck_ignore to stop the Sphinx linkcheck CI job from intermittently failing when GitHub Actions runners get throttled by readthedocs. @​h-mayorquin #2191
  • Added documentation for ExternalImage to the images tutorial. @​h-mayorquin #2159
  • Fixed broken and redirecting links in documentation. @​bendichter #2165
  • Added EventsTable examples to the NWB file basics and behavior tutorials. @​rly #2156
  • Added example of setting Units.resolution in the ecephys tutorial. @​h-mayorquin #2174
Changelog

Sourced from pynwb's changelog.

PyNWB 4.0.0 (June 29, 2026)

Removed

  • Removed functionality that was deprecated with a "will be removed in PyNWB 4.0" notice. @​rly #2210
    • ProcessingModule.add_container, get_container, add_data_interface, and get_data_interface. Use add and get instead.
    • The extensions argument of get_type_map, get_manager, and NWBHDF5IO. Load cached namespaces from the file or pass a prebuilt manager instead.
    • The notes argument and notes property of ScratchData. Use description instead.
    • The notes and table_description arguments of NWBFile.add_scratch. Use description instead.
    • The ic_electrodes argument of NWBFile. Use icephys_electrodes instead.
    • The paths argument of pynwb.validate. Use path and call validate once per file instead.
  • Made NWBFile.icephys_filtering read-only. Use IntracellularElectrode.filtering instead. The legacy /general/intracellular_ephys/filtering value is still read from older files. @​rly #2210

Changed

  • Consolidated dependency declarations into pyproject.toml and removed the requirements.txt, requirements-dev.txt, requirements-opt.txt, requirements-doc.txt, and requirements-min.txt files. Added user-installable zarr and termset optional-dependency extras (e.g. pip install pynwb[zarr]), and declared development dependencies as PEP 735 [dependency-groups] (test, stream, docs). tox now installs dependencies via extras and dependency groups, with minimum-version testing using uv pip install --resolution lowest-direct. Install development dependencies with pip install --group test --group docs -e ".[zarr,termset]". @​rly #2205
  • Deprecated NWBGroupSpec.add_group and NWBGroupSpec.add_dataset. Use NWBGroupSpec.set_group, NWBGroupSpec.set_dataset, or pass the group or dataset to the NWBGroupSpec constructor. @​rly #2138
  • Fixed TimeSeries.get_timestamps() to handle numpy array timestamps when they are set. @​pauladkisson #2181
  • Fixed Units.waveform_rate and Units.waveform_unit to also map to the sampling_rate and unit attributes of the waveforms column on write and read, so waveform sampling metadata round-trips for Units tables that contain only waveforms (without waveform_mean or waveform_sd). @​ehennestad #2183
  • Added Python 3.14 support. @​bendichter, @​rly #2168
  • Bumped the minimum HDMF dependency to >=6.1.0 for pandas 3.0 compatibility. See the HDMF changelog for the full list of changes in HDMF 6.1.0. @​rly #2171, #2208
  • Deprecated Python 3.9 support. (EOL was Oct 31, 2025) @​bendichter #2141
  • Deprecated BehavioralEvents and AnnotationSeries in favor of using an EventsTable in NWBFile.events. Creating a new instance of either type now emits a UserWarning; reading existing files containing these types continues to work without warnings. @​rly #2156

Added

  • Added optional source_description attribute to EventsTable for a short free-text label of where events originated (e.g., "Acquisition system", "Manual video review"). Added NWBFile.merge_events_tables() to merge a list of EventsTable objects into a single DataFrame sorted by timestamp with a source_events_table column. Added NWBFile.get_all_events() to merge all tables in NWBFile.events. @​rly #2192
  • Added support for NWB Schema 2.10.0 (NWBEP001), which introduces the EventsTable, TimestampVectorData, and DurationVectorData neurodata types and a new events group on NWBFile for storing EventsTable instances. Use NWBFile.add_events_table() to add an EventsTable and NWBFile.get_events_table() to retrieve one. NWB Schema 2.10.0 also incorporates hdmf-common-schema 1.9.0, which adds the MeaningsTable neurodata type (re-exported via hdmf.common) and support for attaching one or more MeaningsTable instances to a DynamicTable to document the meanings of values in a column. See the NWB Schema release notes and the hdmf-common-schema release notes for the full list of changes. @​rly #2156
  • Added support for HERD (HDMF External Resources Data Structure) as the external_resources field on NWBFile, enabling users to associate external resource annotations (e.g., ontology term mappings) with their NWB files. link_resources is inherited from HERDManager in hdmf. @​mavaylon1, @​rly #2111
  • NWBFile.get_external_resources() returns the file's existing HERD or creates and attaches a new empty one if the file does not have external resources yet, mirroring get_intracellular_recordings(). @​rly #2200
  • Added get_starting_time() and get_duration() methods to TimeSeries to get the starting time and duration of the time series. @​h-mayorquin #2146
  • Added get_starting_time() and get_duration() methods to TimeIntervals to get the earliest start time and total duration (span from earliest start to latest stop) of all intervals. @​h-mayorquin #2146
  • Added get_starting_time() and get_duration() methods to Units to get the earliest spike time and total duration (span from earliest to latest spike) across all units. @​h-mayorquin #2164
  • Added pandas 3.0 compatibility. NWBFile.add_scratch now accepts a pandas.Series or a pandas ExtensionArray (e.g., StringArray and ArrowStringArray) as data, which is normalized to numpy when constructing ScratchData. This relies on the coercion added in hdmf-dev/hdmf#1469 (HDMF 6.1.0), which also makes the inherited PyArrow-backed string columns from pandas 3 DataFrames work across TimeSeries subclasses, add_unit, add_electrode, and DynamicTable.from_dataframe. The pandas<3 cap has been lifted. @​rly #2208

Fixed

  • Fixed ROS3 streaming and added an aws_region argument to validate so the AWS region can be passed through when validating a file opened with the ros3 driver. HDF5 2.1.0 (h5py 3.16.0) requires the AWS region to be specified when opening an S3 URL with the ros3 driver, so the ROS3 tests and the streaming tutorial now pass aws_region="us-east-2" (the region of the DANDI Archive S3 bucket). @​rly #2201
  • Fixed reading legacy files where Device.model is a string containing / or : (e.g., "MFC_200/250-0.66_40mm"), which previously raised a ValueError. The string is now remapped to a read-only DeviceModel that preserves the original name, with a warning explaining that the file cannot be written or exported until a DeviceModel with a valid name is created. Writing or exporting such a DeviceModel raises a clear error instead of silently corrupting the file. @​rly #2186
  • Fixed invalid CSS properties in documentation assistant toggle that prevented proper positioning on displays ≥1400px wide. @​rly #2151

Documentation and tutorial enhancements

  • Added a tutorial on using HERD to annotate an NWB file with external resources and store it at /general/external_resources, plus a companion example showing how to annotate multiple NWB files streamed from a DANDI dandiset with a single HERD. @​rly, @​mavaylon1 #2200
  • Added pandas.ExtensionArray to nitpick_ignore so the Sphinx build does not fail on the unresolved cross-reference that HDMF's array_data docval macro renders for every type that accepts array data. @​rly #2209
  • Added app.readthedocs.org/projects/pynwb/* to linkcheck_ignore to stop the Sphinx linkcheck CI job from intermittently failing when GitHub Actions runners get throttled by readthedocs. @​h-mayorquin #2191
  • Added documentation for ExternalImage to the images tutorial. @​h-mayorquin #2159
  • Fixed broken and redirecting links in documentation. @​bendichter #2165
  • Added EventsTable examples to the NWB file basics and behavior tutorials. @​rly #2156
  • Added example of setting Units.resolution in the ecephys tutorial. @​h-mayorquin #2174

PyNWB 3.1.3 (December 9, 2025)

Added

... (truncated)

Commits
  • 497132b Prepare for release of PyNWB 4.0.0 (#2201)
  • ed4388f Remove deprecated functionality marked for removal in PyNWB 4.0 (#2211)
  • 1f9e1c4 Add HERD tutorial and DANDI streaming example (#2200)
  • f7274a6 Accept pandas Series/ExtensionArray in add_scratch; lift pandas<3 cap (#2208)
  • dc3ff5e Ignore pandas.ExtensionArray cross-reference in Sphinx build (#2209)
  • 36097a3 Consolidate dependencies into pyproject.toml; drop requirements*.txt (#2205)
  • 36cc7c3 docs: Clarify custom column keyword arguments in ecephys tutorial (#2176)
  • 4baeb62 In test_import_structure, don’t check dunder names (#2207)
  • 2e38a0c Address GitHub Actions deprecation warnings (#2203)
  • 483a4f1 Update nwb-schema submodule to NWB 2.10.0 (#2199)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [pynwb](https://github.com/NeurodataWithoutBorders/pynwb) to permit the latest version.
- [Release notes](https://github.com/NeurodataWithoutBorders/pynwb/releases)
- [Changelog](https://github.com/NeurodataWithoutBorders/pynwb/blob/dev/CHANGELOG.md)
- [Commits](NeurodataWithoutBorders/pynwb@3.1.0...4.0.0)

---
updated-dependencies:
- dependency-name: pynwb
  dependency-version: 4.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants