Module rpps.base.frequency
Float/Int to Freq converter
Classes
class Frequency (freq=0)
-
Helper for frequencies
Expand source code
class Frequency: """Helper for frequencies""" def __init__(self, freq=0): self.freq = freq self.mult = 1 self.label = "" if isinstance(freq, str): if not re.match(r"((\d+\.?)?\d+?)((e\d+)|([hkmg]))", freq): print("Invalid frequency string!") print("It must be provided in scientific notation") print(" ##.#e# - re: '((\\d+\\.?)?\\d+?)(e\\d+)'") print("Or with units") print(" ##.#m - re: '((\\d+\\.?)?\\d+?)[hkmg]'") exit(1) def __str__(self): return self.str def default(self): return self.str @property def raw(self): """Return the raw freq value""" return self.freq @property def short(self): """Return the shorthand freq""" return self.freq / self.mult @property def str(self): """Return the shorthand freq and unit""" return format(self.freq / self.mult, ".2f") + self.unit @property def unit(self): """Return the frequency unit""" return self.label.upper() + "Hz" def init(self, freq=None): """Initialize the frequency object""" if freq is not None: self.freq = freq # input("Initializing: " + str(self.freq)) if isinstance(self.freq, str): if "e" in self.freq: freq = self.freq.split("e") mult = int("1" + (int(freq[1]) * "0")) freq = float(freq[0]) # input("scinot: got " + str(freq) + " * " + str(mult)) self.freq = freq * mult self.init() return for i, l in enumerate(["h", "k", "m", "g"]): if self.freq.endswith(l): self.mult = int("1" + (i * "000")) self.freq = float(self.freq[:-1]) self.label = l return else: for i, l in enumerate(["", "k", "m", "g"]): mult = int("1" + (i * "000")) cur_freq = self.freq / mult if cur_freq < 1000: self.mult = mult self.label = l return
Instance variables
prop raw
-
Return the raw freq value
Expand source code
@property def raw(self): """Return the raw freq value""" return self.freq
prop short
-
Return the shorthand freq
Expand source code
@property def short(self): """Return the shorthand freq""" return self.freq / self.mult
prop str
-
Return the shorthand freq and unit
Expand source code
@property def str(self): """Return the shorthand freq and unit""" return format(self.freq / self.mult, ".2f") + self.unit
prop unit
-
Return the frequency unit
Expand source code
@property def unit(self): """Return the frequency unit""" return self.label.upper() + "Hz"
Methods
def default(self)
def init(self, freq=None)
-
Initialize the frequency object