Improve type hints in scripts/auth (#124049)
This commit is contained in:
parent
ba3872ff87
commit
1a628588b4
1 changed files with 24 additions and 6 deletions
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import asyncio
|
import asyncio
|
||||||
|
from collections.abc import Sequence
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from homeassistant import runner
|
from homeassistant import runner
|
||||||
from homeassistant.auth import auth_manager_from_config
|
from homeassistant.auth import auth_manager_from_config
|
||||||
|
@ -15,7 +17,7 @@ from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||||
# mypy: allow-untyped-calls, allow-untyped-defs
|
# mypy: allow-untyped-calls, allow-untyped-defs
|
||||||
|
|
||||||
|
|
||||||
def run(args):
|
def run(args: Sequence[str] | None) -> None:
|
||||||
"""Handle Home Assistant auth provider script."""
|
"""Handle Home Assistant auth provider script."""
|
||||||
parser = argparse.ArgumentParser(description="Manage Home Assistant users")
|
parser = argparse.ArgumentParser(description="Manage Home Assistant users")
|
||||||
parser.add_argument("--script", choices=["auth"])
|
parser.add_argument("--script", choices=["auth"])
|
||||||
|
@ -50,7 +52,7 @@ def run(args):
|
||||||
asyncio.run(run_command(parser.parse_args(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."""
|
"""Run the command."""
|
||||||
hass = HomeAssistant(os.path.join(os.getcwd(), args.config))
|
hass = HomeAssistant(os.path.join(os.getcwd(), args.config))
|
||||||
await asyncio.gather(dr.async_load(hass), er.async_load(hass))
|
await asyncio.gather(dr.async_load(hass), er.async_load(hass))
|
||||||
|
@ -65,9 +67,13 @@ async def run_command(args):
|
||||||
await hass.async_stop()
|
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."""
|
"""List the users."""
|
||||||
count = 0
|
count = 0
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
assert provider.data
|
||||||
for user in provider.data.users:
|
for user in provider.data.users:
|
||||||
count += 1
|
count += 1
|
||||||
print(user["username"])
|
print(user["username"])
|
||||||
|
@ -76,8 +82,12 @@ async def list_users(hass, provider, args):
|
||||||
print("Total users:", count)
|
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."""
|
"""Create a user."""
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
assert provider.data
|
||||||
try:
|
try:
|
||||||
provider.data.add_auth(args.username, args.password)
|
provider.data.add_auth(args.username, args.password)
|
||||||
except hass_auth.InvalidUser:
|
except hass_auth.InvalidUser:
|
||||||
|
@ -89,8 +99,12 @@ async def add_user(hass, provider, args):
|
||||||
print("Auth created")
|
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."""
|
"""Validate a login."""
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
assert provider.data
|
||||||
try:
|
try:
|
||||||
provider.data.validate_login(args.username, args.password)
|
provider.data.validate_login(args.username, args.password)
|
||||||
print("Auth valid")
|
print("Auth valid")
|
||||||
|
@ -98,8 +112,12 @@ async def validate_login(hass, provider, args):
|
||||||
print("Auth invalid")
|
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."""
|
"""Change password."""
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
assert provider.data
|
||||||
try:
|
try:
|
||||||
provider.data.change_password(args.username, args.new_password)
|
provider.data.change_password(args.username, args.new_password)
|
||||||
await provider.data.async_save()
|
await provider.data.async_save()
|
||||||
|
|
Loading…
Add table
Reference in a new issue