From 1a628588b476a1d3e0b675ab8c322821f772efe3 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Sun, 18 Aug 2024 15:43:15 +0200 Subject: [PATCH] Improve type hints in scripts/auth (#124049) --- homeassistant/scripts/auth.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/homeassistant/scripts/auth.py b/homeassistant/scripts/auth.py index fff57c7adfe3a..b034021e6e711 100644 --- a/homeassistant/scripts/auth.py +++ b/homeassistant/scripts/auth.py @@ -2,8 +2,10 @@ import argparse import asyncio +from collections.abc import Sequence import logging import os +from typing import TYPE_CHECKING from homeassistant import runner from homeassistant.auth import auth_manager_from_config @@ -15,7 +17,7 @@ # mypy: allow-untyped-calls, allow-untyped-defs -def run(args): +def run(args: Sequence[str] | None) -> None: """Handle Home Assistant auth provider script.""" parser = argparse.ArgumentParser(description="Manage Home Assistant users") parser.add_argument("--script", choices=["auth"]) @@ -50,7 +52,7 @@ def run(args): asyncio.run(run_command(parser.parse_args(args))) -async def run_command(args): +async def run_command(args: argparse.Namespace) -> None: """Run the command.""" hass = HomeAssistant(os.path.join(os.getcwd(), args.config)) await asyncio.gather(dr.async_load(hass), er.async_load(hass)) @@ -65,9 +67,13 @@ async def run_command(args): await hass.async_stop() -async def list_users(hass, provider, args): +async def list_users( + hass: HomeAssistant, provider: hass_auth.HassAuthProvider, args: argparse.Namespace +) -> None: """List the users.""" count = 0 + if TYPE_CHECKING: + assert provider.data for user in provider.data.users: count += 1 print(user["username"]) @@ -76,8 +82,12 @@ async def list_users(hass, provider, args): print("Total users:", count) -async def add_user(hass, provider, args): +async def add_user( + hass: HomeAssistant, provider: hass_auth.HassAuthProvider, args: argparse.Namespace +) -> None: """Create a user.""" + if TYPE_CHECKING: + assert provider.data try: provider.data.add_auth(args.username, args.password) except hass_auth.InvalidUser: @@ -89,8 +99,12 @@ async def add_user(hass, provider, args): print("Auth created") -async def validate_login(hass, provider, args): +async def validate_login( + hass: HomeAssistant, provider: hass_auth.HassAuthProvider, args: argparse.Namespace +) -> None: """Validate a login.""" + if TYPE_CHECKING: + assert provider.data try: provider.data.validate_login(args.username, args.password) print("Auth valid") @@ -98,8 +112,12 @@ async def validate_login(hass, provider, args): print("Auth invalid") -async def change_password(hass, provider, args): +async def change_password( + hass: HomeAssistant, provider: hass_auth.HassAuthProvider, args: argparse.Namespace +) -> None: """Change password.""" + if TYPE_CHECKING: + assert provider.data try: provider.data.change_password(args.username, args.new_password) await provider.data.async_save()