def test_ordered_dict_value_validator(): # pylint: disable=invalid-name """Test ordered_dict validator.""" schema = vol.Schema(cv.ordered_dict(cv.string)) with pytest.raises(vol.Invalid): schema({'hello': None}) schema({'hello': 'world'}) schema = vol.Schema(cv.ordered_dict(int)) with pytest.raises(vol.Invalid): schema({'hello': 'world'}) schema({'hello': 5})
def test_ordered_dict_value_validator(): # pylint: disable=invalid-name """Test ordered_dict validator.""" schema = vol.Schema(cv.ordered_dict(cv.string)) with pytest.raises(vol.Invalid): schema({'hello': None}) schema({'hello': 'world'}) schema = vol.Schema(cv.ordered_dict(int)) with pytest.raises(vol.Invalid): schema({'hello': 'world'}) schema({'hello': 5})
def test_ordered_dict_key_validator(): """Test ordered_dict key validator.""" schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.string)) with pytest.raises(vol.Invalid): schema({None: 1}) schema({'hello': 'world'}) schema = vol.Schema(cv.ordered_dict(cv.match_all, int)) with pytest.raises(vol.Invalid): schema({'hello': 1}) schema({1: 'works'})
def test_ordered_dict_key_validator(): """Test ordered_dict key validator.""" schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.string)) with pytest.raises(vol.Invalid): schema({None: 1}) schema({'hello': 'world'}) schema = vol.Schema(cv.ordered_dict(cv.match_all, int)) with pytest.raises(vol.Invalid): schema({'hello': 1}) schema({1: 'works'})
def test_ordered_dict_only_dict(): """Test ordered_dict validator.""" schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.match_all)) for value in (None, [], 100, 'hello'): with pytest.raises(vol.MultipleInvalid): schema(value)
def test_ordered_dict_only_dict(): """Test ordered_dict validator.""" schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.match_all)) for value in (None, [], 100, 'hello'): with pytest.raises(vol.MultipleInvalid): schema(value)
def test_ordered_dict_order(): """Test ordered_dict validator.""" schema = vol.Schema(cv.ordered_dict(int, cv.string)) val = OrderedDict() val['first'] = 1 val['second'] = 2 validated = schema(val) assert isinstance(validated, OrderedDict) assert ['first', 'second'] == list(validated.keys())
def test_ordered_dict_order(): """Test ordered_dict validator.""" schema = vol.Schema(cv.ordered_dict(int, cv.string)) val = OrderedDict() val['first'] = 1 val['second'] = 2 validated = schema(val) assert isinstance(validated, OrderedDict) assert ['first', 'second'] == list(validated.keys())
}) SIGNAL_REFRESH_ENTITY_FORMAT = 'zwave_refresh_entity_{}' CONFIG_SCHEMA = vol.Schema( { DOMAIN: vol.Schema({ vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean, vol.Optional(CONF_CONFIG_PATH): cv.string, vol.Optional(CONF_DEVICE_CONFIG, default={}): vol.Schema({cv.entity_id: DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEVICE_CONFIG_GLOB, default={}): cv.ordered_dict(DEVICE_CONFIG_SCHEMA_ENTRY, cv.string), vol.Optional(CONF_DEVICE_CONFIG_DOMAIN, default={}): vol.Schema({cv.string: DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean, vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL): cv.positive_int, vol.Optional(CONF_USB_STICK_PATH, default=DEFAULT_CONF_USB_STICK_PATH): cv.string, }), }, extra=vol.ALLOW_EXTRA)
from homeassistant.components.media_player import ( SUPPORT_PAUSE, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_NEXT_TRACK, SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, PLATFORM_SCHEMA, SUPPORT_PLAY, MediaPlayerDevice) from homeassistant.const import ( CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED, STATE_ON, STATE_PLAYING) REQUIREMENTS = ['pdunehd==1.3'] DEFAULT_NAME = 'DuneHD' CONF_SOURCES = 'sources' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_SOURCES): cv.ordered_dict(cv.string, cv.string), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) DUNEHD_PLAYER_SUPPORT = \ SUPPORT_PAUSE | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \ SUPPORT_SELECT_SOURCE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ SUPPORT_PLAY # pylint: disable=unused-argument def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the media player demo platform.""" sources = config.get(CONF_SOURCES, {}) from pdunehd import DuneHDPlayer
_LOGGER = logging.getLogger(__name__) def _conf_preprocess(value): """Preprocess alternative configuration formats.""" if not isinstance(value, dict): value = {CONF_ENTITIES: value} return value CONFIG_SCHEMA = vol.Schema({ DOMAIN: cv.ordered_dict(vol.All(_conf_preprocess, { vol.Optional(CONF_ENTITIES): vol.Any(cv.entity_ids, None), CONF_VIEW: cv.boolean, CONF_NAME: cv.string, CONF_ICON: cv.icon, }, cv.match_all)) }, extra=vol.ALLOW_EXTRA) # List of ON/OFF state tuples for groupable states _GROUP_TYPES = [(STATE_ON, STATE_OFF), (STATE_HOME, STATE_NOT_HOME), (STATE_OPEN, STATE_CLOSED), (STATE_LOCKED, STATE_UNLOCKED)] def _get_group_on_off(state): """Determine the group on/off states based on a state.""" for states in _GROUP_TYPES: if state in states: return states
from homeassistant.components.media_player import ( SUPPORT_PAUSE, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_NEXT_TRACK, SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, PLATFORM_SCHEMA, MediaPlayerDevice) from homeassistant.const import ( CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED, STATE_ON, STATE_PLAYING) REQUIREMENTS = ['pdunehd==1.3'] DEFAULT_NAME = 'DuneHD' CONF_SOURCES = 'sources' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_SOURCES): cv.ordered_dict(cv.string, cv.string), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) DUNEHD_PLAYER_SUPPORT = \ SUPPORT_PAUSE | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \ SUPPORT_SELECT_SOURCE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK # pylint: disable=unused-argument def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the media player demo platform.""" sources = config.get(CONF_SOURCES, {}) from pdunehd import DuneHDPlayer add_devices([DuneHDPlayerEntity(
GROUP_SCHEMA = vol.Schema({ vol.Optional(CONF_ENTITIES): vol.Any(cv.entity_ids, None), CONF_VIEW: cv.boolean, CONF_NAME: cv.string, CONF_ICON: cv.icon, CONF_CONTROL: cv.string, }) CONFIG_SCHEMA = vol.Schema( {DOMAIN: cv.ordered_dict(vol.All(_conf_preprocess, GROUP_SCHEMA))}, extra=vol.ALLOW_EXTRA) # List of ON/OFF state tuples for groupable states _GROUP_TYPES = [(STATE_ON, STATE_OFF), (STATE_HOME, STATE_NOT_HOME), (STATE_OPEN, STATE_CLOSED), (STATE_LOCKED, STATE_UNLOCKED)] def _get_group_on_off(state): """Determine the group on/off states based on a state.""" for states in _GROUP_TYPES: if state in states: return states return None, None
vol.Optional(CONF_REFRESH_VALUE, default=DEFAULT_CONF_REFRESH_VALUE): cv.boolean, vol.Optional(CONF_REFRESH_DELAY, default=DEFAULT_CONF_REFRESH_DELAY): cv.positive_int }) SIGNAL_REFRESH_ENTITY_FORMAT = 'zwave_refresh_entity_{}' CONFIG_SCHEMA = vol.Schema({ DOMAIN: vol.Schema({ vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean, vol.Optional(CONF_CONFIG_PATH): cv.string, vol.Optional(CONF_DEVICE_CONFIG, default={}): vol.Schema({cv.entity_id: DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEVICE_CONFIG_GLOB, default={}): cv.ordered_dict(DEVICE_CONFIG_SCHEMA_ENTRY, cv.string), vol.Optional(CONF_DEVICE_CONFIG_DOMAIN, default={}): vol.Schema({cv.string: DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean, vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL): cv.positive_int, vol.Optional(CONF_USB_STICK_PATH, default=DEFAULT_CONF_USB_STICK_PATH): cv.string, }), }, extra=vol.ALLOW_EXTRA) def _obj_to_dict(obj): """Convert an object into a hash for debug.""" return {key: getattr(obj, key) for key in dir(obj)
if not isinstance(value, dict): value = {CONF_ENTITIES: value} return value GROUP_SCHEMA = vol.Schema({ vol.Optional(CONF_ENTITIES): vol.Any(cv.entity_ids, None), CONF_VIEW: cv.boolean, CONF_NAME: cv.string, CONF_ICON: cv.icon, CONF_CONTROL: cv.string, }) CONFIG_SCHEMA = vol.Schema({ DOMAIN: cv.ordered_dict(vol.All(_conf_preprocess, GROUP_SCHEMA)) }, extra=vol.ALLOW_EXTRA) # List of ON/OFF state tuples for groupable states _GROUP_TYPES = [(STATE_ON, STATE_OFF), (STATE_HOME, STATE_NOT_HOME), (STATE_OPEN, STATE_CLOSED), (STATE_LOCKED, STATE_UNLOCKED)] def _get_group_on_off(state): """Determine the group on/off states based on a state.""" for states in _GROUP_TYPES: if state in states: return states return None, None
SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, PLATFORM_SCHEMA, MediaPlayerDevice) from homeassistant.const import (CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED, STATE_ON, STATE_PLAYING) REQUIREMENTS = ['pdunehd==1.3'] DEFAULT_NAME = 'DuneHD' CONF_SOURCES = 'sources' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_SOURCES): cv.ordered_dict(cv.string, cv.string), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) DUNEHD_PLAYER_SUPPORT = \ SUPPORT_PAUSE | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \ SUPPORT_SELECT_SOURCE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK # pylint: disable=unused-argument def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the media player demo platform.""" sources = config.get(CONF_SOURCES, {}) from pdunehd import DuneHDPlayer
group: !include groups.yaml """ PACKAGES_CONFIG_SCHEMA = vol.Schema({ cv.slug: vol.Schema( # Package names are slugs {cv.slug: vol.Any(dict, list)}) # Only slugs for component names }) CUSTOMIZE_CONFIG_SCHEMA = vol.Schema({ vol.Optional(CONF_CUSTOMIZE, default={}): vol.Schema({cv.entity_id: dict}), vol.Optional(CONF_CUSTOMIZE_DOMAIN, default={}): vol.Schema({cv.string: dict}), vol.Optional(CONF_CUSTOMIZE_GLOB, default={}): cv.ordered_dict(OrderedDict, cv.string), }) CORE_CONFIG_SCHEMA = CUSTOMIZE_CONFIG_SCHEMA.extend({ CONF_NAME: vol.Coerce(str), CONF_LATITUDE: cv.latitude, CONF_LONGITUDE: cv.longitude, CONF_ELEVATION: vol.Coerce(int), vol.Optional(CONF_TEMPERATURE_UNIT): cv.temperature_unit, CONF_UNIT_SYSTEM: cv.unit_system, CONF_TIME_ZONE: cv.time_zone, vol.Optional(CONF_PACKAGES, default={}): PACKAGES_CONFIG_SCHEMA, }) def get_default_config_dir() -> str: