diff options
| author | Scott <[email protected]> | 2022-01-26 21:34:26 -0800 |
|---|---|---|
| committer | Scott <[email protected]> | 2022-01-26 21:34:26 -0800 |
| commit | 36fea7f15ed17150691b5b3ead75450e575229ef (patch) | |
| tree | 883ec076d7abe7683231244d27ca2c603ffcf031 /conversion_utils.py | |
| parent | a0c6b6c28214e0f5167bc25690ada5d83d933086 (diff) | |
Ran black code formatter on everything.
Diffstat (limited to 'conversion_utils.py')
| -rw-r--r-- | conversion_utils.py | 112 |
1 files changed, 60 insertions, 52 deletions
diff --git a/conversion_utils.py b/conversion_utils.py index d2225fd..4326840 100644 --- a/conversion_utils.py +++ b/conversion_utils.py @@ -23,12 +23,15 @@ class Converter(object): each have the potential to overflow, underflow, or introduce floating point errors. Caveat emptor. """ - def __init__(self, - name: str, - category: str, - to_canonical: Callable, # convert to canonical unit - from_canonical: Callable, # convert from canonical unit - unit: str) -> None: + + def __init__( + self, + name: str, + category: str, + to_canonical: Callable, # convert to canonical unit + from_canonical: Callable, # convert from canonical unit + unit: str, + ) -> None: self.name = name self.category = category self.to_canonical_f = to_canonical @@ -47,52 +50,56 @@ class Converter(object): # A catalog of converters. conversion_catalog = { - "Second": Converter("Second", - "time", - lambda s: s, - lambda s: s, - "s"), - "Minute": Converter("Minute", - "time", - lambda m: (m * constants.SECONDS_PER_MINUTE), - lambda s: (s / constants.SECONDS_PER_MINUTE), - "m"), - "Hour": Converter("Hour", - "time", - lambda h: (h * constants.SECONDS_PER_HOUR), - lambda s: (s / constants.SECONDS_PER_HOUR), - "h"), - "Day": Converter("Day", - "time", - lambda d: (d * constants.SECONDS_PER_DAY), - lambda s: (s / constants.SECONDS_PER_DAY), - "d"), - "Week": Converter("Week", - "time", - lambda w: (w * constants.SECONDS_PER_WEEK), - lambda s: (s / constants.SECONDS_PER_WEEK), - "w"), - "Fahrenheit": Converter("Fahrenheit", - "temperature", - lambda f: (f - 32.0) * 0.55555555, - lambda c: c * 1.8 + 32.0, - "°F"), - "Celsius": Converter("Celsius", - "temperature", - lambda c: c, - lambda c: c, - "°C"), - "Kelvin": Converter("Kelvin", - "temperature", - lambda k: k - 273.15, - lambda c: c + 273.15, - "°K"), + "Second": Converter("Second", "time", lambda s: s, lambda s: s, "s"), + "Minute": Converter( + "Minute", + "time", + lambda m: (m * constants.SECONDS_PER_MINUTE), + lambda s: (s / constants.SECONDS_PER_MINUTE), + "m", + ), + "Hour": Converter( + "Hour", + "time", + lambda h: (h * constants.SECONDS_PER_HOUR), + lambda s: (s / constants.SECONDS_PER_HOUR), + "h", + ), + "Day": Converter( + "Day", + "time", + lambda d: (d * constants.SECONDS_PER_DAY), + lambda s: (s / constants.SECONDS_PER_DAY), + "d", + ), + "Week": Converter( + "Week", + "time", + lambda w: (w * constants.SECONDS_PER_WEEK), + lambda s: (s / constants.SECONDS_PER_WEEK), + "w", + ), + "Fahrenheit": Converter( + "Fahrenheit", + "temperature", + lambda f: (f - 32.0) * 0.55555555, + lambda c: c * 1.8 + 32.0, + "°F", + ), + "Celsius": Converter( + "Celsius", "temperature", lambda c: c, lambda c: c, "°C" + ), + "Kelvin": Converter( + "Kelvin", + "temperature", + lambda k: k - 273.15, + lambda c: c + 273.15, + "°K", + ), } -def convert(magnitude: Number, - from_thing: str, - to_thing: str) -> float: +def convert(magnitude: Number, 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: @@ -102,9 +109,9 @@ def convert(magnitude: Number, return _convert(magnitude, src, dst) -def _convert(magnitude: Number, - from_unit: Converter, - to_unit: Converter) -> float: +def _convert( + magnitude: Number, from_unit: Converter, to_unit: Converter +) -> float: canonical = from_unit.to_canonical(magnitude) converted = to_unit.from_canonical(canonical) return float(converted) @@ -332,4 +339,5 @@ def c_to_f(temp_c: float) -> float: if __name__ == '__main__': import doctest + doctest.testmod() |
