Skip to content

Commit

Permalink
Update deprecations (#2011)
Browse files Browse the repository at this point in the history
* update deprecated classes and methods

* update deprecation warnings

* update tests for deprecated classes and functions

* fix warnings and formatting

* add scratch tests and deprecations

* keep function behavior for deprecation warnings

* update CHANGELOG.md

* add tests for deprecations

* update scratch tutorial

* skip deprecated gallery examples

* update CHANGELOG.md

* remove old icephys tutorial

* add pynwb 4.0 deprecation info

* add error on new pass on construct method

* remove warnings on construct for deprecations

* fix formatting

* update hdmf-zarr url

* Apply suggestions from code review

Co-authored-by: Ryan Ly <[email protected]>

* Update src/pynwb/core.py

Co-authored-by: Ryan Ly <[email protected]>

* add code review suggestions

* add catch for extra warning

* remove unused variable

---------

Co-authored-by: Ryan Ly <[email protected]>
  • Loading branch information
stephprince and rly authored Dec 23, 2024
1 parent b653c9c commit e47cd5a
Show file tree
Hide file tree
Showing 24 changed files with 560 additions and 629 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@

## PyNWB 3.0.0 (Upcoming)

### 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`` and ``ProcessingModule.add_data_interface`` are replaced by ``ProcessingModule.add``
- ``ProcessingModule.get_container`` and ``ProcessingModule.get_data_interface`` are replaced by ``ProcessingModule.get``
- ``ScratchData.notes`` is deprecated. Use ``ScratchData.description`` instead.
- ``NWBFile.ic_electrodes`` is deprecated. Use ``NWBFile.icephys_electrodes`` instead.
- ``NWBFile.ec_electrodes`` is deprecated. Use ``NWBFile.electrodes`` instead.
- ``NWBFile.icephys_filtering`` is deprecated. Use ``IntracellularElectrode.filtering`` instead.
- ``NWBFile.modules`` is deprecated. Use ``NWBFile.processing`` instead.
- ``ImageSeries.format`` is fixed to 'external' if an external file is provided.
- ``ImageSeries.bits_per_pixel`` is deprecated.
- ``ImagingPlane.manifold``, ``ImagingPlane.conversion`` and ``ImagingPlane.unit`` are deprecated. Use ``ImagingPlane.origin_coords`` and ``ImagingPlane.grid_spacing`` instead.
- ``IndexSeries.unit`` is fixed to "N\A".
- ``IndexSeries.indexed_timeseries`` is deprecated. Use ``IndexSeries.indexed_images`` instead.
- The following deprecated methods have been removed:
- ``NWBFile.add_ic_electrode`` is removed. Use ``NWBFile.add_icephys_electrode`` instead.
- ``NWBFile.create_ic_electrode`` is removed. Use ``NWBFile.create_icephys_electrode`` instead.
- ``NWBFile.get_ic_electrode`` is removed. Use ``NWBFile.get_icephys_electrode`` instead.
- ``pynwb._get_resources`` is removed.

### Enhancements and minor changes
- Added support for NWB schema 2.8.0. @rly [#2001](https://github.com/NeurodataWithoutBorders/pynwb/pull/2001)
- Removed `SpatialSeries.bounds` field that was not functional. This will be fixed in a future release. @rly [#1907](https://github.com/NeurodataWithoutBorders/pynwb/pull/1907), [#1996](https://github.com/NeurodataWithoutBorders/pynwb/pull/1996)
Expand Down
239 changes: 0 additions & 239 deletions docs/gallery/domain/icephys.py

This file was deleted.

2 changes: 1 addition & 1 deletion docs/gallery/general/scratch.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
# Now lets do an analysis for which we do not have a specification, but we would like to store
# the results for.

filt_ts = nwb_scratch.modules["filtering_module"]["filtered_timeseries"]
filt_ts = nwb_scratch.processing["filtering_module"]["filtered_timeseries"]

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

Expand Down
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def __call__(self, filename):
'nwbwidgets': ("https://nwb-widgets.readthedocs.io/en/latest/", None),
'nwb-overview': ("https://nwb-overview.readthedocs.io/en/latest/", None),
'zarr': ("https://zarr.readthedocs.io/en/stable/", None),
'hdmf-zarr': ("https://hdmf-zarr.readthedocs.io/en/latest/", None),
'hdmf-zarr': ("https://hdmf-zarr.readthedocs.io/en/stable/", None),
'numcodecs': ("https://numcodecs.readthedocs.io/en/latest/", None),
}

Expand All @@ -161,7 +161,7 @@ def __call__(self, filename):
'hdmf-docs': ('https://hdmf.readthedocs.io/en/stable/%s', '%s'),
'dandi': ('https://www.dandiarchive.org/%s', '%s'),
"nwbinspector": ("https://nwbinspector.readthedocs.io/en/dev/%s", "%s"),
'hdmf-zarr': ('https://hdmf-zarr.readthedocs.io/en/latest/%s', '%s'),
'hdmf-zarr': ('https://hdmf-zarr.readthedocs.io/en/stable/%s', '%s'),
}

nitpicky = True
Expand Down
6 changes: 0 additions & 6 deletions src/pynwb/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,6 @@ def __get_resources() -> dict:
return ret


def _get_resources():
# LEGACY: Needed to support legacy implementation.
# TODO: Remove this in PyNWB 3.0.
warn("The function '_get_resources' is deprecated and will be removed in a future release.", DeprecationWarning)
return __get_resources()


# a global type map
global __TYPE_MAP
Expand Down
9 changes: 4 additions & 5 deletions src/pynwb/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,26 +51,25 @@ def add_container(self, **kwargs):
'''
Add an NWBContainer to this ProcessingModule
'''
warn(PendingDeprecationWarning('add_container will be replaced by add'))
warn("add_container is deprecated and will be removed in PyNWB 4.0. Use add instead.", DeprecationWarning)
self.add(kwargs['container'])

@docval({'name': 'container_name', 'type': str, 'doc': 'the name of the NWBContainer to retrieve'})
def get_container(self, **kwargs):
'''
Retrieve an NWBContainer from this ProcessingModule
'''
warn(PendingDeprecationWarning('get_container will be replaced by get'))
warn('get_container is deprecated and will be removed in PyNWB 4.0. Use get instead.', DeprecationWarning)
return self.get(kwargs['container_name'])

@docval({'name': 'NWBDataInterface', 'type': (NWBDataInterface, DynamicTable),
'doc': 'the NWBDataInterface to add to this Module'})
def add_data_interface(self, **kwargs):
warn(PendingDeprecationWarning('add_data_interface will be replaced by add'))
self.add(kwargs['NWBDataInterface'])
warn('add_data_interface is deprecated and will be removed in PyNWB 4.0. Use add instead.', DeprecationWarning)

@docval({'name': 'data_interface_name', 'type': str, 'doc': 'the name of the NWBContainer to retrieve'})
def get_data_interface(self, **kwargs):
warn(PendingDeprecationWarning('get_data_interface will be replaced by get'))
warn('get_data_interface is deprecated and will be removed in PyNWB 4.0. Use get instead.', DeprecationWarning)
return self.get(kwargs['data_interface_name'])


Expand Down
Loading

0 comments on commit e47cd5a

Please sign in to comment.