mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Remove hassio from mypy ignore list (#74603)
* Remove hassio from mypy ignore list * Avoid if TYPE_CHECKING
This commit is contained in:
parent
996544da2d
commit
6540ba6239
@ -504,7 +504,7 @@ def is_hassio(hass: HomeAssistant) -> bool:
|
|||||||
|
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def get_supervisor_ip() -> str:
|
def get_supervisor_ip() -> str | None:
|
||||||
"""Return the supervisor ip address."""
|
"""Return the supervisor ip address."""
|
||||||
if "SUPERVISOR" not in os.environ:
|
if "SUPERVISOR" not in os.environ:
|
||||||
return None
|
return None
|
||||||
@ -537,6 +537,8 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: # noqa:
|
|||||||
if (data := await store.async_load()) is None:
|
if (data := await store.async_load()) is None:
|
||||||
data = {}
|
data = {}
|
||||||
|
|
||||||
|
assert isinstance(data, dict)
|
||||||
|
|
||||||
refresh_token = None
|
refresh_token = None
|
||||||
if "hassio_user" in data:
|
if "hassio_user" in data:
|
||||||
user = await hass.auth.async_get_user(data["hassio_user"])
|
user = await hass.auth.async_get_user(data["hassio_user"])
|
||||||
@ -710,6 +712,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: # noqa:
|
|||||||
async_setup_discovery_view(hass, hassio)
|
async_setup_discovery_view(hass, hassio)
|
||||||
|
|
||||||
# Init auth Hass.io feature
|
# Init auth Hass.io feature
|
||||||
|
assert user is not None
|
||||||
async_setup_auth_view(hass, user)
|
async_setup_auth_view(hass, user)
|
||||||
|
|
||||||
# Init ingress Hass.io feature
|
# Init ingress Hass.io feature
|
||||||
@ -877,7 +880,7 @@ class HassioDataUpdateCoordinator(DataUpdateCoordinator):
|
|||||||
except HassioAPIError as err:
|
except HassioAPIError as err:
|
||||||
raise UpdateFailed(f"Error on Supervisor API: {err}") from err
|
raise UpdateFailed(f"Error on Supervisor API: {err}") from err
|
||||||
|
|
||||||
new_data = {}
|
new_data: dict[str, Any] = {}
|
||||||
supervisor_info = get_supervisor_info(self.hass)
|
supervisor_info = get_supervisor_info(self.hass)
|
||||||
addons_info = get_addons_info(self.hass)
|
addons_info = get_addons_info(self.hass)
|
||||||
addons_stats = get_addons_stats(self.hass)
|
addons_stats = get_addons_stats(self.hass)
|
||||||
|
@ -43,6 +43,7 @@ class HassIOBaseAuth(HomeAssistantView):
|
|||||||
"""Check if this call is from Supervisor."""
|
"""Check if this call is from Supervisor."""
|
||||||
# Check caller IP
|
# Check caller IP
|
||||||
hassio_ip = os.environ["SUPERVISOR"].split(":")[0]
|
hassio_ip = os.environ["SUPERVISOR"].split(":")[0]
|
||||||
|
assert request.transport
|
||||||
if ip_address(request.transport.get_extra_info("peername")[0]) != ip_address(
|
if ip_address(request.transport.get_extra_info("peername")[0]) != ip_address(
|
||||||
hassio_ip
|
hassio_ip
|
||||||
):
|
):
|
||||||
|
@ -59,7 +59,7 @@ async def async_setup_entry(
|
|||||||
"""Binary sensor set up for Hass.io config entry."""
|
"""Binary sensor set up for Hass.io config entry."""
|
||||||
coordinator = hass.data[ADDONS_COORDINATOR]
|
coordinator = hass.data[ADDONS_COORDINATOR]
|
||||||
|
|
||||||
entities = []
|
entities: list[HassioAddonBinarySensor | HassioOSBinarySensor] = []
|
||||||
|
|
||||||
for entity_description in ADDON_ENTITY_DESCRIPTIONS:
|
for entity_description in ADDON_ENTITY_DESCRIPTIONS:
|
||||||
for addon in coordinator.data[DATA_KEY_ADDONS].values():
|
for addon in coordinator.data[DATA_KEY_ADDONS].values():
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
|
from collections.abc import Iterable
|
||||||
from ipaddress import ip_address
|
from ipaddress import ip_address
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
@ -73,6 +74,7 @@ class HassIOIngress(HomeAssistantView):
|
|||||||
self, request: web.Request, token: str, path: str
|
self, request: web.Request, token: str, path: str
|
||||||
) -> web.WebSocketResponse:
|
) -> web.WebSocketResponse:
|
||||||
"""Ingress route for websocket."""
|
"""Ingress route for websocket."""
|
||||||
|
req_protocols: Iterable[str]
|
||||||
if hdrs.SEC_WEBSOCKET_PROTOCOL in request.headers:
|
if hdrs.SEC_WEBSOCKET_PROTOCOL in request.headers:
|
||||||
req_protocols = [
|
req_protocols = [
|
||||||
str(proto.strip())
|
str(proto.strip())
|
||||||
@ -190,6 +192,7 @@ def _init_header(request: web.Request, token: str) -> CIMultiDict | dict[str, st
|
|||||||
|
|
||||||
# Set X-Forwarded-For
|
# Set X-Forwarded-For
|
||||||
forward_for = request.headers.get(hdrs.X_FORWARDED_FOR)
|
forward_for = request.headers.get(hdrs.X_FORWARDED_FOR)
|
||||||
|
assert request.transport
|
||||||
if (peername := request.transport.get_extra_info("peername")) is None:
|
if (peername := request.transport.get_extra_info("peername")) is None:
|
||||||
_LOGGER.error("Can't set forward_for header, missing peername")
|
_LOGGER.error("Can't set forward_for header, missing peername")
|
||||||
raise HTTPBadRequest()
|
raise HTTPBadRequest()
|
||||||
|
@ -65,7 +65,7 @@ async def async_setup_entry(
|
|||||||
"""Sensor set up for Hass.io config entry."""
|
"""Sensor set up for Hass.io config entry."""
|
||||||
coordinator = hass.data[ADDONS_COORDINATOR]
|
coordinator = hass.data[ADDONS_COORDINATOR]
|
||||||
|
|
||||||
entities = []
|
entities: list[HassioOSSensor | HassioAddonSensor] = []
|
||||||
|
|
||||||
for addon in coordinator.data[DATA_KEY_ADDONS].values():
|
for addon in coordinator.data[DATA_KEY_ADDONS].values():
|
||||||
for entity_description in ADDON_ENTITY_DESCRIPTIONS:
|
for entity_description in ADDON_ENTITY_DESCRIPTIONS:
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
"""Provide info to system health."""
|
"""Provide info to system health."""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from homeassistant.components import system_health
|
from homeassistant.components import system_health
|
||||||
@ -24,6 +26,7 @@ async def system_health_info(hass: HomeAssistant):
|
|||||||
host_info = get_host_info(hass)
|
host_info = get_host_info(hass)
|
||||||
supervisor_info = get_supervisor_info(hass)
|
supervisor_info = get_supervisor_info(hass)
|
||||||
|
|
||||||
|
healthy: bool | dict[str, str]
|
||||||
if supervisor_info.get("healthy"):
|
if supervisor_info.get("healthy"):
|
||||||
healthy = True
|
healthy = True
|
||||||
else:
|
else:
|
||||||
@ -32,6 +35,7 @@ async def system_health_info(hass: HomeAssistant):
|
|||||||
"error": "Unhealthy",
|
"error": "Unhealthy",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
supported: bool | dict[str, str]
|
||||||
if supervisor_info.get("supported"):
|
if supervisor_info.get("supported"):
|
||||||
supported = True
|
supported = True
|
||||||
else:
|
else:
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
"""Websocekt API handlers for the hassio integration."""
|
"""Websocekt API handlers for the hassio integration."""
|
||||||
import logging
|
import logging
|
||||||
|
from numbers import Number
|
||||||
import re
|
import re
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
@ -56,8 +57,8 @@ def async_load_websocket_api(hass: HomeAssistant):
|
|||||||
|
|
||||||
|
|
||||||
@websocket_api.require_admin
|
@websocket_api.require_admin
|
||||||
@websocket_api.async_response
|
|
||||||
@websocket_api.websocket_command({vol.Required(WS_TYPE): WS_TYPE_SUBSCRIBE})
|
@websocket_api.websocket_command({vol.Required(WS_TYPE): WS_TYPE_SUBSCRIBE})
|
||||||
|
@websocket_api.async_response
|
||||||
async def websocket_subscribe(
|
async def websocket_subscribe(
|
||||||
hass: HomeAssistant, connection: ActiveConnection, msg: dict
|
hass: HomeAssistant, connection: ActiveConnection, msg: dict
|
||||||
):
|
):
|
||||||
@ -74,13 +75,13 @@ async def websocket_subscribe(
|
|||||||
connection.send_message(websocket_api.result_message(msg[WS_ID]))
|
connection.send_message(websocket_api.result_message(msg[WS_ID]))
|
||||||
|
|
||||||
|
|
||||||
@websocket_api.async_response
|
|
||||||
@websocket_api.websocket_command(
|
@websocket_api.websocket_command(
|
||||||
{
|
{
|
||||||
vol.Required(WS_TYPE): WS_TYPE_EVENT,
|
vol.Required(WS_TYPE): WS_TYPE_EVENT,
|
||||||
vol.Required(ATTR_DATA): SCHEMA_WEBSOCKET_EVENT,
|
vol.Required(ATTR_DATA): SCHEMA_WEBSOCKET_EVENT,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@websocket_api.async_response
|
||||||
async def websocket_supervisor_event(
|
async def websocket_supervisor_event(
|
||||||
hass: HomeAssistant, connection: ActiveConnection, msg: dict
|
hass: HomeAssistant, connection: ActiveConnection, msg: dict
|
||||||
):
|
):
|
||||||
@ -89,16 +90,16 @@ async def websocket_supervisor_event(
|
|||||||
connection.send_result(msg[WS_ID])
|
connection.send_result(msg[WS_ID])
|
||||||
|
|
||||||
|
|
||||||
@websocket_api.async_response
|
|
||||||
@websocket_api.websocket_command(
|
@websocket_api.websocket_command(
|
||||||
{
|
{
|
||||||
vol.Required(WS_TYPE): WS_TYPE_API,
|
vol.Required(WS_TYPE): WS_TYPE_API,
|
||||||
vol.Required(ATTR_ENDPOINT): cv.string,
|
vol.Required(ATTR_ENDPOINT): cv.string,
|
||||||
vol.Required(ATTR_METHOD): cv.string,
|
vol.Required(ATTR_METHOD): cv.string,
|
||||||
vol.Optional(ATTR_DATA): dict,
|
vol.Optional(ATTR_DATA): dict,
|
||||||
vol.Optional(ATTR_TIMEOUT): vol.Any(cv.Number, None),
|
vol.Optional(ATTR_TIMEOUT): vol.Any(Number, None),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@websocket_api.async_response
|
||||||
async def websocket_supervisor_api(
|
async def websocket_supervisor_api(
|
||||||
hass: HomeAssistant, connection: ActiveConnection, msg: dict
|
hass: HomeAssistant, connection: ActiveConnection, msg: dict
|
||||||
):
|
):
|
||||||
|
21
mypy.ini
21
mypy.ini
@ -2653,27 +2653,6 @@ ignore_errors = true
|
|||||||
[mypy-homeassistant.components.evohome.water_heater]
|
[mypy-homeassistant.components.evohome.water_heater]
|
||||||
ignore_errors = true
|
ignore_errors = true
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio.auth]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio.binary_sensor]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio.ingress]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio.sensor]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio.system_health]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.hassio.websocket_api]
|
|
||||||
ignore_errors = true
|
|
||||||
|
|
||||||
[mypy-homeassistant.components.icloud]
|
[mypy-homeassistant.components.icloud]
|
||||||
ignore_errors = true
|
ignore_errors = true
|
||||||
|
|
||||||
|
@ -26,13 +26,6 @@ IGNORED_MODULES: Final[list[str]] = [
|
|||||||
"homeassistant.components.evohome",
|
"homeassistant.components.evohome",
|
||||||
"homeassistant.components.evohome.climate",
|
"homeassistant.components.evohome.climate",
|
||||||
"homeassistant.components.evohome.water_heater",
|
"homeassistant.components.evohome.water_heater",
|
||||||
"homeassistant.components.hassio",
|
|
||||||
"homeassistant.components.hassio.auth",
|
|
||||||
"homeassistant.components.hassio.binary_sensor",
|
|
||||||
"homeassistant.components.hassio.ingress",
|
|
||||||
"homeassistant.components.hassio.sensor",
|
|
||||||
"homeassistant.components.hassio.system_health",
|
|
||||||
"homeassistant.components.hassio.websocket_api",
|
|
||||||
"homeassistant.components.icloud",
|
"homeassistant.components.icloud",
|
||||||
"homeassistant.components.icloud.account",
|
"homeassistant.components.icloud.account",
|
||||||
"homeassistant.components.icloud.device_tracker",
|
"homeassistant.components.icloud.device_tracker",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user