Use PEP 526 syntax with NamedTuples (#33081)

This commit is contained in:
Ville Skyttä 2020-03-21 11:18:32 +02:00 committed by GitHub
parent e87fab6b5f
commit ffc9bcb4d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 38 deletions

View File

@ -123,4 +123,8 @@ class Credentials:
is_new = attr.ib(type=bool, default=True)
UserMeta = NamedTuple("UserMeta", [("name", Optional[str]), ("is_active", bool)])
class UserMeta(NamedTuple):
"""User metadata."""
name: Optional[str]
is_active: bool

View File

@ -75,30 +75,26 @@ def brightness_from_percentage(percent):
return (percent * 255.0) / 100.0
LightState = NamedTuple(
"LightState",
(
("state", bool),
("brightness", int),
("color_temp", float),
("hs", Tuple[int, int]),
("emeter_params", dict),
),
)
class LightState(NamedTuple):
"""Light state."""
state: bool
brightness: int
color_temp: float
hs: Tuple[int, int]
emeter_params: dict
LightFeatures = NamedTuple(
"LightFeatures",
(
("sysinfo", Dict[str, Any]),
("mac", str),
("alias", str),
("model", str),
("supported_features", int),
("min_mireds", float),
("max_mireds", float),
),
)
class LightFeatures(NamedTuple):
"""Light features."""
sysinfo: Dict[str, Any]
mac: str
alias: str
model: str
supported_features: int
min_mireds: float
max_mireds: float
class TPLinkSmartBulb(Light):

View File

@ -26,20 +26,19 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
LightMockData = NamedTuple(
"LightMockData",
(
("sys_info", dict),
("light_state", dict),
("set_light_state", Callable[[dict], None]),
("set_light_state_mock", Mock),
("get_light_state_mock", Mock),
("current_consumption_mock", Mock),
("get_sysinfo_mock", Mock),
("get_emeter_daily_mock", Mock),
("get_emeter_monthly_mock", Mock),
),
)
class LightMockData(NamedTuple):
"""Mock light data."""
sys_info: dict
light_state: dict
set_light_state: Callable[[dict], None]
set_light_state_mock: Mock
get_light_state_mock: Mock
current_consumption_mock: Mock
get_sysinfo_mock: Mock
get_emeter_daily_mock: Mock
get_emeter_monthly_mock: Mock
@pytest.fixture(name="light_mock_data")

View File

@ -9,7 +9,11 @@ from homeassistant.components.vera import CONF_CONTROLLER, DOMAIN
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
ComponentData = NamedTuple("ComponentData", (("controller", VeraController),))
class ComponentData(NamedTuple):
"""Component data."""
controller: VeraController
class ComponentFactory: