From 15b4d246222886f8e2e4424271ff515aa14acae2 Mon Sep 17 00:00:00 2001 From: zm711 <92116279+zm711@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:14:04 -0400 Subject: [PATCH 1/2] fix bug discover in neo ci --- quantities/registry.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quantities/registry.py b/quantities/registry.py index 4d6a081..5c8fc50 100644 --- a/quantities/registry.py +++ b/quantities/registry.py @@ -23,6 +23,8 @@ def __getitem__(self, string): all_builtins.remove("bytes") # have to deal with octet as well all_builtins.remove("oct") + # have to remove min which is short for minute + all_builtins.remove("min") for builtin in all_builtins: if builtin in string: raise RuntimeError(f"String parsing error for {string}. Enter a string accepted by quantities") From efc67d99ca88330e6a6ba069c58f1c6648491d2c Mon Sep 17 00:00:00 2001 From: zm711 <92116279+zm711@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:38:00 -0400 Subject: [PATCH 2/2] add test for `min` problem and add comments --- quantities/registry.py | 2 +- quantities/tests/test_arithmetic.py | 6 ++++++ quantities/tests/test_conversion.py | 4 ++++ quantities/units/time.py | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/quantities/registry.py b/quantities/registry.py index 5c8fc50..4f9f3c7 100644 --- a/quantities/registry.py +++ b/quantities/registry.py @@ -27,7 +27,7 @@ def __getitem__(self, string): all_builtins.remove("min") for builtin in all_builtins: if builtin in string: - raise RuntimeError(f"String parsing error for {string}. Enter a string accepted by quantities") + raise RuntimeError(f"String parsing error for `{string}`. Enter a string accepted by quantities") try: return eval(string, self.__context) diff --git a/quantities/tests/test_arithmetic.py b/quantities/tests/test_arithmetic.py index e7e5a05..1b6aeeb 100644 --- a/quantities/tests/test_arithmetic.py +++ b/quantities/tests/test_arithmetic.py @@ -226,6 +226,12 @@ def test_addition(self): [1, 2, 3]*pq.hp + [1, 2, 3]*pq.hp, [2, 4, 6]*pq.hp ) + # add in test with 'min' since this caused issues + # see https://github.com/python-quantities/python-quantities/issues/243 + self.assertQuantityEqual( + Quantity(1, 'min') + Quantity(1, 'min'), + 2*pq.min + ) self.assertRaises(ValueError, op.add, pq.kPa, pq.lb) self.assertRaises(ValueError, op.add, pq.kPa, 10) diff --git a/quantities/tests/test_conversion.py b/quantities/tests/test_conversion.py index b0c848c..7ae0384 100644 --- a/quantities/tests/test_conversion.py +++ b/quantities/tests/test_conversion.py @@ -97,6 +97,10 @@ def test_default_system(self): self.assertQuantityEqual(pq.kg.simplified, 1000*pq.g) self.assertQuantityEqual(pq.m.simplified, 1000*pq.mm) + # test a time default as well as mass and weight + pq.set_default_units('SI') + self.assertQuantityEqual(pq.min.simplified, 60*pq.sec) + class TestUnitInformation(TestCase): def test_si(self): diff --git a/quantities/units/time.py b/quantities/units/time.py index f331545..9fa3505 100644 --- a/quantities/units/time.py +++ b/quantities/units/time.py @@ -64,7 +64,7 @@ 60*s, symbol='min', aliases=['minutes'] -) +) # min is function in python h = hr = hour = UnitTime( 'hour', 60*min,