Skip to content

Commit

Permalink
Improve type hints in scripts/auth (home-assistant#124049)
Browse files Browse the repository at this point in the history
  • Loading branch information
epenet authored Aug 18, 2024
1 parent ba3872f commit 1a62858
Showing 1 changed file with 24 additions and 6 deletions.
30 changes: 24 additions & 6 deletions homeassistant/scripts/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"])
Expand Down Expand Up @@ -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))
Expand All @@ -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"])
Expand All @@ -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:
Expand All @@ -89,17 +99,25 @@ 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")
except hass_auth.InvalidAuth:
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()
Expand Down

0 comments on commit 1a62858

Please sign in to comment.