Skip to content

Commit b0c44cc

Browse files
BradyPlandenkratmanbrosaplanellaagriyakhetarpal
committed
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 <[email protected]> --------- Co-authored-by: Eric G. Kratz <[email protected]> Co-authored-by: Ferran Brosa Planella <[email protected]> Co-authored-by: Agriya Khetarpal <[email protected]>
1 parent 2442907 commit b0c44cc

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

pybamm/util.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,22 @@ def __getitem__(self, key):
5757
try:
5858
return super().__getitem__(key)
5959
except KeyError as error:
60-
if "particle diffusivity" in key:
61-
warn(
62-
f"The parameter '{key.replace('particle', 'electrode')}' "
63-
f"has been renamed to '{key}'",
64-
DeprecationWarning,
65-
stacklevel=2,
60+
if "electrode diffusivity" in key or "particle diffusivity" in key:
61+
old_term, new_term = (
62+
("electrode", "particle")
63+
if "electrode diffusivity" in key
64+
else ("particle", "electrode")
6665
)
67-
return super().__getitem__(key.replace("particle", "electrode"))
66+
alternative_key = key.replace(old_term, new_term)
67+
68+
if old_term == "electrode":
69+
warn(
70+
f"The parameter '{alternative_key}' has been renamed to '{key}' and will be removed in a future release. Using '{key}'",
71+
DeprecationWarning,
72+
stacklevel=2,
73+
)
74+
75+
return super().__getitem__(alternative_key)
6876
if key in ["Negative electrode SOC", "Positive electrode SOC"]:
6977
domain = key.split(" ")[0]
7078
raise KeyError(

tests/unit/test_util.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ def test_fuzzy_dict(self):
3636
"SEI current": 3,
3737
"Lithium plating current": 4,
3838
"A dimensional variable [m]": 5,
39+
"Positive particle diffusivity [m2.s-1]": 6,
40+
}
41+
)
42+
d2 = pybamm.FuzzyDict(
43+
{
3944
"Positive electrode diffusivity [m2.s-1]": 6,
4045
}
4146
)
@@ -58,6 +63,16 @@ def test_fuzzy_dict(self):
5863
with self.assertRaisesRegex(KeyError, "Upper voltage"):
5964
d.__getitem__("Open-circuit voltage at 100% SOC [V]")
6065

66+
assert (
67+
d2["Positive particle diffusivity [m2.s-1]"]
68+
== d["Positive particle diffusivity [m2.s-1]"]
69+
)
70+
71+
assert (
72+
d2["Positive electrode diffusivity [m2.s-1]"]
73+
== d["Positive electrode diffusivity [m2.s-1]"]
74+
)
75+
6176
with self.assertWarns(DeprecationWarning):
6277
self.assertEqual(
6378
d["Positive electrode diffusivity [m2.s-1]"],

0 commit comments

Comments
 (0)