我们从Python开源项目中,提取了以下5个代码示例,用于说明如何使用voluptuous.In()。
def _load_config(filename): """Load configuration.""" if not os.path.isfile(filename): return {} try: with open(filename, 'r') as fdesc: inp = fdesc.read() # In case empty file if not inp: return {} return json.loads(inp) except (IOError, ValueError) as error: _LOGGER.error('Reading config file %s failed: %s', filename, error) return None
def _load_config(filename): """Load configuration.""" if not os.path.isfile(filename): return {} try: with open(filename, "r") as fdesc: inp = fdesc.read() # In case empty file if not inp: return {} return json.loads(inp) except (IOError, ValueError) as error: _LOGGER.error("Reading config file %s failed: %s", filename, error) return None
def enum(enumClass): """Create validator for specified enum.""" return vol.All(vol.In(enumClass.__members__), enumClass.__getitem__)
def _state_variable_create_schema(self, type_info): # construct validators validators = [] data_type = type_info['data_type_python'] validators.append(data_type) if 'allowed_values' in type_info: allowed_values = type_info['allowed_values'] in_ = vol.In(allowed_values) # coerce allowed values? assume always string for now validators.append(in_) if 'allowed_value_range' in type_info: min_ = type_info['allowed_value_range'].get('min', None) max_ = type_info['allowed_value_range'].get('max', None) min_ = data_type(min_) max_ = data_type(max_) range_ = vol.Range(min=min_, max=max_) validators.append(range_) # construct key key = vol.Required('value') if 'default_value' in type_info: default_value = type_info['default_value'] if data_type == bool: default_value = default_value == '1' else: default_value = data_type(default_value) key.default = default_value return vol.Schema({key: vol.All(*validators)})