mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Migrate backported StrEnum to built-in StrEnum (#97101)
This commit is contained in:
parent
38e3e20f74
commit
30058297cf
@ -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 enum import Enum
|
||||
from typing import Any, Self
|
||||
from enum import StrEnum
|
||||
|
||||
|
||||
class StrEnum(str, Enum):
|
||||
"""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")
|
||||
__all__ = [
|
||||
"StrEnum",
|
||||
]
|
||||
|
@ -1,9 +1,7 @@
|
||||
"""Provides the constants needed for component."""
|
||||
from enum import IntFlag
|
||||
from enum import IntFlag, StrEnum
|
||||
from typing import Final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
DOMAIN: Final = "alarm_control_panel"
|
||||
|
||||
ATTR_CHANGED_BY: Final = "changed_by"
|
||||
|
@ -4,12 +4,12 @@ from __future__ import annotations
|
||||
import asyncio
|
||||
from collections.abc import AsyncIterable, Callable, Iterable
|
||||
from dataclasses import asdict, dataclass, field
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Any, cast
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components import conversation, media_source, stt, tts, websocket_api
|
||||
from homeassistant.components.tts.media_source import (
|
||||
generate_media_source_id as tts_generate_media_source_id,
|
||||
|
@ -2,11 +2,10 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from enum import StrEnum
|
||||
|
||||
import webrtcvad
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
_SAMPLE_RATE = 16000
|
||||
|
||||
|
||||
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Literal, final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import STATE_OFF, STATE_ON
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
@ -1,10 +1,9 @@
|
||||
"""Constants for Bravia TV integration."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import Final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
ATTR_CID: Final = "cid"
|
||||
ATTR_MAC: Final = "macAddr"
|
||||
ATTR_MANUFACTURER: Final = "Sony"
|
||||
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime, timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.config_validation import ( # noqa: F401
|
||||
|
@ -1,8 +1,7 @@
|
||||
"""Constants for Camera component."""
|
||||
from enum import StrEnum
|
||||
from typing import Final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
DOMAIN: Final = "camera"
|
||||
|
||||
DATA_CAMERA_PREFS: Final = "camera_prefs"
|
||||
|
@ -1,8 +1,6 @@
|
||||
"""Provides the constants needed for component."""
|
||||
|
||||
from enum import IntFlag
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import IntFlag, StrEnum
|
||||
|
||||
|
||||
class HVACMode(StrEnum):
|
||||
|
@ -4,14 +4,13 @@ from __future__ import annotations
|
||||
from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import IntFlag
|
||||
from enum import IntFlag, StrEnum
|
||||
import functools as ft
|
||||
import logging
|
||||
from typing import Any, ParamSpec, TypeVar, final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
SERVICE_CLOSE_COVER,
|
||||
|
@ -2,11 +2,10 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
LOGGER: Final = logging.getLogger(__package__)
|
||||
|
||||
DOMAIN: Final = "device_tracker"
|
||||
|
@ -1,5 +1,5 @@
|
||||
"""Constants for the Diagnostics integration."""
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import StrEnum
|
||||
|
||||
DOMAIN = "diagnostics"
|
||||
|
||||
|
@ -4,6 +4,7 @@ from __future__ import annotations
|
||||
import asyncio
|
||||
from collections.abc import Callable, Coroutine
|
||||
from dataclasses import dataclass
|
||||
from enum import StrEnum
|
||||
import functools
|
||||
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 didl_lite import didl_lite
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.backports.functools import cached_property
|
||||
from homeassistant.components import ssdp
|
||||
from homeassistant.components.media_player import BrowseError, MediaClass
|
||||
|
@ -3,10 +3,10 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import asdict, dataclass
|
||||
from datetime import datetime, timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Any, Self, final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.config_validation import ( # noqa: F401
|
||||
|
@ -1,5 +1,6 @@
|
||||
"""Constants for the FRITZ!Box Tools integration."""
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import Literal
|
||||
|
||||
from fritzconnection.core.exceptions import (
|
||||
@ -13,7 +14,6 @@ from fritzconnection.core.exceptions import (
|
||||
FritzServiceError,
|
||||
)
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import Platform
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
"""Config flow for fritzbox_callmonitor."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import Any, cast
|
||||
|
||||
from fritzconnection import FritzConnection
|
||||
@ -9,7 +10,6 @@ from requests.exceptions import ConnectionError as RequestsConnectionError
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant import config_entries
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import (
|
||||
CONF_HOST,
|
||||
CONF_NAME,
|
||||
|
@ -1,7 +1,7 @@
|
||||
"""Constants for the AVM Fritz!Box call monitor integration."""
|
||||
from enum import StrEnum
|
||||
from typing import Final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import Platform
|
||||
|
||||
|
||||
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
|
||||
from collections.abc import Mapping
|
||||
from datetime import datetime, timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
import queue
|
||||
from threading import Event as ThreadingEvent, Thread
|
||||
@ -11,7 +12,6 @@ from typing import Any, cast
|
||||
|
||||
from fritzconnection.core.fritzmonitor import FritzMonitor
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components.sensor import SensorEntity
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP
|
||||
|
@ -1,5 +1,5 @@
|
||||
"""Hass.io const variables."""
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import StrEnum
|
||||
|
||||
DOMAIN = "hassio"
|
||||
|
||||
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Any, final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
ATTR_MODE,
|
||||
|
@ -1,7 +1,5 @@
|
||||
"""Provides the constants needed for component."""
|
||||
from enum import IntFlag
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import IntFlag, StrEnum
|
||||
|
||||
MODE_NORMAL = "normal"
|
||||
MODE_ECO = "eco"
|
||||
|
@ -4,12 +4,12 @@ from __future__ import annotations
|
||||
import asyncio
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Any, Final, TypedDict, final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components.camera import Image
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
|
@ -5,14 +5,13 @@ from collections.abc import Iterable
|
||||
import csv
|
||||
import dataclasses
|
||||
from datetime import timedelta
|
||||
from enum import IntFlag
|
||||
from enum import IntFlag, StrEnum
|
||||
import logging
|
||||
import os
|
||||
from typing import Any, Self, cast, final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
SERVICE_TOGGLE,
|
||||
|
@ -5,10 +5,10 @@ from collections import defaultdict
|
||||
from collections.abc import Mapping
|
||||
import contextlib
|
||||
from dataclasses import asdict, dataclass
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Any, cast
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers.storage import Store
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
@ -7,6 +7,7 @@ from collections.abc import Callable
|
||||
from contextlib import suppress
|
||||
from dataclasses import dataclass
|
||||
import datetime as dt
|
||||
from enum import StrEnum
|
||||
import functools as ft
|
||||
import hashlib
|
||||
from http import HTTPStatus
|
||||
@ -22,7 +23,6 @@ import async_timeout
|
||||
import voluptuous as vol
|
||||
from yarl import URL
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components import websocket_api
|
||||
from homeassistant.components.http import KEY_AUTHENTICATED, HomeAssistantView
|
||||
from homeassistant.components.websocket_api import ERR_NOT_SUPPORTED, ERR_UNKNOWN_ERROR
|
||||
|
@ -1,7 +1,5 @@
|
||||
"""Provides the constants needed for component."""
|
||||
from enum import IntFlag
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import IntFlag, StrEnum
|
||||
|
||||
# How long our auth signature on the content should be valid for
|
||||
CONTENT_AUTH_EXPIRY_TIME = 3600 * 24
|
||||
|
@ -7,12 +7,12 @@ from collections import deque
|
||||
from collections.abc import Callable, Coroutine
|
||||
from dataclasses import dataclass, field
|
||||
import datetime as dt
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, Any, TypedDict
|
||||
|
||||
import attr
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import ATTR_ENTITY_ID, ATTR_NAME
|
||||
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback
|
||||
from homeassistant.helpers import template
|
||||
|
@ -1,11 +1,11 @@
|
||||
"""Provides the constants needed for the component."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import Final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import (
|
||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||
CONCENTRATION_PARTS_PER_BILLION,
|
||||
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||
|
||||
from collections.abc import Callable, Mapping
|
||||
from datetime import datetime
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Any, Final, TypedDict
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components import websocket_api
|
||||
from homeassistant.core import CALLBACK_TYPE, HomeAssistant, ServiceCall, callback
|
||||
from homeassistant.helpers import config_validation as cv, singleton
|
||||
|
@ -2,6 +2,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from enum import StrEnum
|
||||
from typing import Any
|
||||
|
||||
from aioqsw.const import (
|
||||
@ -14,7 +15,6 @@ from aioqsw.const import (
|
||||
QSD_SYSTEM_BOARD,
|
||||
)
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import CONF_URL
|
||||
from homeassistant.core import callback
|
||||
|
@ -4,9 +4,9 @@ from __future__ import annotations
|
||||
from collections.abc import Awaitable, Callable, Iterable
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
|
@ -1,6 +1,7 @@
|
||||
"""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.helpers.json import ( # noqa: F401 pylint: disable=unused-import
|
||||
JSON_DUMP,
|
||||
|
@ -1,11 +1,11 @@
|
||||
"""Constants for sensor."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import Final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import (
|
||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||
CONCENTRATION_PARTS_PER_BILLION,
|
||||
|
@ -1,14 +1,13 @@
|
||||
"""Constants for the Shelly integration."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from logging import Logger, getLogger
|
||||
import re
|
||||
from typing import Final
|
||||
|
||||
from awesomeversion import AwesomeVersion
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
DOMAIN: Final = "shelly"
|
||||
|
||||
LOGGER: Logger = getLogger(__package__)
|
||||
|
@ -1,6 +1,7 @@
|
||||
"""Support for Spotify media browsing."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from functools import partial
|
||||
import logging
|
||||
from typing import Any
|
||||
@ -8,7 +9,6 @@ from typing import Any
|
||||
from spotipy import Spotify
|
||||
import yarl
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components.media_player import (
|
||||
BrowseError,
|
||||
BrowseMedia,
|
||||
|
@ -1,9 +1,8 @@
|
||||
"""Constants for the Stookwijzer integration."""
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from typing import Final
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
DOMAIN: Final = "stookwijzer"
|
||||
LOGGER = logging.getLogger(__package__)
|
||||
|
||||
|
@ -3,11 +3,11 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
SERVICE_TOGGLE,
|
||||
|
@ -1,7 +1,7 @@
|
||||
"""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"
|
||||
MANUFACTURER = "switchbot"
|
||||
|
@ -3,13 +3,13 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import asdict, dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
import re
|
||||
from typing import Any, final
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import MAX_LENGTH_STATE_STATE
|
||||
from homeassistant.core import HomeAssistant, ServiceCall
|
||||
|
@ -1,9 +1,10 @@
|
||||
"""Support for Tuya Alarm."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
|
||||
from tuya_iot import TuyaDevice, TuyaDeviceManager
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components.alarm_control_panel import (
|
||||
AlarmControlPanelEntity,
|
||||
AlarmControlPanelEntityDescription,
|
||||
|
@ -3,11 +3,11 @@ from __future__ import annotations
|
||||
|
||||
from collections.abc import Callable
|
||||
from dataclasses import dataclass, field
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
|
||||
from tuya_iot import TuyaCloudOpenAPIEndpoint
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components.sensor import SensorDeviceClass
|
||||
from homeassistant.const import (
|
||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from enum import StrEnum
|
||||
from functools import lru_cache
|
||||
import logging
|
||||
from typing import Any, Final, final
|
||||
@ -10,7 +11,6 @@ from typing import Any, Final, final
|
||||
from awesomeversion import AwesomeVersion, AwesomeVersionCompareException
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components import websocket_api
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import STATE_OFF, STATE_ON, EntityCategory
|
||||
|
@ -1,5 +1,5 @@
|
||||
"""Constants for the Wallbox integration."""
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import StrEnum
|
||||
|
||||
DOMAIN = "wallbox"
|
||||
|
||||
|
@ -6,7 +6,7 @@ from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
import datetime
|
||||
from datetime import timedelta
|
||||
from enum import IntEnum
|
||||
from enum import IntEnum, StrEnum
|
||||
from http import HTTPStatus
|
||||
import logging
|
||||
import re
|
||||
@ -27,7 +27,6 @@ from withings_api.common import (
|
||||
query_measure_groups,
|
||||
)
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.components import webhook
|
||||
from homeassistant.components.application_credentials import AuthImplementation
|
||||
from homeassistant.components.http import HomeAssistantView
|
||||
|
@ -1,5 +1,5 @@
|
||||
"""Constants used by the Withings component."""
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import StrEnum
|
||||
|
||||
CONF_PROFILES = "profiles"
|
||||
CONF_USE_WEBHOOK = "use_webhook"
|
||||
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
|
||||
from collections.abc import Generator
|
||||
from dataclasses import asdict, dataclass, field
|
||||
from enum import StrEnum
|
||||
from typing import TYPE_CHECKING, Any, cast
|
||||
|
||||
from awesomeversion import AwesomeVersion
|
||||
@ -47,7 +48,6 @@ from zwave_js_server.model.value import (
|
||||
Value as ZwaveValue,
|
||||
)
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import EntityCategory, Platform
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.helpers.device_registry import DeviceEntry
|
||||
|
@ -1,5 +1,6 @@
|
||||
"""Constants for ZWaveMe."""
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from enum import StrEnum
|
||||
|
||||
from homeassistant.const import Platform
|
||||
|
||||
# Base component constants
|
||||
|
@ -6,7 +6,7 @@ from collections import ChainMap
|
||||
from collections.abc import Callable, Coroutine, Generator, Iterable, Mapping
|
||||
from contextvars import ContextVar
|
||||
from copy import deepcopy
|
||||
from enum import Enum
|
||||
from enum import Enum, StrEnum
|
||||
import functools
|
||||
import logging
|
||||
from random import randint
|
||||
@ -14,7 +14,6 @@ from types import MappingProxyType
|
||||
from typing import TYPE_CHECKING, Any, Self, TypeVar, cast
|
||||
|
||||
from . import data_entry_flow, loader
|
||||
from .backports.enum import StrEnum
|
||||
from .components import persistent_notification
|
||||
from .const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP, Platform
|
||||
from .core import CALLBACK_TYPE, CoreState, Event, HassJob, HomeAssistant, callback
|
||||
|
@ -1,10 +1,9 @@
|
||||
"""Constants used by Home Assistant components."""
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import StrEnum
|
||||
from typing import Final
|
||||
|
||||
from .backports.enum import StrEnum
|
||||
|
||||
APPLICATION_NAME: Final = "HomeAssistant"
|
||||
MAJOR_VERSION: Final = 2023
|
||||
MINOR_VERSION: Final = 8
|
||||
|
@ -43,7 +43,6 @@ import voluptuous as vol
|
||||
import yarl
|
||||
|
||||
from . import block_async_io, loader, util
|
||||
from .backports.enum import StrEnum
|
||||
from .const import (
|
||||
ATTR_DOMAIN,
|
||||
ATTR_FRIENDLY_NAME,
|
||||
@ -133,7 +132,7 @@ BLOCK_LOG_TIMEOUT = 60
|
||||
ServiceResponse = JsonObjectType | None
|
||||
|
||||
|
||||
class ConfigSource(StrEnum):
|
||||
class ConfigSource(enum.StrEnum):
|
||||
"""Source of core configuration."""
|
||||
|
||||
DEFAULT = "default"
|
||||
@ -1669,7 +1668,7 @@ class StateMachine:
|
||||
)
|
||||
|
||||
|
||||
class SupportsResponse(StrEnum):
|
||||
class SupportsResponse(enum.StrEnum):
|
||||
"""Service call response configuration."""
|
||||
|
||||
NONE = "none"
|
||||
|
@ -5,13 +5,13 @@ import abc
|
||||
from collections.abc import Callable, Iterable, Mapping
|
||||
import copy
|
||||
from dataclasses import dataclass
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
from types import MappingProxyType
|
||||
from typing import Any, Required, TypedDict
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from .backports.enum import StrEnum
|
||||
from .core import HomeAssistant, callback
|
||||
from .exceptions import HomeAssistantError
|
||||
from .helpers.frame import report
|
||||
|
@ -9,7 +9,7 @@ from datetime import (
|
||||
time as time_sys,
|
||||
timedelta,
|
||||
)
|
||||
from enum import Enum
|
||||
from enum import Enum, StrEnum
|
||||
import inspect
|
||||
import logging
|
||||
from numbers import Number
|
||||
@ -25,7 +25,6 @@ from uuid import UUID
|
||||
import voluptuous as vol
|
||||
import voluptuous_serialize
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import (
|
||||
ATTR_AREA_ID,
|
||||
ATTR_DEVICE_ID,
|
||||
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
|
||||
from collections import UserDict
|
||||
from collections.abc import Coroutine, ValuesView
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
import time
|
||||
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
||||
@ -10,7 +11,6 @@ from urllib.parse import urlparse
|
||||
|
||||
import attr
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP
|
||||
from homeassistant.core import Event, HomeAssistant, callback
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
|
@ -12,6 +12,7 @@ from __future__ import annotations
|
||||
from collections import UserDict
|
||||
from collections.abc import Callable, Iterable, Mapping, ValuesView
|
||||
from datetime import datetime, timedelta
|
||||
from enum import StrEnum
|
||||
import logging
|
||||
import time
|
||||
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
||||
@ -19,7 +20,6 @@ from typing import TYPE_CHECKING, Any, TypeVar, cast
|
||||
import attr
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import (
|
||||
ATTR_DEVICE_CLASS,
|
||||
ATTR_FRIENDLY_NAME,
|
||||
|
@ -3,12 +3,12 @@ from __future__ import annotations
|
||||
|
||||
import dataclasses
|
||||
from datetime import datetime
|
||||
from enum import StrEnum
|
||||
import functools as ft
|
||||
from typing import Any, cast
|
||||
|
||||
from awesomeversion import AwesomeVersion, AwesomeVersionStrategy
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import __version__ as ha_version
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.util.async_ import run_callback_threadsafe
|
||||
|
@ -2,14 +2,13 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Callable, Mapping, Sequence
|
||||
from enum import IntFlag
|
||||
from enum import IntFlag, StrEnum
|
||||
from functools import cache
|
||||
from typing import Any, Generic, Literal, Required, TypedDict, TypeVar, cast
|
||||
from uuid import UUID
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.const import CONF_MODE, CONF_UNIT_OF_MEASUREMENT
|
||||
from homeassistant.core import split_entity_id, valid_entity_id
|
||||
from homeassistant.util import decorator
|
||||
|
@ -1,13 +1,12 @@
|
||||
"""Helper to create SSL contexts."""
|
||||
import contextlib
|
||||
from enum import StrEnum
|
||||
from functools import cache
|
||||
from os import environ
|
||||
import ssl
|
||||
|
||||
import certifi
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
|
||||
|
||||
class SSLCipherList(StrEnum):
|
||||
"""SSL cipher lists."""
|
||||
|
@ -18,6 +18,12 @@ class 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": [
|
||||
ObsoleteImportMatch(
|
||||
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."""
|
||||
|
||||
from enum import StrEnum
|
||||
|
||||
from aioesphomeapi import APIIntEnum
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
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."""
|
||||
await setup_samsungtv_entry(hass, MOCK_CONFIG)
|
||||
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")
|
||||
|
@ -489,7 +489,7 @@ async def test_device_class(
|
||||
state = hass.states.get("sensor.energy_meter")
|
||||
assert state is not None
|
||||
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_UNIT_OF_MEASUREMENT) == UnitOfEnergy.KILO_WATT_HOUR
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
"""Test enum helpers."""
|
||||
from enum import Enum, IntEnum, IntFlag
|
||||
from enum import Enum, IntEnum, IntFlag, StrEnum
|
||||
from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
from homeassistant.backports.enum import StrEnum
|
||||
from homeassistant.util.enum import try_parse_enum
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user