Exemplo n.º 1
0
 def validate_scalar_unit(self):
     regex = re.compile("([0-9.]+)\s*(\w+)")
     try:
         result = regex.match(str(self.value)).groups()
         validateutils.str_to_num(result[0])
     except Exception:
         raise ValueError(_('"%s" is not a valid scalar-unit') % self.value)
     if result[1].upper() in self.SCALAR_UNIT_DICT.keys():
         return self.value
     raise ValueError(_('"%s" is not a valid scalar-unit') % self.value)
Exemplo n.º 2
0
    def get_num_from_scalar_unit(self, unit=None):
        if unit:
            if unit.upper() not in self.SCALAR_UNIT_DICT.keys():
                raise ValueError(_('input unit "%s" is not a valid unit') % unit)
        else:
            unit = self.SCALAR_UNIT_DEFAULT
        self.validate_scalar_unit()

        regex = re.compile("([0-9.]+)\s*(\w+)")
        result = regex.match(str(self.value)).groups()
        converted = (
            float(validateutils.str_to_num(result[0]))
            * self.SCALAR_UNIT_DICT[result[1].upper()]
            / self.SCALAR_UNIT_DICT[unit.upper()]
        )
        if converted - int(converted) < 0.0000000000001:
            converted = int(converted)
        return converted