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) 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 return (percent * 255.0) / 100.0
LightState = NamedTuple( class LightState(NamedTuple):
"LightState", """Light state."""
(
("state", bool), state: bool
("brightness", int), brightness: int
("color_temp", float), color_temp: float
("hs", Tuple[int, int]), hs: Tuple[int, int]
("emeter_params", dict), emeter_params: dict
),
)
LightFeatures = NamedTuple( class LightFeatures(NamedTuple):
"LightFeatures", """Light features."""
(
("sysinfo", Dict[str, Any]), sysinfo: Dict[str, Any]
("mac", str), mac: str
("alias", str), alias: str
("model", str), model: str
("supported_features", int), supported_features: int
("min_mireds", float), min_mireds: float
("max_mireds", float), max_mireds: float
),
)
class TPLinkSmartBulb(Light): class TPLinkSmartBulb(Light):

View File

@ -26,20 +26,19 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component from homeassistant.setup import async_setup_component
LightMockData = NamedTuple(
"LightMockData", class LightMockData(NamedTuple):
( """Mock light data."""
("sys_info", dict),
("light_state", dict), sys_info: dict
("set_light_state", Callable[[dict], None]), light_state: dict
("set_light_state_mock", Mock), set_light_state: Callable[[dict], None]
("get_light_state_mock", Mock), set_light_state_mock: Mock
("current_consumption_mock", Mock), get_light_state_mock: Mock
("get_sysinfo_mock", Mock), current_consumption_mock: Mock
("get_emeter_daily_mock", Mock), get_sysinfo_mock: Mock
("get_emeter_monthly_mock", Mock), get_emeter_daily_mock: Mock
), get_emeter_monthly_mock: Mock
)
@pytest.fixture(name="light_mock_data") @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.core import HomeAssistant
from homeassistant.setup import async_setup_component from homeassistant.setup import async_setup_component
ComponentData = NamedTuple("ComponentData", (("controller", VeraController),))
class ComponentData(NamedTuple):
"""Component data."""
controller: VeraController
class ComponentFactory: class ComponentFactory: