def parse_stats_unit(unit: str): if unit is None: return "" unit = re.search(r".*[^\]]", unit).group() if unit == "s": return "s" elif unit == "%": return "%" elif unit == "Requests": return "requests" else: return parse_unit(unit)
def __init__(self, trace): try: self.iops = float(trace["throughput"]["value"]) self.workset = Size(float(trace["workset"]["value"]), Unit.Blocks512) bandwidth_unit = parse_unit( trace["bandwidth"]["unit"].split("/")[0]) bandwidth_value = float(trace["bandwidth"]["value"]) self.bandwidth_per_sec = Size(bandwidth_value, bandwidth_unit) except KeyError: self.iops = 0 self.workset = Size(0) self.bandwidth_per_sec = Size(0) if "write invalidation factor" in trace: self.wif = float(trace["write invalidation factor"]["value"]) else: self.wif = None