From 944d8619c533a8b296c92b8128cc6324b60dd331 Mon Sep 17 00:00:00 2001 From: rly Date: Thu, 27 Jun 2024 16:48:21 -0700 Subject: [PATCH] Change field name and fix docval dtype --- CHANGELOG.md | 2 +- docs/gallery/domain/plot_behavior.py | 4 ++-- src/pynwb/behavior.py | 8 ++++---- tests/integration/hdf5/test_behavior.py | 2 +- tests/unit/test_behavior.py | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 539d03776..1ba35ac50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ ### Bug fixes - Fixed use of `channel_conversion` in `TimeSeries` `get_data_in_units`. @rohanshah [1923](https://github.com/NeurodataWithoutBorders/pynwb/pull/1923) -- Fix support for `bounds` field to `SpatialSeries` to set optional boundary range (min, max) for each dimension of data. @rly [#1907](https://github.com/NeurodataWithoutBorders/pynwb/pull/1907) +- Fix support for `data__bounds` field to `SpatialSeries` to set optional boundary range (min, max) for each dimension of data. @rly [#1907](https://github.com/NeurodataWithoutBorders/pynwb/pull/1907) ## PyNWB 2.8.0 (May 28, 2024) diff --git a/docs/gallery/domain/plot_behavior.py b/docs/gallery/domain/plot_behavior.py index 35fbae81f..8d5b38d2a 100644 --- a/docs/gallery/domain/plot_behavior.py +++ b/docs/gallery/domain/plot_behavior.py @@ -105,7 +105,7 @@ # # For position data ``reference_frame`` indicates the zero-position, e.g. # the 0,0 point might be the bottom-left corner of an enclosure, as viewed from the tracking camera. -# In :py:class:`~pynwb.behavior.SpatialSeries`, the ``bounds`` field allows the user to set +# In :py:class:`~pynwb.behavior.SpatialSeries`, the ``data__bounds`` field allows the user to set # the boundary range, i.e., (min, max), for each dimension of ``data``. The units are the same as in ``data``. # This field does not enforce a boundary on the dataset itself. @@ -115,7 +115,7 @@ name="SpatialSeries", description="Position (x, y) in an open field.", data=position_data, - bounds=[(0,50), (0,50)], + data__bounds=[(0,50), (0,50)], timestamps=timestamps, reference_frame="(0,0) is bottom left corner", ) diff --git a/src/pynwb/behavior.py b/src/pynwb/behavior.py index aac59f162..1b9137a0e 100644 --- a/src/pynwb/behavior.py +++ b/src/pynwb/behavior.py @@ -20,13 +20,13 @@ class SpatialSeries(TimeSeries): tracking camera. The unit of data will indicate how to interpret SpatialSeries values. """ - __nwbfields__ = ('bounds', 'reference_frame',) + __nwbfields__ = ('data__bounds', 'reference_frame',) @docval(*get_docval(TimeSeries.__init__, 'name'), # required {'name': 'data', 'type': ('array_data', 'data', TimeSeries), 'shape': ((None, ), (None, None)), # required 'doc': ('The data values. Can be 1D or 2D. The first dimension must be time. If 2D, there can be 1, 2, ' 'or 3 columns, which represent x, y, and z.')}, - {'name': 'bounds', 'type': list, 'shape': ((1, 2), (2, 2), (3, 2)), 'default': None, + {'name': 'data__bounds', 'type': ('data', 'array_data'), 'shape': ((1, 2), (2, 2), (3, 2)), 'default': None, 'doc': 'The boundary range (min, max) for each dimension of data.'}, {'name': 'reference_frame', 'type': str, # required 'doc': 'description defining what the zero-position is'}, @@ -38,7 +38,7 @@ def __init__(self, **kwargs): """ Create a SpatialSeries TimeSeries dataset """ - name, data, bounds, reference_frame, unit = popargs('name', 'data', 'bounds', 'reference_frame', 'unit', kwargs) + name, data, data__bounds, reference_frame, unit = popargs('name', 'data', 'data__bounds', 'reference_frame', 'unit', kwargs) super().__init__(name, data, unit, **kwargs) # NWB 2.5 restricts length of second dimension to be <= 3 @@ -49,7 +49,7 @@ def __init__(self, **kwargs): "The second dimension should have length <= 3 to represent at most x, y, z." % (name, str(data_shape))) - self.bounds = bounds + self.data__bounds = data__bounds self.reference_frame = reference_frame @staticmethod diff --git a/tests/integration/hdf5/test_behavior.py b/tests/integration/hdf5/test_behavior.py index d4b230bcc..1525c43c9 100644 --- a/tests/integration/hdf5/test_behavior.py +++ b/tests/integration/hdf5/test_behavior.py @@ -11,7 +11,7 @@ def setUpContainer(self): return SpatialSeries( name='test_sS', data=np.ones((3, 2)), - bounds=[(-1,1),(-1,1),(-1,1)], + data__bounds=[(-1,1),(-1,1),(-1,1)], reference_frame='reference_frame', timestamps=[1., 2., 3.] ) diff --git a/tests/unit/test_behavior.py b/tests/unit/test_behavior.py index 6bcf1a9eb..4d30ca57d 100644 --- a/tests/unit/test_behavior.py +++ b/tests/unit/test_behavior.py @@ -12,13 +12,13 @@ def test_init(self): sS = SpatialSeries( name='test_sS', data=np.ones((3, 2)), - bounds=[(-1,1),(-1,1),(-1,1)], + data__bounds=[(-1,1),(-1,1),(-1,1)], reference_frame='reference_frame', timestamps=[1., 2., 3.] ) self.assertEqual(sS.name, 'test_sS') self.assertEqual(sS.unit, 'meters') - self.assertEqual(sS.bounds, [(-1,1),(-1,1),(-1,1)]) + self.assertEqual(sS.data__bounds, [(-1,1),(-1,1),(-1,1)]) self.assertEqual(sS.reference_frame, 'reference_frame') def test_set_unit(self):