summaryrefslogtreecommitdiff
path: root/conversion_utils.py
diff options
context:
space:
mode:
authorScott <[email protected]>2022-02-02 11:09:18 -0800
committerScott <[email protected]>2022-02-02 11:09:18 -0800
commit5317c50ce7a96a37acfab3800c0935580766dbbf (patch)
tree2da99b27342a873e0a8fe0e3d49fa1bec1637e79 /conversion_utils.py
parent1ce11b3c28d175b6dcbfea9cf6367081f049c5a9 (diff)
mypy clean!
Diffstat (limited to 'conversion_utils.py')
-rw-r--r--conversion_utils.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/conversion_utils.py b/conversion_utils.py
index 684edc0..8eaecd5 100644
--- a/conversion_utils.py
+++ b/conversion_utils.py
@@ -1,7 +1,6 @@
#!/usr/bin/env python3
-from numbers import Number
-from typing import Callable
+from typing import Callable, SupportsFloat
import constants
@@ -38,10 +37,10 @@ class Converter(object):
self.from_canonical_f = from_canonical
self.unit = unit
- def to_canonical(self, n: Number) -> Number:
+ def to_canonical(self, n: SupportsFloat) -> SupportsFloat:
return self.to_canonical_f(n)
- def from_canonical(self, n: Number) -> Number:
+ def from_canonical(self, n: SupportsFloat) -> SupportsFloat:
return self.from_canonical_f(n)
def unit_suffix(self) -> str:
@@ -97,7 +96,7 @@ conversion_catalog = {
}
-def convert(magnitude: Number, from_thing: str, to_thing: str) -> float:
+def convert(magnitude: SupportsFloat, from_thing: str, to_thing: str) -> float:
src = conversion_catalog.get(from_thing, None)
dst = conversion_catalog.get(to_thing, None)
if src is None or dst is None:
@@ -107,7 +106,9 @@ def convert(magnitude: Number, from_thing: str, to_thing: str) -> float:
return _convert(magnitude, src, dst)
-def _convert(magnitude: Number, from_unit: Converter, to_unit: Converter) -> float:
+def _convert(
+ magnitude: SupportsFloat, from_unit: Converter, to_unit: Converter
+) -> float:
canonical = from_unit.to_canonical(magnitude)
converted = to_unit.from_canonical(canonical)
return float(converted)