From b0c44cc8c7c28643e6ed0610f7f9bb0cbf110730 Mon Sep 17 00:00:00 2001 From: Brady Planden <55357039+BradyPlanden@users.noreply.github.com> Date: Tue, 23 Jul 2024 17:00:12 +0100 Subject: [PATCH] Corrects "electrode diffusivity" error catch (#4267) * fix: error catch for electrode diffusivity * refactor: update diffusivity error catch and test * tests: up coverage for diffusivity name catches * Update pybamm/util.py Co-authored-by: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> --------- Co-authored-by: Eric G. Kratz Co-authored-by: Ferran Brosa Planella Co-authored-by: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> --- pybamm/util.py | 22 +++++++++++++++------- tests/unit/test_util.py | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/pybamm/util.py b/pybamm/util.py index 0fe02c835b..130cb5ba48 100644 --- a/pybamm/util.py +++ b/pybamm/util.py @@ -57,14 +57,22 @@ def __getitem__(self, key): try: return super().__getitem__(key) except KeyError as error: - if "particle diffusivity" in key: - warn( - f"The parameter '{key.replace('particle', 'electrode')}' " - f"has been renamed to '{key}'", - DeprecationWarning, - stacklevel=2, + if "electrode diffusivity" in key or "particle diffusivity" in key: + old_term, new_term = ( + ("electrode", "particle") + if "electrode diffusivity" in key + else ("particle", "electrode") ) - return super().__getitem__(key.replace("particle", "electrode")) + alternative_key = key.replace(old_term, new_term) + + if old_term == "electrode": + warn( + f"The parameter '{alternative_key}' has been renamed to '{key}' and will be removed in a future release. Using '{key}'", + DeprecationWarning, + stacklevel=2, + ) + + return super().__getitem__(alternative_key) if key in ["Negative electrode SOC", "Positive electrode SOC"]: domain = key.split(" ")[0] raise KeyError( diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py index 603af50560..d726cf1870 100644 --- a/tests/unit/test_util.py +++ b/tests/unit/test_util.py @@ -36,6 +36,11 @@ def test_fuzzy_dict(self): "SEI current": 3, "Lithium plating current": 4, "A dimensional variable [m]": 5, + "Positive particle diffusivity [m2.s-1]": 6, + } + ) + d2 = pybamm.FuzzyDict( + { "Positive electrode diffusivity [m2.s-1]": 6, } ) @@ -58,6 +63,16 @@ def test_fuzzy_dict(self): with self.assertRaisesRegex(KeyError, "Upper voltage"): d.__getitem__("Open-circuit voltage at 100% SOC [V]") + assert ( + d2["Positive particle diffusivity [m2.s-1]"] + == d["Positive particle diffusivity [m2.s-1]"] + ) + + assert ( + d2["Positive electrode diffusivity [m2.s-1]"] + == d["Positive electrode diffusivity [m2.s-1]"] + ) + with self.assertWarns(DeprecationWarning): self.assertEqual( d["Positive electrode diffusivity [m2.s-1]"],