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))
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, )
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)
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
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))
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)
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))