mirror of
https://github.com/esphome/esphome.git
synced 2024-11-29 18:24:13 +01:00
3c243e663f
* dashboard: fire events when entry is updated or state changes * dashboard: fire events when entry is updated or state changes * dashboard: fire events when entry is updated or state changes * tweaks * fixes * remove typing_extensions * rename for asyncio * rename for asyncio * rename for asyncio * preen * lint * lint * move dict converter * lint
19 lines
596 B
Python
19 lines
596 B
Python
"""Enum backports from standard lib."""
|
|
from __future__ import annotations
|
|
|
|
from enum import Enum
|
|
from typing import Any
|
|
|
|
|
|
class StrEnum(str, Enum):
|
|
"""Partial backport of Python 3.11's StrEnum for our basic use cases."""
|
|
|
|
def __new__(cls, value: str, *args: Any, **kwargs: Any) -> StrEnum:
|
|
"""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 str(self.value)
|