Example #1
0
 def _validate_value(self, value):
     if self.choices and value not in self.choices:
         raise YapconfValueError("Invalid value provided (%s) for %s."
                                 "Valid values are %s" %
                                 (value, self.fq_name, self.choices))
     if self.validator and not self.validator(value):
         raise YapconfValueError('Invalid value provided (%s) for %s.' %
                                 (value, self.fq_name))
Example #2
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,
         )
Example #3
0
 def convert_config_value(self, value, label):
     try:
         value_to_return = []
         for v in value:
             converted_value = self.child.convert_config_value(v, label)
             self.child._validate_value(converted_value)
             value_to_return.append(converted_value)
         return value_to_return
     except (TypeError, ValueError) as ex:
         raise YapconfValueError(
             'Tried to convert "{0}" to a list but '
             'could not iterate over the value. '
             'Invalid item found in {1}'.format(self.name, label), ex)
Example #4
0
 def _find_all_overrides(self, overrides):
     nested_overrides = []
     for label, info in overrides:
         if label == 'ENVIRONMENT':
             if self.env_name in info:
                 self.logger.info(
                     'Found possible value in the '
                     'environment for {0}, but the item is '
                     'a dict. Getting dict values from the '
                     'environment is currently '
                     'unsupported. Skipping this entry.'.format(self.name))
             nested_overrides.append((label, info))
         elif self.name in info:
             if not isinstance(info[self.name], dict):
                 raise YapconfValueError(
                     "Invalid override found in {0}. "
                     "It contained a key {1} which we "
                     "expected to be a dictionary.".format(
                         label, self.name))
             nested_overrides.append((label, info[self.name]))
     return nested_overrides
Example #5
0
    def convert_config_value(self, value, label):
        """Converts all 'Truthy' values to True and 'Falsy' values to False.

        Args:
            value: Value to convert
            label: Label of the config which this item was found.

        Returns:

        """
        if isinstance(value, six.string_types):
            value = value.lower()

        if value in self.TRUTHY_VALUES:
            return True
        elif value in self.FALSY_VALUES:
            return False
        else:
            raise YapconfValueError("Cowardly refusing to interpret "
                                    "config value as a boolean. Name: "
                                    "{0}, Value: {1}".format(self.name, value))
Example #6
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)
Example #7
0
 def _validate_value(self, value):
     if self.choices and value not in self.choices:
         raise YapconfValueError("Invalid value provided (%s)."
                                 "Valid values are %s" %
                                 (value, self.choices))