mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Remove NONE_SENTINEL in favor of optional select in sql (#101309)
This commit is contained in:
parent
1915fee9ba
commit
952a17532f
@ -32,7 +32,6 @@ from .util import resolve_db_url
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
NONE_SENTINEL = "none"
|
|
||||||
|
|
||||||
OPTIONS_SCHEMA: vol.Schema = vol.Schema(
|
OPTIONS_SCHEMA: vol.Schema = vol.Schema(
|
||||||
{
|
{
|
||||||
@ -51,32 +50,24 @@ OPTIONS_SCHEMA: vol.Schema = vol.Schema(
|
|||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_VALUE_TEMPLATE,
|
CONF_VALUE_TEMPLATE,
|
||||||
): selector.TemplateSelector(),
|
): selector.TemplateSelector(),
|
||||||
vol.Optional(
|
vol.Optional(CONF_DEVICE_CLASS): selector.SelectSelector(
|
||||||
CONF_DEVICE_CLASS,
|
|
||||||
default=NONE_SENTINEL,
|
|
||||||
): selector.SelectSelector(
|
|
||||||
selector.SelectSelectorConfig(
|
selector.SelectSelectorConfig(
|
||||||
options=[NONE_SENTINEL]
|
options=[
|
||||||
+ sorted(
|
cls.value
|
||||||
[
|
for cls in SensorDeviceClass
|
||||||
cls.value
|
if cls != SensorDeviceClass.ENUM
|
||||||
for cls in SensorDeviceClass
|
],
|
||||||
if cls != SensorDeviceClass.ENUM
|
|
||||||
]
|
|
||||||
),
|
|
||||||
mode=selector.SelectSelectorMode.DROPDOWN,
|
mode=selector.SelectSelectorMode.DROPDOWN,
|
||||||
translation_key="device_class",
|
translation_key="device_class",
|
||||||
|
sort=True,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
vol.Optional(
|
vol.Optional(CONF_STATE_CLASS): selector.SelectSelector(
|
||||||
CONF_STATE_CLASS,
|
|
||||||
default=NONE_SENTINEL,
|
|
||||||
): selector.SelectSelector(
|
|
||||||
selector.SelectSelectorConfig(
|
selector.SelectSelectorConfig(
|
||||||
options=[NONE_SENTINEL]
|
options=[cls.value for cls in SensorStateClass],
|
||||||
+ sorted([cls.value for cls in SensorStateClass]),
|
|
||||||
mode=selector.SelectSelectorMode.DROPDOWN,
|
mode=selector.SelectSelectorMode.DROPDOWN,
|
||||||
translation_key="state_class",
|
translation_key="state_class",
|
||||||
|
sort=True,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
@ -179,9 +170,9 @@ class SQLConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
options[CONF_UNIT_OF_MEASUREMENT] = uom
|
options[CONF_UNIT_OF_MEASUREMENT] = uom
|
||||||
if value_template := user_input.get(CONF_VALUE_TEMPLATE):
|
if value_template := user_input.get(CONF_VALUE_TEMPLATE):
|
||||||
options[CONF_VALUE_TEMPLATE] = value_template
|
options[CONF_VALUE_TEMPLATE] = value_template
|
||||||
if (device_class := user_input[CONF_DEVICE_CLASS]) != NONE_SENTINEL:
|
if device_class := user_input.get(CONF_DEVICE_CLASS):
|
||||||
options[CONF_DEVICE_CLASS] = device_class
|
options[CONF_DEVICE_CLASS] = device_class
|
||||||
if (state_class := user_input[CONF_STATE_CLASS]) != NONE_SENTINEL:
|
if state_class := user_input.get(CONF_STATE_CLASS):
|
||||||
options[CONF_STATE_CLASS] = state_class
|
options[CONF_STATE_CLASS] = state_class
|
||||||
if db_url_for_validation != get_instance(self.hass).db_url:
|
if db_url_for_validation != get_instance(self.hass).db_url:
|
||||||
options[CONF_DB_URL] = db_url_for_validation
|
options[CONF_DB_URL] = db_url_for_validation
|
||||||
@ -248,9 +239,9 @@ class SQLOptionsFlowHandler(config_entries.OptionsFlowWithConfigEntry):
|
|||||||
options[CONF_UNIT_OF_MEASUREMENT] = uom
|
options[CONF_UNIT_OF_MEASUREMENT] = uom
|
||||||
if value_template := user_input.get(CONF_VALUE_TEMPLATE):
|
if value_template := user_input.get(CONF_VALUE_TEMPLATE):
|
||||||
options[CONF_VALUE_TEMPLATE] = value_template
|
options[CONF_VALUE_TEMPLATE] = value_template
|
||||||
if (device_class := user_input[CONF_DEVICE_CLASS]) != NONE_SENTINEL:
|
if device_class := user_input.get(CONF_DEVICE_CLASS):
|
||||||
options[CONF_DEVICE_CLASS] = device_class
|
options[CONF_DEVICE_CLASS] = device_class
|
||||||
if (state_class := user_input[CONF_STATE_CLASS]) != NONE_SENTINEL:
|
if state_class := user_input.get(CONF_STATE_CLASS):
|
||||||
options[CONF_STATE_CLASS] = state_class
|
options[CONF_STATE_CLASS] = state_class
|
||||||
if db_url_for_validation != get_instance(self.hass).db_url:
|
if db_url_for_validation != get_instance(self.hass).db_url:
|
||||||
options[CONF_DB_URL] = db_url_for_validation
|
options[CONF_DB_URL] = db_url_for_validation
|
||||||
|
@ -67,7 +67,6 @@
|
|||||||
"selector": {
|
"selector": {
|
||||||
"device_class": {
|
"device_class": {
|
||||||
"options": {
|
"options": {
|
||||||
"none": "No device class",
|
|
||||||
"date": "[%key:component::sensor::entity_component::date::name%]",
|
"date": "[%key:component::sensor::entity_component::date::name%]",
|
||||||
"duration": "[%key:component::sensor::entity_component::duration::name%]",
|
"duration": "[%key:component::sensor::entity_component::duration::name%]",
|
||||||
"apparent_power": "[%key:component::sensor::entity_component::apparent_power::name%]",
|
"apparent_power": "[%key:component::sensor::entity_component::apparent_power::name%]",
|
||||||
@ -121,7 +120,6 @@
|
|||||||
},
|
},
|
||||||
"state_class": {
|
"state_class": {
|
||||||
"options": {
|
"options": {
|
||||||
"none": "No state class",
|
|
||||||
"measurement": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::measurement%]",
|
"measurement": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::measurement%]",
|
||||||
"total": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::total%]",
|
"total": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::total%]",
|
||||||
"total_increasing": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::total_increasing%]"
|
"total_increasing": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::total_increasing%]"
|
||||||
|
@ -8,7 +8,6 @@ from sqlalchemy.exc import SQLAlchemyError
|
|||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.components.recorder import Recorder
|
from homeassistant.components.recorder import Recorder
|
||||||
from homeassistant.components.sensor.const import SensorDeviceClass, SensorStateClass
|
from homeassistant.components.sensor.const import SensorDeviceClass, SensorStateClass
|
||||||
from homeassistant.components.sql.config_flow import NONE_SENTINEL
|
|
||||||
from homeassistant.components.sql.const import DOMAIN
|
from homeassistant.components.sql.const import DOMAIN
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.data_entry_flow import FlowResultType
|
from homeassistant.data_entry_flow import FlowResultType
|
||||||
@ -669,8 +668,6 @@ async def test_device_state_class(recorder_mock: Recorder, hass: HomeAssistant)
|
|||||||
"query": "SELECT 5 as value",
|
"query": "SELECT 5 as value",
|
||||||
"column": "value",
|
"column": "value",
|
||||||
"unit_of_measurement": "MiB",
|
"unit_of_measurement": "MiB",
|
||||||
"device_class": NONE_SENTINEL,
|
|
||||||
"state_class": NONE_SENTINEL,
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user