mirror of
https://github.com/home-assistant/core.git
synced 2025-04-26 18:27:51 +00:00
Add config validator helper positive_float (#41640)
This commit is contained in:
parent
874e1f6103
commit
93a9a11065
@ -29,9 +29,7 @@ PLATFORM_SCHEMA = vol.All(
|
||||
PLATFORM_SCHEMA.extend(
|
||||
{
|
||||
vol.Optional(CONF_DIMENSION, default=512): DIM_RANGE,
|
||||
vol.Optional(CONF_DELTA, default=600.0): vol.All(
|
||||
vol.Coerce(float), vol.Range(min=0)
|
||||
),
|
||||
vol.Optional(CONF_DELTA, default=600.0): cv.positive_float,
|
||||
vol.Optional(CONF_NAME, default="Buienradar loop"): cv.string,
|
||||
vol.Optional(CONF_COUNTRY, default="NL"): vol.All(
|
||||
vol.Coerce(str), vol.In(SUPPORTED_COUNTRY_CODES)
|
||||
|
@ -64,9 +64,7 @@ PLATFORM_SCHEMA = vol.Schema(
|
||||
vol.Optional(CONF_SCOPE, default=DEFAULT_SCOPE): vol.In(
|
||||
SCOPE_TYPES
|
||||
),
|
||||
vol.Optional(CONF_DEVICE): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=0)
|
||||
),
|
||||
vol.Optional(CONF_DEVICE): cv.positive_int,
|
||||
}
|
||||
],
|
||||
),
|
||||
|
@ -48,7 +48,7 @@ CONFIG_SCHEMA = vol.Schema(
|
||||
vol.Optional(CONF_RADIUS, default=DEFAULT_RADIUS): vol.Coerce(float),
|
||||
vol.Optional(
|
||||
CONF_MINIMUM_MAGNITUDE, default=DEFAULT_MINIMUM_MAGNITUDE
|
||||
): vol.All(vol.Coerce(float), vol.Range(min=0)),
|
||||
): cv.positive_float,
|
||||
vol.Optional(
|
||||
CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL
|
||||
): cv.time_period,
|
||||
|
@ -34,7 +34,7 @@ SCHEMA_STEP_STATION = vol.Schema({vol.Required(CONF_STATION): str})
|
||||
SCHEMA_STEP_OPTIONS = vol.Schema(
|
||||
{
|
||||
vol.Required(CONF_FILTER): vol.In([]),
|
||||
vol.Required(CONF_OFFSET, default=0): vol.All(int, vol.Range(min=0)),
|
||||
vol.Required(CONF_OFFSET, default=0): cv.positive_int,
|
||||
vol.Optional(CONF_REAL_TIME, default=True): bool,
|
||||
}
|
||||
)
|
||||
@ -207,7 +207,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow):
|
||||
vol.Required(
|
||||
CONF_OFFSET,
|
||||
default=self.config_entry.options.get(CONF_OFFSET, 0),
|
||||
): vol.All(int, vol.Range(min=0)),
|
||||
): cv.positive_int,
|
||||
vol.Optional(
|
||||
CONF_REAL_TIME,
|
||||
default=self.config_entry.options.get(CONF_REAL_TIME, True),
|
||||
|
@ -46,7 +46,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
vol.Optional(CONF_RADIUS, default=DEFAULT_RADIUS_IN_KM): vol.Coerce(float),
|
||||
vol.Optional(
|
||||
CONF_MINIMUM_MAGNITUDE, default=DEFAULT_MINIMUM_MAGNITUDE
|
||||
): vol.All(vol.Coerce(float), vol.Range(min=0)),
|
||||
): cv.positive_float,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -187,9 +187,7 @@ class VarAbs(LcnServiceCall):
|
||||
vol.Required(CONF_VARIABLE): vol.All(
|
||||
vol.Upper, vol.In(VARIABLES + SETPOINTS)
|
||||
),
|
||||
vol.Optional(CONF_VALUE, default=0): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=0)
|
||||
),
|
||||
vol.Optional(CONF_VALUE, default=0): cv.positive_int,
|
||||
vol.Optional(CONF_UNIT_OF_MEASUREMENT, default="native"): vol.All(
|
||||
vol.Upper, vol.In(VAR_UNITS)
|
||||
),
|
||||
@ -281,7 +279,7 @@ class SendKeys(LcnServiceCall):
|
||||
vol.Optional(CONF_STATE, default="hit"): vol.All(
|
||||
vol.Upper, vol.In(SENDKEYCOMMANDS)
|
||||
),
|
||||
vol.Optional(CONF_TIME, default=0): vol.All(int, vol.Range(min=0)),
|
||||
vol.Optional(CONF_TIME, default=0): cv.positive_int,
|
||||
vol.Optional(CONF_TIME_UNIT, default=TIME_SECONDS): vol.All(
|
||||
vol.Upper, vol.In(TIME_UNITS)
|
||||
),
|
||||
@ -324,7 +322,7 @@ class LockKeys(LcnServiceCall):
|
||||
vol.Upper, cv.matches_regex(r"^[A-D]$")
|
||||
),
|
||||
vol.Required(CONF_STATE): is_key_lock_states_string,
|
||||
vol.Optional(CONF_TIME, default=0): vol.All(int, vol.Range(min=0)),
|
||||
vol.Optional(CONF_TIME, default=0): cv.positive_int,
|
||||
vol.Optional(CONF_TIME_UNIT, default=TIME_SECONDS): vol.All(
|
||||
vol.Upper, vol.In(TIME_UNITS)
|
||||
),
|
||||
|
@ -127,9 +127,7 @@ LIFX_EFFECT_PULSE_SCHEMA = cv.make_entity_service_schema(
|
||||
vol.Exclusive(ATTR_COLOR_TEMP, COLOR_GROUP): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=1)
|
||||
),
|
||||
vol.Exclusive(ATTR_KELVIN, COLOR_GROUP): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=0)
|
||||
),
|
||||
vol.Exclusive(ATTR_KELVIN, COLOR_GROUP): cv.positive_int,
|
||||
ATTR_PERIOD: vol.All(vol.Coerce(float), vol.Range(min=0.05)),
|
||||
ATTR_CYCLES: vol.All(vol.Coerce(float), vol.Range(min=1)),
|
||||
ATTR_MODE: vol.In(PULSE_MODES),
|
||||
@ -144,7 +142,7 @@ LIFX_EFFECT_COLORLOOP_SCHEMA = cv.make_entity_service_schema(
|
||||
ATTR_PERIOD: vol.All(vol.Coerce(float), vol.Clamp(min=0.05)),
|
||||
ATTR_CHANGE: vol.All(vol.Coerce(float), vol.Clamp(min=0, max=360)),
|
||||
ATTR_SPREAD: vol.All(vol.Coerce(float), vol.Clamp(min=0, max=360)),
|
||||
ATTR_TRANSITION: vol.All(vol.Coerce(float), vol.Range(min=0)),
|
||||
ATTR_TRANSITION: cv.positive_float,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -115,7 +115,7 @@ LIGHT_TURN_ON_SCHEMA = {
|
||||
vol.Exclusive(ATTR_COLOR_TEMP, COLOR_GROUP): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=1)
|
||||
),
|
||||
vol.Exclusive(ATTR_KELVIN, COLOR_GROUP): vol.All(vol.Coerce(int), vol.Range(min=0)),
|
||||
vol.Exclusive(ATTR_KELVIN, COLOR_GROUP): cv.positive_int,
|
||||
ATTR_WHITE_VALUE: vol.All(vol.Coerce(int), vol.Range(min=0, max=255)),
|
||||
ATTR_FLASH: VALID_FLASH,
|
||||
ATTR_EFFECT: cv.string,
|
||||
|
@ -286,11 +286,7 @@ async def async_setup(hass, config):
|
||||
SERVICE_MEDIA_SEEK,
|
||||
vol.All(
|
||||
cv.make_entity_service_schema(
|
||||
{
|
||||
vol.Required(ATTR_MEDIA_SEEK_POSITION): vol.All(
|
||||
vol.Coerce(float), vol.Range(min=0)
|
||||
)
|
||||
}
|
||||
{vol.Required(ATTR_MEDIA_SEEK_POSITION): cv.positive_float}
|
||||
),
|
||||
_rename_keys(position=ATTR_MEDIA_SEEK_POSITION),
|
||||
),
|
||||
|
@ -60,7 +60,7 @@ PLATFORM_SCHEMA = (
|
||||
vol.Optional(CONF_EXPIRE_AFTER): cv.positive_int,
|
||||
vol.Optional(CONF_FORCE_UPDATE, default=DEFAULT_FORCE_UPDATE): cv.boolean,
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(CONF_OFF_DELAY): vol.All(vol.Coerce(int), vol.Range(min=0)),
|
||||
vol.Optional(CONF_OFF_DELAY): cv.positive_int,
|
||||
vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string,
|
||||
vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string,
|
||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||
|
@ -83,7 +83,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
),
|
||||
vol.Optional(
|
||||
CONF_RECEIVER_MAX_VOLUME, default=DEFAULT_RECEIVER_MAX_VOLUME
|
||||
): vol.All(vol.Coerce(int), vol.Range(min=0)),
|
||||
): cv.positive_int,
|
||||
vol.Optional(CONF_SOURCES, default=DEFAULT_SOURCES): {cv.string: cv.string},
|
||||
}
|
||||
)
|
||||
|
@ -20,7 +20,7 @@ SERVICE_START_IRRIGATION = "start_irrigation"
|
||||
SERVICE_SCHEMA_IRRIGATION = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_ENTITY_ID): cv.entity_id,
|
||||
vol.Required(ATTR_DURATION): vol.All(vol.Coerce(float), vol.Range(min=0)),
|
||||
vol.Required(ATTR_DURATION): cv.positive_float,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -48,7 +48,7 @@ ATTR_REPACK = "repack"
|
||||
|
||||
SERVICE_PURGE_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional(ATTR_KEEP_DAYS): vol.All(vol.Coerce(int), vol.Range(min=0)),
|
||||
vol.Optional(ATTR_KEEP_DAYS): cv.positive_int,
|
||||
vol.Optional(ATTR_REPACK, default=False): cv.boolean,
|
||||
}
|
||||
)
|
||||
@ -92,13 +92,11 @@ CONFIG_SCHEMA = vol.Schema(
|
||||
vol.Optional(CONF_PURGE_KEEP_DAYS, default=10): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=1)
|
||||
),
|
||||
vol.Optional(CONF_PURGE_INTERVAL, default=1): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=0)
|
||||
),
|
||||
vol.Optional(CONF_PURGE_INTERVAL, default=1): cv.positive_int,
|
||||
vol.Optional(CONF_DB_URL): cv.string,
|
||||
vol.Optional(
|
||||
CONF_COMMIT_INTERVAL, default=DEFAULT_COMMIT_INTERVAL
|
||||
): vol.All(vol.Coerce(int), vol.Range(min=0)),
|
||||
): cv.positive_int,
|
||||
vol.Optional(
|
||||
CONF_DB_MAX_RETRIES, default=DEFAULT_DB_MAX_RETRIES
|
||||
): cv.positive_int,
|
||||
|
@ -79,9 +79,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
vol.Optional(CONF_PORT, default=8082): cv.port,
|
||||
vol.Optional(CONF_SSL, default=False): cv.boolean,
|
||||
vol.Optional(CONF_VERIFY_SSL, default=True): cv.boolean,
|
||||
vol.Required(CONF_MAX_ACCURACY, default=0): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=0)
|
||||
),
|
||||
vol.Required(CONF_MAX_ACCURACY, default=0): cv.positive_int,
|
||||
vol.Optional(CONF_SKIP_ACCURACY_ON, default=[]): vol.All(
|
||||
cv.ensure_list, [cv.string]
|
||||
),
|
||||
|
@ -79,7 +79,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
vol.Optional(CONF_RADIUS, default=DEFAULT_RADIUS_IN_KM): vol.Coerce(float),
|
||||
vol.Optional(
|
||||
CONF_MINIMUM_MAGNITUDE, default=DEFAULT_MINIMUM_MAGNITUDE
|
||||
): vol.All(vol.Coerce(float), vol.Range(min=0)),
|
||||
): cv.positive_float,
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -449,7 +449,7 @@ SERVICE_SCHEMA_VOLUME = AIRPURIFIER_SERVICE_SCHEMA.extend(
|
||||
)
|
||||
|
||||
SERVICE_SCHEMA_EXTRA_FEATURES = AIRPURIFIER_SERVICE_SCHEMA.extend(
|
||||
{vol.Required(ATTR_FEATURES): vol.All(vol.Coerce(int), vol.Range(min=0))}
|
||||
{vol.Required(ATTR_FEATURES): cv.positive_int}
|
||||
)
|
||||
|
||||
SERVICE_SCHEMA_TARGET_HUMIDITY = AIRPURIFIER_SERVICE_SCHEMA.extend(
|
||||
|
@ -45,9 +45,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
{
|
||||
vol.Optional(CONF_NAME): cv.string,
|
||||
vol.Required(CONF_HOST): cv.string,
|
||||
vol.Optional(CONF_TIMEOUT, default=DEFAULT_TIMEOUT): vol.All(
|
||||
int, vol.Range(min=0)
|
||||
),
|
||||
vol.Optional(CONF_TIMEOUT, default=DEFAULT_TIMEOUT): cv.positive_int,
|
||||
vol.Optional(CONF_SLOT, default=DEFAULT_SLOT): vol.All(
|
||||
int, vol.Range(min=1, max=1000000)
|
||||
),
|
||||
@ -150,7 +148,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
|
||||
platform.async_register_entity_service(
|
||||
SERVICE_LEARN,
|
||||
{
|
||||
vol.Optional(CONF_TIMEOUT, default=10): vol.All(int, vol.Range(min=0)),
|
||||
vol.Optional(CONF_TIMEOUT, default=10): cv.positive_int,
|
||||
vol.Optional(CONF_SLOT, default=1): vol.All(
|
||||
int, vol.Range(min=1, max=1000000)
|
||||
),
|
||||
|
@ -96,7 +96,7 @@ SERVICE_SCHEMA_POWER_MODE = SERVICE_SCHEMA.extend(
|
||||
)
|
||||
|
||||
SERVICE_SCHEMA_POWER_PRICE = SERVICE_SCHEMA.extend(
|
||||
{vol.Required(ATTR_PRICE): vol.All(vol.Coerce(float), vol.Range(min=0))}
|
||||
{vol.Required(ATTR_PRICE): cv.positive_float}
|
||||
)
|
||||
|
||||
SERVICE_TO_METHOD = {
|
||||
|
@ -98,6 +98,7 @@ TIME_PERIOD_ERROR = "offset {} should be format 'HH:MM', 'HH:MM:SS' or 'HH:MM:SS
|
||||
byte = vol.All(vol.Coerce(int), vol.Range(min=0, max=255))
|
||||
small_float = vol.All(vol.Coerce(float), vol.Range(min=0, max=1))
|
||||
positive_int = vol.All(vol.Coerce(int), vol.Range(min=0))
|
||||
positive_float = vol.All(vol.Coerce(float), vol.Range(min=0))
|
||||
latitude = vol.All(
|
||||
vol.Coerce(float), vol.Range(min=-90, max=90), msg="invalid latitude"
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user