Migrate backported StrEnum to built-in StrEnum (#97101)
This commit is contained in:
parent
38e3e20f74
commit
30058297cf
64 changed files with 84 additions and 151 deletions
|
@ -1,32 +1,15 @@
|
||||||
"""Enum backports from standard lib."""
|
"""Enum backports from standard lib.
|
||||||
|
|
||||||
|
This file contained the backport of the StrEnum of Python 3.11.
|
||||||
|
|
||||||
|
Since we have dropped support for Python 3.10, we can remove this backport.
|
||||||
|
This file is kept for now to avoid breaking custom components that might
|
||||||
|
import it.
|
||||||
|
"""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from enum import Enum
|
from enum import StrEnum
|
||||||
from typing import Any, Self
|
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
class StrEnum(str, Enum):
|
"StrEnum",
|
||||||
"""Partial backport of Python 3.11's StrEnum for our basic use cases."""
|
]
|
||||||
|
|
||||||
value: str
|
|
||||||
|
|
||||||
def __new__(cls, value: str, *args: Any, **kwargs: Any) -> Self:
|
|
||||||
"""Create a new StrEnum instance."""
|
|
||||||
if not isinstance(value, str):
|
|
||||||
raise TypeError(f"{value!r} is not a string")
|
|
||||||
return super().__new__(cls, value, *args, **kwargs)
|
|
||||||
|
|
||||||
def __str__(self) -> str:
|
|
||||||
"""Return self.value."""
|
|
||||||
return self.value
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _generate_next_value_(
|
|
||||||
name: str, start: int, count: int, last_values: list[Any]
|
|
||||||
) -> Any:
|
|
||||||
"""Make `auto()` explicitly unsupported.
|
|
||||||
|
|
||||||
We may revisit this when it's very clear that Python 3.11's
|
|
||||||
`StrEnum.auto()` behavior will no longer change.
|
|
||||||
"""
|
|
||||||
raise TypeError("auto() is not supported by this implementation")
|
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
"""Provides the constants needed for component."""
|
"""Provides the constants needed for component."""
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
DOMAIN: Final = "alarm_control_panel"
|
DOMAIN: Final = "alarm_control_panel"
|
||||||
|
|
||||||
ATTR_CHANGED_BY: Final = "changed_by"
|
ATTR_CHANGED_BY: Final = "changed_by"
|
||||||
|
|
|
@ -4,12 +4,12 @@ from __future__ import annotations
|
||||||
import asyncio
|
import asyncio
|
||||||
from collections.abc import AsyncIterable, Callable, Iterable
|
from collections.abc import AsyncIterable, Callable, Iterable
|
||||||
from dataclasses import asdict, dataclass, field
|
from dataclasses import asdict, dataclass, field
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components import conversation, media_source, stt, tts, websocket_api
|
from homeassistant.components import conversation, media_source, stt, tts, websocket_api
|
||||||
from homeassistant.components.tts.media_source import (
|
from homeassistant.components.tts.media_source import (
|
||||||
generate_media_source_id as tts_generate_media_source_id,
|
generate_media_source_id as tts_generate_media_source_id,
|
||||||
|
|
|
@ -2,11 +2,10 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
from enum import StrEnum
|
||||||
|
|
||||||
import webrtcvad
|
import webrtcvad
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
_SAMPLE_RATE = 16000
|
_SAMPLE_RATE = 16000
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Literal, final
|
from typing import Literal, final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import STATE_OFF, STATE_ON
|
from homeassistant.const import STATE_OFF, STATE_ON
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
"""Constants for Bravia TV integration."""
|
"""Constants for Bravia TV integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
ATTR_CID: Final = "cid"
|
ATTR_CID: Final = "cid"
|
||||||
ATTR_MAC: Final = "macAddr"
|
ATTR_MAC: Final = "macAddr"
|
||||||
ATTR_MANUFACTURER: Final = "Sony"
|
ATTR_MANUFACTURER: Final = "Sony"
|
||||||
|
|
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import final
|
from typing import final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.config_validation import ( # noqa: F401
|
from homeassistant.helpers.config_validation import ( # noqa: F401
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
"""Constants for Camera component."""
|
"""Constants for Camera component."""
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
DOMAIN: Final = "camera"
|
DOMAIN: Final = "camera"
|
||||||
|
|
||||||
DATA_CAMERA_PREFS: Final = "camera_prefs"
|
DATA_CAMERA_PREFS: Final = "camera_prefs"
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
"""Provides the constants needed for component."""
|
"""Provides the constants needed for component."""
|
||||||
|
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
|
|
||||||
class HVACMode(StrEnum):
|
class HVACMode(StrEnum):
|
||||||
|
|
|
@ -4,14 +4,13 @@ from __future__ import annotations
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
import functools as ft
|
import functools as ft
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, ParamSpec, TypeVar, final
|
from typing import Any, ParamSpec, TypeVar, final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
SERVICE_CLOSE_COVER,
|
SERVICE_CLOSE_COVER,
|
||||||
|
|
|
@ -2,11 +2,10 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
LOGGER: Final = logging.getLogger(__package__)
|
LOGGER: Final = logging.getLogger(__package__)
|
||||||
|
|
||||||
DOMAIN: Final = "device_tracker"
|
DOMAIN: Final = "device_tracker"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""Constants for the Diagnostics integration."""
|
"""Constants for the Diagnostics integration."""
|
||||||
from homeassistant.backports.enum import StrEnum
|
from enum import StrEnum
|
||||||
|
|
||||||
DOMAIN = "diagnostics"
|
DOMAIN = "diagnostics"
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ from __future__ import annotations
|
||||||
import asyncio
|
import asyncio
|
||||||
from collections.abc import Callable, Coroutine
|
from collections.abc import Callable, Coroutine
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from enum import StrEnum
|
||||||
import functools
|
import functools
|
||||||
from typing import Any, TypeVar, cast
|
from typing import Any, TypeVar, cast
|
||||||
|
|
||||||
|
@ -15,7 +16,6 @@ from async_upnp_client.exceptions import UpnpActionError, UpnpConnectionError, U
|
||||||
from async_upnp_client.profiles.dlna import ContentDirectoryErrorCode, DmsDevice
|
from async_upnp_client.profiles.dlna import ContentDirectoryErrorCode, DmsDevice
|
||||||
from didl_lite import didl_lite
|
from didl_lite import didl_lite
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.backports.functools import cached_property
|
from homeassistant.backports.functools import cached_property
|
||||||
from homeassistant.components import ssdp
|
from homeassistant.components import ssdp
|
||||||
from homeassistant.components.media_player import BrowseError, MediaClass
|
from homeassistant.components.media_player import BrowseError, MediaClass
|
||||||
|
|
|
@ -3,10 +3,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import asdict, dataclass
|
from dataclasses import asdict, dataclass
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Self, final
|
from typing import Any, Self, final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.config_validation import ( # noqa: F401
|
from homeassistant.helpers.config_validation import ( # noqa: F401
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
"""Constants for the FRITZ!Box Tools integration."""
|
"""Constants for the FRITZ!Box Tools integration."""
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Literal
|
from typing import Literal
|
||||||
|
|
||||||
from fritzconnection.core.exceptions import (
|
from fritzconnection.core.exceptions import (
|
||||||
|
@ -13,7 +14,6 @@ from fritzconnection.core.exceptions import (
|
||||||
FritzServiceError,
|
FritzServiceError,
|
||||||
)
|
)
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import Platform
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
"""Config flow for fritzbox_callmonitor."""
|
"""Config flow for fritzbox_callmonitor."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
from fritzconnection import FritzConnection
|
from fritzconnection import FritzConnection
|
||||||
|
@ -9,7 +10,6 @@ from requests.exceptions import ConnectionError as RequestsConnectionError
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_HOST,
|
CONF_HOST,
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""Constants for the AVM Fritz!Box call monitor integration."""
|
"""Constants for the AVM Fritz!Box call monitor integration."""
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import Platform
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Mapping
|
from collections.abc import Mapping
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
import queue
|
import queue
|
||||||
from threading import Event as ThreadingEvent, Thread
|
from threading import Event as ThreadingEvent, Thread
|
||||||
|
@ -11,7 +12,6 @@ from typing import Any, cast
|
||||||
|
|
||||||
from fritzconnection.core.fritzmonitor import FritzMonitor
|
from fritzconnection.core.fritzmonitor import FritzMonitor
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components.sensor import SensorEntity
|
from homeassistant.components.sensor import SensorEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP
|
from homeassistant.const import CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""Hass.io const variables."""
|
"""Hass.io const variables."""
|
||||||
from homeassistant.backports.enum import StrEnum
|
from enum import StrEnum
|
||||||
|
|
||||||
DOMAIN = "hassio"
|
DOMAIN = "hassio"
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, final
|
from typing import Any, final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_MODE,
|
ATTR_MODE,
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
"""Provides the constants needed for component."""
|
"""Provides the constants needed for component."""
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
MODE_NORMAL = "normal"
|
MODE_NORMAL = "normal"
|
||||||
MODE_ECO = "eco"
|
MODE_ECO = "eco"
|
||||||
|
|
|
@ -4,12 +4,12 @@ from __future__ import annotations
|
||||||
import asyncio
|
import asyncio
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Final, TypedDict, final
|
from typing import Any, Final, TypedDict, final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components.camera import Image
|
from homeassistant.components.camera import Image
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_ENTITY_ID,
|
ATTR_ENTITY_ID,
|
||||||
|
|
|
@ -5,14 +5,13 @@ from collections.abc import Iterable
|
||||||
import csv
|
import csv
|
||||||
import dataclasses
|
import dataclasses
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from typing import Any, Self, cast, final
|
from typing import Any, Self, cast, final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
SERVICE_TOGGLE,
|
SERVICE_TOGGLE,
|
||||||
|
|
|
@ -5,10 +5,10 @@ from collections import defaultdict
|
||||||
from collections.abc import Mapping
|
from collections.abc import Mapping
|
||||||
import contextlib
|
import contextlib
|
||||||
from dataclasses import asdict, dataclass
|
from dataclasses import asdict, dataclass
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.storage import Store
|
from homeassistant.helpers.storage import Store
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
|
|
|
@ -7,6 +7,7 @@ from collections.abc import Callable
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
from enum import StrEnum
|
||||||
import functools as ft
|
import functools as ft
|
||||||
import hashlib
|
import hashlib
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
|
@ -22,7 +23,6 @@ import async_timeout
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
from yarl import URL
|
from yarl import URL
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components import websocket_api
|
from homeassistant.components import websocket_api
|
||||||
from homeassistant.components.http import KEY_AUTHENTICATED, HomeAssistantView
|
from homeassistant.components.http import KEY_AUTHENTICATED, HomeAssistantView
|
||||||
from homeassistant.components.websocket_api import ERR_NOT_SUPPORTED, ERR_UNKNOWN_ERROR
|
from homeassistant.components.websocket_api import ERR_NOT_SUPPORTED, ERR_UNKNOWN_ERROR
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
"""Provides the constants needed for component."""
|
"""Provides the constants needed for component."""
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
# How long our auth signature on the content should be valid for
|
# How long our auth signature on the content should be valid for
|
||||||
CONTENT_AUTH_EXPIRY_TIME = 3600 * 24
|
CONTENT_AUTH_EXPIRY_TIME = 3600 * 24
|
||||||
|
|
|
@ -7,12 +7,12 @@ from collections import deque
|
||||||
from collections.abc import Callable, Coroutine
|
from collections.abc import Callable, Coroutine
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import TYPE_CHECKING, Any, TypedDict
|
from typing import TYPE_CHECKING, Any, TypedDict
|
||||||
|
|
||||||
import attr
|
import attr
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import ATTR_ENTITY_ID, ATTR_NAME
|
from homeassistant.const import ATTR_ENTITY_ID, ATTR_NAME
|
||||||
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback
|
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback
|
||||||
from homeassistant.helpers import template
|
from homeassistant.helpers import template
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
"""Provides the constants needed for the component."""
|
"""Provides the constants needed for the component."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
CONCENTRATION_PARTS_PER_BILLION,
|
CONCENTRATION_PARTS_PER_BILLION,
|
||||||
|
|
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Callable, Mapping
|
from collections.abc import Callable, Mapping
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Final, TypedDict
|
from typing import Any, Final, TypedDict
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components import websocket_api
|
from homeassistant.components import websocket_api
|
||||||
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, ServiceCall, callback
|
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, ServiceCall, callback
|
||||||
from homeassistant.helpers import config_validation as cv, singleton
|
from homeassistant.helpers import config_validation as cv, singleton
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from aioqsw.const import (
|
from aioqsw.const import (
|
||||||
|
@ -14,7 +15,6 @@ from aioqsw.const import (
|
||||||
QSD_SYSTEM_BOARD,
|
QSD_SYSTEM_BOARD,
|
||||||
)
|
)
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_URL
|
from homeassistant.const import CONF_URL
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
|
|
|
@ -4,9 +4,9 @@ from __future__ import annotations
|
||||||
from collections.abc import Awaitable, Callable, Iterable
|
from collections.abc import Awaitable, Callable, Iterable
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
"""Recorder constants."""
|
"""Recorder constants."""
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
from enum import StrEnum
|
||||||
|
|
||||||
from homeassistant.const import ATTR_ATTRIBUTION, ATTR_RESTORED, ATTR_SUPPORTED_FEATURES
|
from homeassistant.const import ATTR_ATTRIBUTION, ATTR_RESTORED, ATTR_SUPPORTED_FEATURES
|
||||||
from homeassistant.helpers.json import ( # noqa: F401 pylint: disable=unused-import
|
from homeassistant.helpers.json import ( # noqa: F401 pylint: disable=unused-import
|
||||||
JSON_DUMP,
|
JSON_DUMP,
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
"""Constants for sensor."""
|
"""Constants for sensor."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
CONCENTRATION_PARTS_PER_BILLION,
|
CONCENTRATION_PARTS_PER_BILLION,
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
"""Constants for the Shelly integration."""
|
"""Constants for the Shelly integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from logging import Logger, getLogger
|
from logging import Logger, getLogger
|
||||||
import re
|
import re
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from awesomeversion import AwesomeVersion
|
from awesomeversion import AwesomeVersion
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
DOMAIN: Final = "shelly"
|
DOMAIN: Final = "shelly"
|
||||||
|
|
||||||
LOGGER: Logger = getLogger(__package__)
|
LOGGER: Logger = getLogger(__package__)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
"""Support for Spotify media browsing."""
|
"""Support for Spotify media browsing."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from functools import partial
|
from functools import partial
|
||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
@ -8,7 +9,6 @@ from typing import Any
|
||||||
from spotipy import Spotify
|
from spotipy import Spotify
|
||||||
import yarl
|
import yarl
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components.media_player import (
|
from homeassistant.components.media_player import (
|
||||||
BrowseError,
|
BrowseError,
|
||||||
BrowseMedia,
|
BrowseMedia,
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
"""Constants for the Stookwijzer integration."""
|
"""Constants for the Stookwijzer integration."""
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
DOMAIN: Final = "stookwijzer"
|
DOMAIN: Final = "stookwijzer"
|
||||||
LOGGER = logging.getLogger(__package__)
|
LOGGER = logging.getLogger(__package__)
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,11 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
SERVICE_TOGGLE,
|
SERVICE_TOGGLE,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""Constants for the switchbot integration."""
|
"""Constants for the switchbot integration."""
|
||||||
from switchbot import SwitchbotModel
|
from enum import StrEnum
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
from switchbot import SwitchbotModel
|
||||||
|
|
||||||
DOMAIN = "switchbot"
|
DOMAIN = "switchbot"
|
||||||
MANUFACTURER = "switchbot"
|
MANUFACTURER = "switchbot"
|
||||||
|
|
|
@ -3,13 +3,13 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import asdict, dataclass
|
from dataclasses import asdict, dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
from typing import Any, final
|
from typing import Any, final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import MAX_LENGTH_STATE_STATE
|
from homeassistant.const import MAX_LENGTH_STATE_STATE
|
||||||
from homeassistant.core import HomeAssistant, ServiceCall
|
from homeassistant.core import HomeAssistant, ServiceCall
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
"""Support for Tuya Alarm."""
|
"""Support for Tuya Alarm."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
|
|
||||||
from tuya_iot import TuyaDevice, TuyaDeviceManager
|
from tuya_iot import TuyaDevice, TuyaDeviceManager
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components.alarm_control_panel import (
|
from homeassistant.components.alarm_control_panel import (
|
||||||
AlarmControlPanelEntity,
|
AlarmControlPanelEntity,
|
||||||
AlarmControlPanelEntityDescription,
|
AlarmControlPanelEntityDescription,
|
||||||
|
|
|
@ -3,11 +3,11 @@ from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from tuya_iot import TuyaCloudOpenAPIEndpoint
|
from tuya_iot import TuyaCloudOpenAPIEndpoint
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components.sensor import SensorDeviceClass
|
from homeassistant.components.sensor import SensorDeviceClass
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from enum import StrEnum
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Final, final
|
from typing import Any, Final, final
|
||||||
|
@ -10,7 +11,6 @@ from typing import Any, Final, final
|
||||||
from awesomeversion import AwesomeVersion, AwesomeVersionCompareException
|
from awesomeversion import AwesomeVersion, AwesomeVersionCompareException
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components import websocket_api
|
from homeassistant.components import websocket_api
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import STATE_OFF, STATE_ON, EntityCategory
|
from homeassistant.const import STATE_OFF, STATE_ON, EntityCategory
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""Constants for the Wallbox integration."""
|
"""Constants for the Wallbox integration."""
|
||||||
from homeassistant.backports.enum import StrEnum
|
from enum import StrEnum
|
||||||
|
|
||||||
DOMAIN = "wallbox"
|
DOMAIN = "wallbox"
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from collections.abc import Callable
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import datetime
|
import datetime
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from enum import IntEnum
|
from enum import IntEnum, StrEnum
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
|
@ -27,7 +27,6 @@ from withings_api.common import (
|
||||||
query_measure_groups,
|
query_measure_groups,
|
||||||
)
|
)
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components import webhook
|
from homeassistant.components import webhook
|
||||||
from homeassistant.components.application_credentials import AuthImplementation
|
from homeassistant.components.application_credentials import AuthImplementation
|
||||||
from homeassistant.components.http import HomeAssistantView
|
from homeassistant.components.http import HomeAssistantView
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""Constants used by the Withings component."""
|
"""Constants used by the Withings component."""
|
||||||
from homeassistant.backports.enum import StrEnum
|
from enum import StrEnum
|
||||||
|
|
||||||
CONF_PROFILES = "profiles"
|
CONF_PROFILES = "profiles"
|
||||||
CONF_USE_WEBHOOK = "use_webhook"
|
CONF_USE_WEBHOOK = "use_webhook"
|
||||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Generator
|
from collections.abc import Generator
|
||||||
from dataclasses import asdict, dataclass, field
|
from dataclasses import asdict, dataclass, field
|
||||||
|
from enum import StrEnum
|
||||||
from typing import TYPE_CHECKING, Any, cast
|
from typing import TYPE_CHECKING, Any, cast
|
||||||
|
|
||||||
from awesomeversion import AwesomeVersion
|
from awesomeversion import AwesomeVersion
|
||||||
|
@ -47,7 +48,6 @@ from zwave_js_server.model.value import (
|
||||||
Value as ZwaveValue,
|
Value as ZwaveValue,
|
||||||
)
|
)
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import EntityCategory, Platform
|
from homeassistant.const import EntityCategory, Platform
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.helpers.device_registry import DeviceEntry
|
from homeassistant.helpers.device_registry import DeviceEntry
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
"""Constants for ZWaveMe."""
|
"""Constants for ZWaveMe."""
|
||||||
from homeassistant.backports.enum import StrEnum
|
from enum import StrEnum
|
||||||
|
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import Platform
|
||||||
|
|
||||||
# Base component constants
|
# Base component constants
|
||||||
|
|
|
@ -6,7 +6,7 @@ from collections import ChainMap
|
||||||
from collections.abc import Callable, Coroutine, Generator, Iterable, Mapping
|
from collections.abc import Callable, Coroutine, Generator, Iterable, Mapping
|
||||||
from contextvars import ContextVar
|
from contextvars import ContextVar
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from enum import Enum
|
from enum import Enum, StrEnum
|
||||||
import functools
|
import functools
|
||||||
import logging
|
import logging
|
||||||
from random import randint
|
from random import randint
|
||||||
|
@ -14,7 +14,6 @@ from types import MappingProxyType
|
||||||
from typing import TYPE_CHECKING, Any, Self, TypeVar, cast
|
from typing import TYPE_CHECKING, Any, Self, TypeVar, cast
|
||||||
|
|
||||||
from . import data_entry_flow, loader
|
from . import data_entry_flow, loader
|
||||||
from .backports.enum import StrEnum
|
|
||||||
from .components import persistent_notification
|
from .components import persistent_notification
|
||||||
from .const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP, Platform
|
from .const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP, Platform
|
||||||
from .core import CALLBACK_TYPE, CoreState, Event, HassJob, HomeAssistant, callback
|
from .core import CALLBACK_TYPE, CoreState, Event, HassJob, HomeAssistant, callback
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
"""Constants used by Home Assistant components."""
|
"""Constants used by Home Assistant components."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from .backports.enum import StrEnum
|
|
||||||
|
|
||||||
APPLICATION_NAME: Final = "HomeAssistant"
|
APPLICATION_NAME: Final = "HomeAssistant"
|
||||||
MAJOR_VERSION: Final = 2023
|
MAJOR_VERSION: Final = 2023
|
||||||
MINOR_VERSION: Final = 8
|
MINOR_VERSION: Final = 8
|
||||||
|
|
|
@ -43,7 +43,6 @@ import voluptuous as vol
|
||||||
import yarl
|
import yarl
|
||||||
|
|
||||||
from . import block_async_io, loader, util
|
from . import block_async_io, loader, util
|
||||||
from .backports.enum import StrEnum
|
|
||||||
from .const import (
|
from .const import (
|
||||||
ATTR_DOMAIN,
|
ATTR_DOMAIN,
|
||||||
ATTR_FRIENDLY_NAME,
|
ATTR_FRIENDLY_NAME,
|
||||||
|
@ -133,7 +132,7 @@ BLOCK_LOG_TIMEOUT = 60
|
||||||
ServiceResponse = JsonObjectType | None
|
ServiceResponse = JsonObjectType | None
|
||||||
|
|
||||||
|
|
||||||
class ConfigSource(StrEnum):
|
class ConfigSource(enum.StrEnum):
|
||||||
"""Source of core configuration."""
|
"""Source of core configuration."""
|
||||||
|
|
||||||
DEFAULT = "default"
|
DEFAULT = "default"
|
||||||
|
@ -1669,7 +1668,7 @@ class StateMachine:
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class SupportsResponse(StrEnum):
|
class SupportsResponse(enum.StrEnum):
|
||||||
"""Service call response configuration."""
|
"""Service call response configuration."""
|
||||||
|
|
||||||
NONE = "none"
|
NONE = "none"
|
||||||
|
|
|
@ -5,13 +5,13 @@ import abc
|
||||||
from collections.abc import Callable, Iterable, Mapping
|
from collections.abc import Callable, Iterable, Mapping
|
||||||
import copy
|
import copy
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
from types import MappingProxyType
|
from types import MappingProxyType
|
||||||
from typing import Any, Required, TypedDict
|
from typing import Any, Required, TypedDict
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from .backports.enum import StrEnum
|
|
||||||
from .core import HomeAssistant, callback
|
from .core import HomeAssistant, callback
|
||||||
from .exceptions import HomeAssistantError
|
from .exceptions import HomeAssistantError
|
||||||
from .helpers.frame import report
|
from .helpers.frame import report
|
||||||
|
|
|
@ -9,7 +9,7 @@ from datetime import (
|
||||||
time as time_sys,
|
time as time_sys,
|
||||||
timedelta,
|
timedelta,
|
||||||
)
|
)
|
||||||
from enum import Enum
|
from enum import Enum, StrEnum
|
||||||
import inspect
|
import inspect
|
||||||
import logging
|
import logging
|
||||||
from numbers import Number
|
from numbers import Number
|
||||||
|
@ -25,7 +25,6 @@ from uuid import UUID
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
import voluptuous_serialize
|
import voluptuous_serialize
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_AREA_ID,
|
ATTR_AREA_ID,
|
||||||
ATTR_DEVICE_ID,
|
ATTR_DEVICE_ID,
|
||||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from collections import UserDict
|
from collections import UserDict
|
||||||
from collections.abc import Coroutine, ValuesView
|
from collections.abc import Coroutine, ValuesView
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
||||||
|
@ -10,7 +11,6 @@ from urllib.parse import urlparse
|
||||||
|
|
||||||
import attr
|
import attr
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP
|
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP
|
||||||
from homeassistant.core import Event, HomeAssistant, callback
|
from homeassistant.core import Event, HomeAssistant, callback
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
|
|
|
@ -12,6 +12,7 @@ from __future__ import annotations
|
||||||
from collections import UserDict
|
from collections import UserDict
|
||||||
from collections.abc import Callable, Iterable, Mapping, ValuesView
|
from collections.abc import Callable, Iterable, Mapping, ValuesView
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from enum import StrEnum
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
||||||
|
@ -19,7 +20,6 @@ from typing import TYPE_CHECKING, Any, TypeVar, cast
|
||||||
import attr
|
import attr
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_DEVICE_CLASS,
|
ATTR_DEVICE_CLASS,
|
||||||
ATTR_FRIENDLY_NAME,
|
ATTR_FRIENDLY_NAME,
|
||||||
|
|
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||||
|
|
||||||
import dataclasses
|
import dataclasses
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from enum import StrEnum
|
||||||
import functools as ft
|
import functools as ft
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
from awesomeversion import AwesomeVersion, AwesomeVersionStrategy
|
from awesomeversion import AwesomeVersion, AwesomeVersionStrategy
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import __version__ as ha_version
|
from homeassistant.const import __version__ as ha_version
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.util.async_ import run_callback_threadsafe
|
from homeassistant.util.async_ import run_callback_threadsafe
|
||||||
|
|
|
@ -2,14 +2,13 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Callable, Mapping, Sequence
|
from collections.abc import Callable, Mapping, Sequence
|
||||||
from enum import IntFlag
|
from enum import IntFlag, StrEnum
|
||||||
from functools import cache
|
from functools import cache
|
||||||
from typing import Any, Generic, Literal, Required, TypedDict, TypeVar, cast
|
from typing import Any, Generic, Literal, Required, TypedDict, TypeVar, cast
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.const import CONF_MODE, CONF_UNIT_OF_MEASUREMENT
|
from homeassistant.const import CONF_MODE, CONF_UNIT_OF_MEASUREMENT
|
||||||
from homeassistant.core import split_entity_id, valid_entity_id
|
from homeassistant.core import split_entity_id, valid_entity_id
|
||||||
from homeassistant.util import decorator
|
from homeassistant.util import decorator
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
"""Helper to create SSL contexts."""
|
"""Helper to create SSL contexts."""
|
||||||
import contextlib
|
import contextlib
|
||||||
|
from enum import StrEnum
|
||||||
from functools import cache
|
from functools import cache
|
||||||
from os import environ
|
from os import environ
|
||||||
import ssl
|
import ssl
|
||||||
|
|
||||||
import certifi
|
import certifi
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
|
|
||||||
class SSLCipherList(StrEnum):
|
class SSLCipherList(StrEnum):
|
||||||
"""SSL cipher lists."""
|
"""SSL cipher lists."""
|
||||||
|
|
|
@ -18,6 +18,12 @@ class ObsoleteImportMatch:
|
||||||
|
|
||||||
|
|
||||||
_OBSOLETE_IMPORT: dict[str, list[ObsoleteImportMatch]] = {
|
_OBSOLETE_IMPORT: dict[str, list[ObsoleteImportMatch]] = {
|
||||||
|
"homeassistant.backports.enum": [
|
||||||
|
ObsoleteImportMatch(
|
||||||
|
reason="We can now use the Python 3.11 provided enum.StrEnum instead",
|
||||||
|
constant=re.compile(r"^StrEnum$"),
|
||||||
|
),
|
||||||
|
],
|
||||||
"homeassistant.components.alarm_control_panel": [
|
"homeassistant.components.alarm_control_panel": [
|
||||||
ObsoleteImportMatch(
|
ObsoleteImportMatch(
|
||||||
reason="replaced by AlarmControlPanelEntityFeature enum",
|
reason="replaced by AlarmControlPanelEntityFeature enum",
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
"""The tests for the backports."""
|
|
|
@ -1,35 +0,0 @@
|
||||||
"""Test Home Assistant enum utils."""
|
|
||||||
|
|
||||||
from enum import auto
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
|
|
||||||
|
|
||||||
def test_strenum() -> None:
|
|
||||||
"""Test StrEnum."""
|
|
||||||
|
|
||||||
class TestEnum(StrEnum):
|
|
||||||
Test = "test"
|
|
||||||
|
|
||||||
assert str(TestEnum.Test) == "test"
|
|
||||||
assert TestEnum.Test == "test"
|
|
||||||
assert TestEnum("test") is TestEnum.Test
|
|
||||||
assert TestEnum(TestEnum.Test) is TestEnum.Test
|
|
||||||
|
|
||||||
with pytest.raises(ValueError):
|
|
||||||
TestEnum(42)
|
|
||||||
|
|
||||||
with pytest.raises(ValueError):
|
|
||||||
TestEnum("str but unknown")
|
|
||||||
|
|
||||||
with pytest.raises(TypeError):
|
|
||||||
|
|
||||||
class FailEnum(StrEnum):
|
|
||||||
Test = 42
|
|
||||||
|
|
||||||
with pytest.raises(TypeError):
|
|
||||||
|
|
||||||
class FailEnum2(StrEnum):
|
|
||||||
Test = auto()
|
|
|
@ -1,8 +1,9 @@
|
||||||
"""Test ESPHome enum mapper."""
|
"""Test ESPHome enum mapper."""
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
|
|
||||||
from aioesphomeapi import APIIntEnum
|
from aioesphomeapi import APIIntEnum
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.components.esphome.enum_mapper import EsphomeEnumMapper
|
from homeassistant.components.esphome.enum_mapper import EsphomeEnumMapper
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -694,7 +694,7 @@ async def test_device_class(hass: HomeAssistant) -> None:
|
||||||
"""Test for device_class property."""
|
"""Test for device_class property."""
|
||||||
await setup_samsungtv_entry(hass, MOCK_CONFIG)
|
await setup_samsungtv_entry(hass, MOCK_CONFIG)
|
||||||
state = hass.states.get(ENTITY_ID)
|
state = hass.states.get(ENTITY_ID)
|
||||||
assert state.attributes[ATTR_DEVICE_CLASS] is MediaPlayerDeviceClass.TV.value
|
assert state.attributes[ATTR_DEVICE_CLASS] == MediaPlayerDeviceClass.TV
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("rest_api")
|
@pytest.mark.usefixtures("rest_api")
|
||||||
|
|
|
@ -489,7 +489,7 @@ async def test_device_class(
|
||||||
state = hass.states.get("sensor.energy_meter")
|
state = hass.states.get("sensor.energy_meter")
|
||||||
assert state is not None
|
assert state is not None
|
||||||
assert state.state == "0"
|
assert state.state == "0"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) is SensorDeviceClass.ENERGY.value
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY
|
||||||
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.TOTAL
|
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.TOTAL
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfEnergy.KILO_WATT_HOUR
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfEnergy.KILO_WATT_HOUR
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
"""Test enum helpers."""
|
"""Test enum helpers."""
|
||||||
from enum import Enum, IntEnum, IntFlag
|
from enum import Enum, IntEnum, IntFlag, StrEnum
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.backports.enum import StrEnum
|
|
||||||
from homeassistant.util.enum import try_parse_enum
|
from homeassistant.util.enum import try_parse_enum
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue