diff --git a/brainstate/nn/__init__.py b/brainstate/nn/__init__.py index af2fa80..a933ecb 100644 --- a/brainstate/nn/__init__.py +++ b/brainstate/nn/__init__.py @@ -358,7 +358,6 @@ 'LIFRef': 'brainpy.state.LIFRef', 'ALIF': 'brainpy.state.ALIF', 'LeakyRateReadout': 'brainpy.state.LeakyRateReadout', - 'LeakySpikeReadout': 'brainpy.state.LeakySpikeReadout', 'STP': 'brainpy.state.STP', 'STD': 'brainpy.state.STD', 'Synapse': 'brainpy.state.Synapse', diff --git a/brainstate/nn/_utils_test.py b/brainstate/nn/_utils_test.py index e48d6a3..cc3dc67 100644 --- a/brainstate/nn/_utils_test.py +++ b/brainstate/nn/_utils_test.py @@ -555,6 +555,15 @@ def test_deprecated_name_forwards_to_brainpy(self): self.assertIs(obj, brainpy.state.IF) self.assertTrue(any(issubclass(w.category, DeprecationWarning) for w in caught)) + def test_every_deprecated_name_resolves_in_brainpy(self): + """Every ``_DEPRECATED_NAMES`` target exists in ``brainpy.state``.""" + brainpy = pytest.importorskip("brainpy", exc_type=ImportError) + from brainstate.nn import _DEPRECATED_NAMES + for name, target in _DEPRECATED_NAMES.items(): + with self.subTest(name=name): + self.assertEqual(target, f'brainpy.state.{name}') + self.assertTrue(hasattr(brainpy.state, name)) + def test_unknown_attribute_raises(self): """An unrecognized attribute raises ``AttributeError``.""" with self.assertRaises(AttributeError): diff --git a/requirements-dev.txt b/requirements-dev.txt index ba0697f..84bc20a 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,7 +5,7 @@ numba braintools>=0.3.0 braincell matplotlib -brainpy-state +brainpy>=2.9.0 # test requirements pytest