PGH003: fix

This commit is contained in:
Jörg Thalheim
2025-08-20 21:14:33 +02:00
parent cbf9678534
commit 8f8426de52
29 changed files with 212 additions and 102 deletions

View File

@@ -15,6 +15,10 @@ from clan_lib.nix import nix_eval
from clan_lib.persist.inventory_store import InventoryStore
from clan_lib.templates import list_templates
from .secrets.groups import list_groups
from .secrets.secrets import list_secrets
from .secrets.users import list_users
"""
This module provides dynamic completions.
The completions should feel fast.

View File

@@ -86,7 +86,7 @@ def flash_command(args: argparse.Namespace) -> None:
run_machine_flash(
machine=machine,
mode=opts.mode, # type: ignore
mode=opts.mode, # type: ignore[arg-type]
disks=opts.disks,
system_config=opts.system_config,
dry_run=opts.dry_run,

View File

@@ -23,8 +23,7 @@ def hyperlink_same_text_and_url(url: str) -> str:
def help_hyperlink(description: str, url: str) -> str:
"""Keep the description and the link the same to support legacy terminals.
"""
"""Keep the description and the link the same to support legacy terminals."""
if sys.argv[0].__contains__("docs.py"):
return docs_hyperlink(description, url)

View File

@@ -6,13 +6,6 @@ from pathlib import Path
from clan_lib.errors import ClanError
from clan_lib.git import commit_files
from clan_cli.completions import (
add_dynamic_completer,
complete_groups,
complete_machines,
complete_secrets,
complete_users,
)
from clan_cli.machines.types import machine_name_type, validate_hostname
from clan_cli.secrets.sops import load_age_plugins
@@ -238,6 +231,11 @@ def remove_machine_command(args: argparse.Namespace) -> None:
def add_group_argument(parser: argparse.ArgumentParser) -> None:
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_groups,
)
group_action = parser.add_argument(
"group",
help="the name of the secret",
@@ -336,6 +334,11 @@ def register_groups_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machines to add",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(add_machine_action, complete_machines)
add_machine_parser.set_defaults(func=add_machine_command)
@@ -350,6 +353,11 @@ def register_groups_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machines to remove",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(remove_machine_action, complete_machines)
remove_machine_parser.set_defaults(func=remove_machine_command)
@@ -361,6 +369,11 @@ def register_groups_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user to add",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(add_user_action, complete_users)
add_user_parser.set_defaults(func=add_user_command)
@@ -375,6 +388,11 @@ def register_groups_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user to remove",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(remove_user_action, complete_users)
remove_user_parser.set_defaults(func=remove_user_command)
@@ -389,6 +407,11 @@ def register_groups_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the secret",
type=secret_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_secrets,
)
add_dynamic_completer(add_secret_action, complete_secrets)
add_secret_parser.set_defaults(func=add_secret_command)
@@ -403,5 +426,10 @@ def register_groups_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the secret",
type=secret_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_secrets,
)
add_dynamic_completer(remove_secret_action, complete_secrets)
remove_secret_parser.set_defaults(func=remove_secret_command)

View File

@@ -7,12 +7,6 @@ from clan_lib.cmd import RunOpts, run
from clan_lib.errors import ClanError
from clan_lib.nix import nix_shell
from clan_cli.completions import (
add_dynamic_completer,
complete_groups,
complete_machines,
complete_users,
)
from clan_cli.secrets.sops import load_age_plugins
from .secrets import encrypt_secret, sops_secrets_folder
@@ -75,6 +69,11 @@ def register_import_sops_parser(parser: argparse.ArgumentParser) -> None:
default=[],
help="the group to import the secrets to",
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_groups,
)
add_dynamic_completer(group_action, complete_groups)
machine_action = parser.add_argument(
"--machine",
@@ -83,6 +82,11 @@ def register_import_sops_parser(parser: argparse.ArgumentParser) -> None:
default=[],
help="the machine to import the secrets to",
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(machine_action, complete_machines)
user_action = parser.add_argument(
"--user",
@@ -91,6 +95,11 @@ def register_import_sops_parser(parser: argparse.ArgumentParser) -> None:
default=[],
help="the user to import the secrets to",
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(user_action, complete_users)
parser.add_argument(
"--prefix",

View File

@@ -4,11 +4,6 @@ from pathlib import Path
from clan_lib.flake import require_flake
from clan_lib.git import commit_files
from clan_cli.completions import (
add_dynamic_completer,
complete_machines,
complete_secrets,
)
from clan_cli.machines.types import machine_name_type, validate_hostname
from . import secrets, sops
@@ -177,6 +172,11 @@ def register_machines_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machine",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(add_machine_action, complete_machines)
add_parser.add_argument(
"key",
@@ -192,6 +192,11 @@ def register_machines_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machine",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(get_machine_parser, complete_machines)
get_parser.set_defaults(func=get_command)
@@ -202,6 +207,11 @@ def register_machines_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machine",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(remove_machine_parser, complete_machines)
remove_parser.set_defaults(func=remove_command)
@@ -215,6 +225,12 @@ def register_machines_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machine",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
complete_secrets,
)
add_dynamic_completer(machine_add_secret_parser, complete_machines)
add_secret_action = add_secret_parser.add_argument(
"secret",
@@ -234,6 +250,12 @@ def register_machines_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the machine",
type=machine_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
complete_secrets,
)
add_dynamic_completer(machine_remove_parser, complete_machines)
remove_secret_action = remove_secret_parser.add_argument(
"secret",

View File

@@ -12,14 +12,6 @@ from typing import IO
from clan_lib.errors import ClanError
from clan_lib.git import commit_files
from clan_cli.completions import (
add_dynamic_completer,
complete_groups,
complete_machines,
complete_secrets,
complete_users,
)
from . import sops
from .folders import (
list_objects,
@@ -258,6 +250,11 @@ def add_secret_argument(parser: argparse.ArgumentParser, autocomplete: bool) ->
type=secret_name_type,
)
if autocomplete:
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_secrets,
)
add_dynamic_completer(secrets_parser, complete_secrets)
@@ -465,6 +462,11 @@ def register_secrets_parser(subparser: argparse._SubParsersAction) -> None:
default=[],
help="the group to import the secrets to (can be repeated)",
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_groups,
)
add_dynamic_completer(set_group_action, complete_groups)
machine_parser = parser_set.add_argument(
"--machine",
@@ -473,6 +475,11 @@ def register_secrets_parser(subparser: argparse._SubParsersAction) -> None:
default=[],
help="the machine to import the secrets to (can be repeated)",
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_machines,
)
add_dynamic_completer(machine_parser, complete_machines)
set_user_action = parser_set.add_argument(
"--user",
@@ -481,6 +488,11 @@ def register_secrets_parser(subparser: argparse._SubParsersAction) -> None:
default=[],
help="the user to import the secrets to (can be repeated)",
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(set_user_action, complete_users)
parser_set.add_argument(
"-e",

View File

@@ -9,8 +9,6 @@ from clan_lib.errors import ClanError
from clan_lib.flake import require_flake
from clan_lib.git import commit_files
from clan_cli.completions import add_dynamic_completer, complete_secrets, complete_users
from . import groups, secrets, sops
from .filters import get_secrets_filter_for_user
from .folders import (
@@ -283,6 +281,11 @@ def register_users_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(get_user_action, complete_users)
get_parser.set_defaults(func=get_command)
@@ -292,6 +295,11 @@ def register_users_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(remove_user_action, complete_users)
remove_parser.set_defaults(func=remove_command)
@@ -304,6 +312,12 @@ def register_users_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_secrets,
complete_users,
)
add_dynamic_completer(add_secret_user_action, complete_users)
add_secrets_action = add_secret_parser.add_argument(
"secret",
@@ -322,6 +336,12 @@ def register_users_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the group",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_secrets,
complete_users,
)
add_dynamic_completer(remove_secret_user_action, complete_users)
remove_secrets_action = remove_secret_parser.add_argument(
"secret",
@@ -340,6 +360,11 @@ def register_users_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(add_key_user_action, complete_users)
_add_key_flags(add_key_parser)
add_key_parser.set_defaults(func=add_key_command)
@@ -353,6 +378,11 @@ def register_users_parser(parser: argparse.ArgumentParser) -> None:
help="the name of the user",
type=user_name_type,
)
from clan_cli.completions import ( # noqa: PLC0415
add_dynamic_completer,
complete_users,
)
add_dynamic_completer(remove_key_user_action, complete_users)
_add_key_flags(remove_key_parser)
remove_key_parser.set_defaults(func=remove_key_command)

View File

@@ -20,7 +20,7 @@ def list_command(args: argparse.Namespace) -> None:
builtin_template_set: TemplateClanType | None = templates.builtins.get(
template_type,
None,
) # type: ignore
) # type: ignore[assignment]
if not builtin_template_set:
continue
@@ -41,7 +41,7 @@ def list_command(args: argparse.Namespace) -> None:
]
last_idx = len(visible_inputs) - 1
for input_idx, (input_name, input_templates) in enumerate(visible_inputs):
custom_templates: TemplateClanType = input_templates[template_type] # type: ignore
custom_templates: TemplateClanType = input_templates[template_type] # type: ignore[literal-required]
is_last_input = input_idx == last_idx
prefix = "" if not is_last_input else " "
if not is_last_input: