diff --git a/homeassistant/components/brother/const.py b/homeassistant/components/brother/const.py index a812e81f0ee..2a2e8724821 100644 --- a/homeassistant/components/brother/const.py +++ b/homeassistant/components/brother/const.py @@ -1,57 +1,61 @@ """Constants for Brother integration.""" from __future__ import annotations -from typing import TypedDict +from typing import Final from homeassistant.const import PERCENTAGE -ATTR_BELT_UNIT_REMAINING_LIFE = "belt_unit_remaining_life" -ATTR_BLACK_DRUM_COUNTER = "black_drum_counter" -ATTR_BLACK_DRUM_REMAINING_LIFE = "black_drum_remaining_life" -ATTR_BLACK_DRUM_REMAINING_PAGES = "black_drum_remaining_pages" -ATTR_BLACK_INK_REMAINING = "black_ink_remaining" -ATTR_BLACK_TONER_REMAINING = "black_toner_remaining" -ATTR_BW_COUNTER = "b/w_counter" -ATTR_COLOR_COUNTER = "color_counter" -ATTR_CYAN_DRUM_COUNTER = "cyan_drum_counter" -ATTR_CYAN_DRUM_REMAINING_LIFE = "cyan_drum_remaining_life" -ATTR_CYAN_DRUM_REMAINING_PAGES = "cyan_drum_remaining_pages" -ATTR_CYAN_INK_REMAINING = "cyan_ink_remaining" -ATTR_CYAN_TONER_REMAINING = "cyan_toner_remaining" -ATTR_DRUM_COUNTER = "drum_counter" -ATTR_DRUM_REMAINING_LIFE = "drum_remaining_life" -ATTR_DRUM_REMAINING_PAGES = "drum_remaining_pages" -ATTR_DUPLEX_COUNTER = "duplex_unit_pages_counter" -ATTR_FUSER_REMAINING_LIFE = "fuser_remaining_life" -ATTR_LASER_REMAINING_LIFE = "laser_remaining_life" -ATTR_MAGENTA_DRUM_COUNTER = "magenta_drum_counter" -ATTR_MAGENTA_DRUM_REMAINING_LIFE = "magenta_drum_remaining_life" -ATTR_MAGENTA_DRUM_REMAINING_PAGES = "magenta_drum_remaining_pages" -ATTR_MAGENTA_INK_REMAINING = "magenta_ink_remaining" -ATTR_MAGENTA_TONER_REMAINING = "magenta_toner_remaining" -ATTR_MANUFACTURER = "Brother" -ATTR_PAGE_COUNTER = "page_counter" -ATTR_PF_KIT_1_REMAINING_LIFE = "pf_kit_1_remaining_life" -ATTR_PF_KIT_MP_REMAINING_LIFE = "pf_kit_mp_remaining_life" -ATTR_STATUS = "status" -ATTR_UPTIME = "uptime" -ATTR_YELLOW_DRUM_COUNTER = "yellow_drum_counter" -ATTR_YELLOW_DRUM_REMAINING_LIFE = "yellow_drum_remaining_life" -ATTR_YELLOW_DRUM_REMAINING_PAGES = "yellow_drum_remaining_pages" -ATTR_YELLOW_INK_REMAINING = "yellow_ink_remaining" -ATTR_YELLOW_TONER_REMAINING = "yellow_toner_remaining" +from .model import SensorDescription -DATA_CONFIG_ENTRY = "config_entry" +ATTR_BELT_UNIT_REMAINING_LIFE: Final = "belt_unit_remaining_life" +ATTR_BLACK_DRUM_COUNTER: Final = "black_drum_counter" +ATTR_BLACK_DRUM_REMAINING_LIFE: Final = "black_drum_remaining_life" +ATTR_BLACK_DRUM_REMAINING_PAGES: Final = "black_drum_remaining_pages" +ATTR_BLACK_INK_REMAINING: Final = "black_ink_remaining" +ATTR_BLACK_TONER_REMAINING: Final = "black_toner_remaining" +ATTR_BW_COUNTER: Final = "b/w_counter" +ATTR_COLOR_COUNTER: Final = "color_counter" +ATTR_COUNTER: Final = "counter" +ATTR_CYAN_DRUM_COUNTER: Final = "cyan_drum_counter" +ATTR_CYAN_DRUM_REMAINING_LIFE: Final = "cyan_drum_remaining_life" +ATTR_CYAN_DRUM_REMAINING_PAGES: Final = "cyan_drum_remaining_pages" +ATTR_CYAN_INK_REMAINING: Final = "cyan_ink_remaining" +ATTR_CYAN_TONER_REMAINING: Final = "cyan_toner_remaining" +ATTR_DRUM_COUNTER: Final = "drum_counter" +ATTR_DRUM_REMAINING_LIFE: Final = "drum_remaining_life" +ATTR_DRUM_REMAINING_PAGES: Final = "drum_remaining_pages" +ATTR_DUPLEX_COUNTER: Final = "duplex_unit_pages_counter" +ATTR_FUSER_REMAINING_LIFE: Final = "fuser_remaining_life" +ATTR_LASER_REMAINING_LIFE: Final = "laser_remaining_life" +ATTR_MAGENTA_DRUM_COUNTER: Final = "magenta_drum_counter" +ATTR_MAGENTA_DRUM_REMAINING_LIFE: Final = "magenta_drum_remaining_life" +ATTR_MAGENTA_DRUM_REMAINING_PAGES: Final = "magenta_drum_remaining_pages" +ATTR_MAGENTA_INK_REMAINING: Final = "magenta_ink_remaining" +ATTR_MAGENTA_TONER_REMAINING: Final = "magenta_toner_remaining" +ATTR_MANUFACTURER: Final = "Brother" +ATTR_PAGE_COUNTER: Final = "page_counter" +ATTR_PF_KIT_1_REMAINING_LIFE: Final = "pf_kit_1_remaining_life" +ATTR_PF_KIT_MP_REMAINING_LIFE: Final = "pf_kit_mp_remaining_life" +ATTR_REMAINING_PAGES: Final = "remaining_pages" +ATTR_STATUS: Final = "status" +ATTR_UPTIME: Final = "uptime" +ATTR_YELLOW_DRUM_COUNTER: Final = "yellow_drum_counter" +ATTR_YELLOW_DRUM_REMAINING_LIFE: Final = "yellow_drum_remaining_life" +ATTR_YELLOW_DRUM_REMAINING_PAGES: Final = "yellow_drum_remaining_pages" +ATTR_YELLOW_INK_REMAINING: Final = "yellow_ink_remaining" +ATTR_YELLOW_TONER_REMAINING: Final = "yellow_toner_remaining" -DOMAIN = "brother" +DATA_CONFIG_ENTRY: Final = "config_entry" -UNIT_PAGES = "p" +DOMAIN: Final = "brother" -PRINTER_TYPES = ["laser", "ink"] +UNIT_PAGES: Final = "p" -SNMP = "snmp" +PRINTER_TYPES: Final = ["laser", "ink"] -ATTRS_MAP: dict[str, tuple[str, str]] = { +SNMP: Final = "snmp" + +ATTRS_MAP: Final[dict[str, tuple[str, str]]] = { ATTR_DRUM_REMAINING_LIFE: (ATTR_DRUM_REMAINING_PAGES, ATTR_DRUM_COUNTER), ATTR_BLACK_DRUM_REMAINING_LIFE: ( ATTR_BLACK_DRUM_REMAINING_PAGES, @@ -71,7 +75,7 @@ ATTRS_MAP: dict[str, tuple[str, str]] = { ), } -SENSOR_TYPES: dict[str, SensorDescription] = { +SENSOR_TYPES: Final[dict[str, SensorDescription]] = { ATTR_STATUS: { "icon": "mdi:printer", "label": ATTR_STATUS.title(), @@ -217,12 +221,3 @@ SENSOR_TYPES: dict[str, SensorDescription] = { "enabled": False, }, } - - -class SensorDescription(TypedDict): - """Sensor description class.""" - - icon: str | None - label: str - unit: str | None - enabled: bool diff --git a/homeassistant/components/brother/model.py b/homeassistant/components/brother/model.py new file mode 100644 index 00000000000..22aa95eda50 --- /dev/null +++ b/homeassistant/components/brother/model.py @@ -0,0 +1,13 @@ +"""Type definitions for Brother integration.""" +from __future__ import annotations + +from typing import TypedDict + + +class SensorDescription(TypedDict): + """Sensor description class.""" + + icon: str | None + label: str + unit: str | None + enabled: bool diff --git a/homeassistant/components/brother/sensor.py b/homeassistant/components/brother/sensor.py index 8cb153ac199..2f66e1c75d5 100644 --- a/homeassistant/components/brother/sensor.py +++ b/homeassistant/components/brother/sensor.py @@ -13,7 +13,9 @@ from homeassistant.helpers.update_coordinator import CoordinatorEntity from . import BrotherDataUpdateCoordinator from .const import ( + ATTR_COUNTER, ATTR_MANUFACTURER, + ATTR_REMAINING_PAGES, ATTR_UPTIME, ATTRS_MAP, DATA_CONFIG_ENTRY, @@ -21,9 +23,6 @@ from .const import ( SENSOR_TYPES, ) -ATTR_COUNTER = "counter" -ATTR_REMAINING_PAGES = "remaining_pages" - async def async_setup_entry( hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback