Example #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)
Example #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