示例#1
0
 def convert_config_value(self, value, label):
     try:
         if self.item_type == "str":
             if isinstance(value, unicode):
                 return value
             else:
                 return str(value)
         elif self.item_type == "int":
             return int(value)
         elif self.item_type == "long":
             return long(value)
         elif self.item_type == "float":
             return float(value)
         elif self.item_type == "complex":
             return complex(value)
         else:
             raise YapconfItemError(
                 "Do not know how to convert type {0} "
                 "for {1} found in {2}".format(self.item_type, self.name, label)
             )
     except (TypeError, ValueError) as ex:
         raise YapconfValueError(
             "Tried to convert {0} to {1} but got an "
             "error instead. Found in {2}. Error "
             "Message: {3}".format(self.name, self.item_type, label, ex),
             ex,
         )
示例#2
0
    def _validate(self):
        if self.separator in self.name:
            raise YapconfItemError("Cannot have a name with {0} in it. Either "
                                   "choose a different name or choose a "
                                   "different separator.".format(
                                       self.separator))

        if self.item_type not in TYPES:
            raise YapconfItemError("Invalid type provided ({0}) valid types "
                                   "are: {1}".format(self.item_type, TYPES))

        if self.cli_short_name and len(self.cli_short_name) != 1:
            raise YapconfItemError("CLI Short name ({0}) can only be a single "
                                   "character.".format(self.cli_short_name))
        elif self.cli_short_name == '-':
            raise YapconfItemError("CLI Short name cannot be '-'")

        if self.default:
            self._validate_value(self.default)
示例#3
0
 def _get_argparse_type(self):
     if self.item_type == 'str':
         return str
     elif self.item_type == 'int':
         return int
     elif self.item_type == 'long':
         return long
     elif self.item_type == 'float':
         return float
     elif self.item_type == 'complex':
         return complex
     else:
         raise YapconfItemError("Do not know how to generate CLI "
                                "type for {0}".format(self.item_type))
示例#4
0
 def _get_argparse_type(self):
     if self.item_type == "str":
         return str
     elif self.item_type == "int":
         return int
     elif self.item_type == "long":
         return long
     elif self.item_type == "float":
         return float
     elif self.item_type == "complex":
         return complex
     else:
         raise YapconfItemError(
             "Do not know how to generate CLI " "type for {0}".format(self.item_type)
         )
示例#5
0
 def convert_config_value(self, value, label):
     try:
         if self.item_type == 'str':
             return str(value)
         elif self.item_type == 'int':
             return int(value)
         elif self.item_type == 'long':
             return long(value)
         elif self.item_type == 'float':
             return float(value)
         elif self.item_type == 'complex':
             return complex(value)
         else:
             raise YapconfItemError("Do not know how to convert type {0} "
                                    "for {1} found in {2}".format(
                                        self.item_type, self.name, label))
     except (TypeError, ValueError) as ex:
         raise YapconfValueError(
             "Tried to convert {0} to {1} but got an "
             "error instead. Found in {2}. Error "
             "Message: {3}".format(self.name, self.item_type, label, ex),
             ex)