Various changes.
[python_utils.git] / conversion_utils.py
index 10908c54637c143ab6d58da1db95c4ec451c5e6e..b83d62e4daf50ec76850e047672069a8e9f47c7b 100644 (file)
@@ -15,15 +15,15 @@ class Converter(object):
                  unit: str) -> None:
         self.name = name
         self.category = category
-        self.to_canonical = to_canonical
-        self.from_canonical = from_canonical
+        self.to_canonical_f = to_canonical
+        self.from_canonical_f = from_canonical
         self.unit = unit
 
     def to_canonical(self, n: Number) -> Number:
-        return self.to_canonical(n)
+        return self.to_canonical_f(n)
 
     def from_canonical(self, n: Number) -> Number:
-        return self.from_canonical(n)
+        return self.from_canonical_f(n)
 
     def unit_suffix(self) -> str:
         return self.unit
@@ -75,7 +75,7 @@ conversion_catalog = {
 
 def convert(magnitude: Number,
             from_thing: str,
-            to_thing: str) -> Number:
+            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:
@@ -87,10 +87,10 @@ def convert(magnitude: Number,
 
 def _convert(magnitude: Number,
              from_unit: Converter,
-             to_unit: Converter) -> Number:
+             to_unit: Converter) -> float:
     canonical = from_unit.to_canonical(magnitude)
     converted = to_unit.from_canonical(canonical)
-    return converted
+    return float(converted)
 
 
 def sec_to_min(s: float) -> float: