X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=type%2Frate.py;h=c365848fa0bd2eb1a34916ec5e8071348e0dffdc;hb=c6fca944b41f292b66efaba27ebf3fd0a37956b8;hp=3161131a027171218f297dcc654e28acd851ca27;hpb=4faa994d32223c8d560d9dad0ca90a3f7eb10d6a;p=python_utils.git diff --git a/type/rate.py b/type/rate.py index 3161131..c365848 100644 --- a/type/rate.py +++ b/type/rate.py @@ -1,15 +1,19 @@ #!/usr/bin/env python3 +"""A class to represent a rate of change.""" + from typing import Optional class Rate(object): + """A class to represent a rate of change.""" + def __init__( - self, - multiplier: Optional[float] = None, - *, - percentage: Optional[float] = None, - percent_change: Optional[float] = None, + self, + multiplier: Optional[float] = None, + *, + percentage: Optional[float] = None, + percent_change: Optional[float] = None, ): count = 0 if multiplier is not None: @@ -17,7 +21,7 @@ class Rate(object): multiplier = multiplier.replace('%', '') m = float(multiplier) m /= 100 - self.multiplier = m + self.multiplier: float = m else: self.multiplier = multiplier count += 1 @@ -28,9 +32,7 @@ class Rate(object): self.multiplier = 1.0 + percent_change / 100 count += 1 if count != 1: - raise Exception( - 'Exactly one of percentage, percent_change or multiplier is required.' - ) + raise Exception('Exactly one of percentage, percent_change or multiplier is required.') def apply_to(self, other): return self.__mul__(other) @@ -78,10 +80,7 @@ class Rate(object): def __hash__(self): return self.multiplier - def __repr__(self, - *, - relative=False, - places=3): + def __repr__(self, *, relative=False, places=3): if relative: percentage = (self.multiplier - 1.0) * 100.0 else: