diff --git a/pkgs/clan-cli/clan_cli/__init__.py b/pkgs/clan-cli/clan_cli/__init__.py index ed40f26d7..8e878f079 100644 --- a/pkgs/clan-cli/clan_cli/__init__.py +++ b/pkgs/clan-cli/clan_cli/__init__.py @@ -5,9 +5,9 @@ from pathlib import Path from types import ModuleType # These imports are unused, but necessary for @API.register to run once. -from clan_cli.api import admin, directory, disk, mdns_discovery, modules -from clan_cli.arg_actions import AppendOptionAction -from clan_cli.clan import show, update +from .api import admin, directory, disk, mdns_discovery, modules +from .arg_actions import AppendOptionAction +from .clan import show, update # API endpoints that are not used in the cli. __all__ = ["directory", "mdns_discovery", "modules", "update", "disk", "admin"] diff --git a/pkgs/clan-cli/clan_cli/api/__init__.py b/pkgs/clan-cli/clan_cli/api/__init__.py index 192bd4524..59f6e1833 100644 --- a/pkgs/clan-cli/clan_cli/api/__init__.py +++ b/pkgs/clan-cli/clan_cli/api/__init__.py @@ -152,7 +152,7 @@ API.register(open_file) def to_json_schema(self) -> dict[str, Any]: from typing import get_type_hints - from clan_cli.api.util import type_to_dict + from .util import type_to_dict api_schema: dict[str, Any] = { "$comment": "An object containing API methods. ", diff --git a/pkgs/clan-cli/clan_cli/api/admin.py b/pkgs/clan-cli/clan_cli/api/admin.py index 8fb18e231..16fae1868 100644 --- a/pkgs/clan-cli/clan_cli/api/admin.py +++ b/pkgs/clan-cli/clan_cli/api/admin.py @@ -1,4 +1,3 @@ -from clan_cli.api import API from clan_cli.inventory import ( AdminConfig, ServiceAdmin, @@ -9,6 +8,8 @@ from clan_cli.inventory import ( save_inventory, ) +from . import API + @API.register def get_admin_service(base_url: str) -> ServiceAdmin | None: diff --git a/pkgs/clan-cli/clan_cli/api/cli.py b/pkgs/clan-cli/clan_cli/api/cli.py index 763d5ec24..81478b387 100755 --- a/pkgs/clan-cli/clan_cli/api/cli.py +++ b/pkgs/clan-cli/clan_cli/api/cli.py @@ -3,7 +3,7 @@ import argparse import json -from clan_cli.api import API +from . import API if __name__ == "__main__": parser = argparse.ArgumentParser(description="Debug the API.") diff --git a/pkgs/clan-cli/clan_cli/api/disk.py b/pkgs/clan-cli/clan_cli/api/disk.py index 193436100..10d6d8ea0 100644 --- a/pkgs/clan-cli/clan_cli/api/disk.py +++ b/pkgs/clan-cli/clan_cli/api/disk.py @@ -1,4 +1,3 @@ -from clan_cli.api import API from clan_cli.inventory import ( ServiceMeta, ServiceSingleDisk, @@ -10,6 +9,8 @@ from clan_cli.inventory import ( save_inventory, ) +from . import API + def get_instance_name(machine_name: str) -> str: return f"{machine_name}-single-disk" diff --git a/pkgs/clan-cli/clan_cli/backups/create.py b/pkgs/clan-cli/clan_cli/backups/create.py index ad02d8740..e40686564 100644 --- a/pkgs/clan-cli/clan_cli/backups/create.py +++ b/pkgs/clan-cli/clan_cli/backups/create.py @@ -2,13 +2,13 @@ import argparse import json import logging -from ..completions import ( +from clan_cli.completions import ( add_dynamic_completer, complete_backup_providers_for_machine, complete_machines, ) -from ..errors import ClanError -from ..machines.machines import Machine +from clan_cli.errors import ClanError +from clan_cli.machines.machines import Machine log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/backups/list.py b/pkgs/clan-cli/clan_cli/backups/list.py index dc428a547..1308da0cc 100644 --- a/pkgs/clan-cli/clan_cli/backups/list.py +++ b/pkgs/clan-cli/clan_cli/backups/list.py @@ -3,13 +3,13 @@ import json import subprocess from dataclasses import dataclass -from ..completions import ( +from clan_cli.completions import ( add_dynamic_completer, complete_backup_providers_for_machine, complete_machines, ) -from ..errors import ClanError -from ..machines.machines import Machine +from clan_cli.errors import ClanError +from clan_cli.machines.machines import Machine @dataclass diff --git a/pkgs/clan-cli/clan_cli/backups/restore.py b/pkgs/clan-cli/clan_cli/backups/restore.py index ec582702e..3cfeefe1c 100644 --- a/pkgs/clan-cli/clan_cli/backups/restore.py +++ b/pkgs/clan-cli/clan_cli/backups/restore.py @@ -2,13 +2,13 @@ import argparse import json import subprocess -from ..completions import ( +from clan_cli.completions import ( add_dynamic_completer, complete_backup_providers_for_machine, complete_machines, ) -from ..errors import ClanError -from ..machines.machines import Machine +from clan_cli.errors import ClanError +from clan_cli.machines.machines import Machine def restore_service(machine: Machine, name: str, provider: str, service: str) -> None: diff --git a/pkgs/clan-cli/clan_cli/clan/create.py b/pkgs/clan-cli/clan_cli/clan/create.py index 7dcad907d..65cdb0559 100644 --- a/pkgs/clan-cli/clan_cli/clan/create.py +++ b/pkgs/clan-cli/clan_cli/clan/create.py @@ -5,12 +5,11 @@ from dataclasses import dataclass from pathlib import Path from clan_cli.api import API +from clan_cli.cmd import CmdOut, run +from clan_cli.dirs import clan_templates +from clan_cli.errors import ClanError from clan_cli.inventory import Inventory, init_inventory - -from ..cmd import CmdOut, run -from ..dirs import clan_templates -from ..errors import ClanError -from ..nix import nix_command, nix_shell +from clan_cli.nix import nix_command, nix_shell @dataclass diff --git a/pkgs/clan-cli/clan_cli/clan/inspect.py b/pkgs/clan-cli/clan_cli/clan/inspect.py index 4eb16f4c6..a5d4a85cc 100644 --- a/pkgs/clan-cli/clan_cli/clan/inspect.py +++ b/pkgs/clan-cli/clan_cli/clan/inspect.py @@ -2,14 +2,20 @@ import argparse from dataclasses import dataclass from pathlib import Path -from ..clan_uri import FlakeId -from ..cmd import run -from ..dirs import machine_gcroot -from ..errors import ClanError -from ..machines.list import list_nixos_machines -from ..machines.machines import Machine -from ..nix import nix_add_to_gcroots, nix_build, nix_config, nix_eval, nix_metadata -from ..vms.inspect import VmConfig, inspect_vm +from clan_cli.clan_uri import FlakeId +from clan_cli.cmd import run +from clan_cli.dirs import machine_gcroot +from clan_cli.errors import ClanError +from clan_cli.machines.list import list_nixos_machines +from clan_cli.machines.machines import Machine +from clan_cli.nix import ( + nix_add_to_gcroots, + nix_build, + nix_config, + nix_eval, + nix_metadata, +) +from clan_cli.vms.inspect import VmConfig, inspect_vm @dataclass diff --git a/pkgs/clan-cli/clan_cli/clan/show.py b/pkgs/clan-cli/clan_cli/clan/show.py index ad250acbd..1ebe21adb 100644 --- a/pkgs/clan-cli/clan_cli/clan/show.py +++ b/pkgs/clan-cli/clan_cli/clan/show.py @@ -5,11 +5,10 @@ from pathlib import Path from urllib.parse import urlparse from clan_cli.api import API +from clan_cli.cmd import run_no_stdout from clan_cli.errors import ClanCmdError, ClanError from clan_cli.inventory import Meta - -from ..cmd import run_no_stdout -from ..nix import nix_eval +from clan_cli.nix import nix_eval log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/config/parsing.py b/pkgs/clan-cli/clan_cli/config/parsing.py index df8961387..0ee7cbbb6 100644 --- a/pkgs/clan-cli/clan_cli/config/parsing.py +++ b/pkgs/clan-cli/clan_cli/config/parsing.py @@ -2,9 +2,9 @@ import json from pathlib import Path from typing import Any -from ..cmd import run -from ..errors import ClanError -from ..nix import nix_eval +from clan_cli.cmd import run +from clan_cli.errors import ClanError +from clan_cli.nix import nix_eval script_dir = Path(__file__).parent diff --git a/pkgs/clan-cli/clan_cli/facts/__init__.py b/pkgs/clan-cli/clan_cli/facts/__init__.py index 4a344f4ff..836a4326d 100644 --- a/pkgs/clan-cli/clan_cli/facts/__init__.py +++ b/pkgs/clan-cli/clan_cli/facts/__init__.py @@ -1,7 +1,8 @@ # !/usr/bin/env python3 import argparse -from ..hyperlink import help_hyperlink +from clan_cli.hyperlink import help_hyperlink + from .check import register_check_parser from .generate import register_generate_parser from .list import register_list_parser diff --git a/pkgs/clan-cli/clan_cli/facts/check.py b/pkgs/clan-cli/clan_cli/facts/check.py index d879b2d70..7916e2acd 100644 --- a/pkgs/clan-cli/clan_cli/facts/check.py +++ b/pkgs/clan-cli/clan_cli/facts/check.py @@ -2,8 +2,8 @@ import argparse import importlib import logging -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/facts/generate.py b/pkgs/clan-cli/clan_cli/facts/generate.py index ed6a941d4..f2e0c254a 100644 --- a/pkgs/clan-cli/clan_cli/facts/generate.py +++ b/pkgs/clan-cli/clan_cli/facts/generate.py @@ -9,17 +9,17 @@ from pathlib import Path from tempfile import TemporaryDirectory from clan_cli.cmd import run - -from ..completions import ( +from clan_cli.completions import ( add_dynamic_completer, complete_machines, complete_services_for_machine, ) -from ..errors import ClanError -from ..git import commit_files -from ..machines.inventory import get_all_machines, get_selected_machines -from ..machines.machines import Machine -from ..nix import nix_shell +from clan_cli.errors import ClanError +from clan_cli.git import commit_files +from clan_cli.machines.inventory import get_all_machines, get_selected_machines +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_shell + from .check import check_secrets from .public_modules import FactStoreBase from .secret_modules import SecretStoreBase diff --git a/pkgs/clan-cli/clan_cli/facts/list.py b/pkgs/clan-cli/clan_cli/facts/list.py index 0ec2fcdc7..bce088889 100644 --- a/pkgs/clan-cli/clan_cli/facts/list.py +++ b/pkgs/clan-cli/clan_cli/facts/list.py @@ -3,8 +3,8 @@ import importlib import json import logging -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/facts/upload.py b/pkgs/clan-cli/clan_cli/facts/upload.py index 1df5fb194..3cb548842 100644 --- a/pkgs/clan-cli/clan_cli/facts/upload.py +++ b/pkgs/clan-cli/clan_cli/facts/upload.py @@ -4,10 +4,10 @@ import logging from pathlib import Path from tempfile import TemporaryDirectory -from ..cmd import Log, run -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine -from ..nix import nix_shell +from clan_cli.cmd import Log, run +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_shell log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/flash.py b/pkgs/clan-cli/clan_cli/flash.py index 4850b36cc..98c223c61 100644 --- a/pkgs/clan-cli/clan_cli/flash.py +++ b/pkgs/clan-cli/clan_cli/flash.py @@ -11,8 +11,7 @@ from pathlib import Path from tempfile import TemporaryDirectory from typing import Any -from clan_cli.api import API - +from .api import API from .clan_uri import FlakeId from .cmd import Log, run from .completions import add_dynamic_completer, complete_machines diff --git a/pkgs/clan-cli/clan_cli/git.py b/pkgs/clan-cli/clan_cli/git.py index 72da807ab..7a6ec9e6d 100644 --- a/pkgs/clan-cli/clan_cli/git.py +++ b/pkgs/clan-cli/clan_cli/git.py @@ -1,11 +1,9 @@ from pathlib import Path -# from clan_cli.dirs import find_git_repo_root -from clan_cli.errors import ClanError -from clan_cli.nix import run_cmd - from .cmd import Log, run +from .errors import ClanError from .locked_open import locked_open +from .nix import run_cmd def commit_file( diff --git a/pkgs/clan-cli/clan_cli/history/add.py b/pkgs/clan-cli/clan_cli/history/add.py index c078960fb..d3e225145 100644 --- a/pkgs/clan-cli/clan_cli/history/add.py +++ b/pkgs/clan-cli/clan_cli/history/add.py @@ -7,13 +7,12 @@ import logging from typing import Any from clan_cli.clan.inspect import FlakeConfig, inspect_flake +from clan_cli.clan_uri import ClanURI +from clan_cli.dirs import user_history_file +from clan_cli.errors import ClanError +from clan_cli.locked_open import read_history_file, write_history_file from clan_cli.machines.list import list_nixos_machines -from ..clan_uri import ClanURI -from ..dirs import user_history_file -from ..errors import ClanError -from ..locked_open import read_history_file, write_history_file - log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/history/update.py b/pkgs/clan-cli/clan_cli/history/update.py index ed9c87abc..361a898c2 100644 --- a/pkgs/clan-cli/clan_cli/history/update.py +++ b/pkgs/clan-cli/clan_cli/history/update.py @@ -3,11 +3,11 @@ import argparse import datetime from clan_cli.clan.inspect import inspect_flake +from clan_cli.clan_uri import ClanURI +from clan_cli.errors import ClanCmdError +from clan_cli.locked_open import write_history_file +from clan_cli.nix import nix_metadata -from ..clan_uri import ClanURI -from ..errors import ClanCmdError -from ..locked_open import write_history_file -from ..nix import nix_metadata from .add import HistoryEntry, list_history diff --git a/pkgs/clan-cli/clan_cli/inventory/__init__.py b/pkgs/clan-cli/clan_cli/inventory/__init__.py index d95f4d26e..e1e25ed24 100644 --- a/pkgs/clan-cli/clan_cli/inventory/__init__.py +++ b/pkgs/clan-cli/clan_cli/inventory/__init__.py @@ -16,11 +16,11 @@ import json from pathlib import Path from clan_cli.api import API, dataclass_to_dict, from_dict +from clan_cli.cmd import run_no_stdout from clan_cli.errors import ClanCmdError, ClanError from clan_cli.git import commit_file +from clan_cli.nix import nix_eval -from ..cmd import run_no_stdout -from ..nix import nix_eval from .classes import ( AdminConfig, Inventory, diff --git a/pkgs/clan-cli/clan_cli/locked_open.py b/pkgs/clan-cli/clan_cli/locked_open.py index 1a66f382f..fe4d400a0 100644 --- a/pkgs/clan-cli/clan_cli/locked_open.py +++ b/pkgs/clan-cli/clan_cli/locked_open.py @@ -5,9 +5,8 @@ from contextlib import contextmanager from pathlib import Path from typing import Any -from clan_cli.jsonrpc import ClanJSONEncoder - from .dirs import user_history_file +from .jsonrpc import ClanJSONEncoder @contextmanager diff --git a/pkgs/clan-cli/clan_cli/machines/create.py b/pkgs/clan-cli/clan_cli/machines/create.py index f5b858602..582cf38c0 100644 --- a/pkgs/clan-cli/clan_cli/machines/create.py +++ b/pkgs/clan-cli/clan_cli/machines/create.py @@ -2,10 +2,10 @@ import argparse import logging import re -from ..api import API -from ..clan_uri import FlakeId -from ..errors import ClanError -from ..inventory import ( +from clan_cli.api import API +from clan_cli.clan_uri import FlakeId +from clan_cli.errors import ClanError +from clan_cli.inventory import ( Machine, MachineDeploy, load_inventory_eval, diff --git a/pkgs/clan-cli/clan_cli/machines/delete.py b/pkgs/clan-cli/clan_cli/machines/delete.py index 228dba9f1..856b38df7 100644 --- a/pkgs/clan-cli/clan_cli/machines/delete.py +++ b/pkgs/clan-cli/clan_cli/machines/delete.py @@ -1,12 +1,12 @@ import argparse import shutil -from ..api import API -from ..clan_uri import FlakeId -from ..completions import add_dynamic_completer, complete_machines -from ..dirs import specific_machine_dir -from ..errors import ClanError -from ..inventory import load_inventory_json, save_inventory +from clan_cli.api import API +from clan_cli.clan_uri import FlakeId +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.dirs import specific_machine_dir +from clan_cli.errors import ClanError +from clan_cli.inventory import load_inventory_json, save_inventory @API.register diff --git a/pkgs/clan-cli/clan_cli/machines/facts.py b/pkgs/clan-cli/clan_cli/machines/facts.py index 5d2df53a5..be9e81782 100644 --- a/pkgs/clan-cli/clan_cli/machines/facts.py +++ b/pkgs/clan-cli/clan_cli/machines/facts.py @@ -1,6 +1,6 @@ from pathlib import Path -from ..dirs import specific_machine_dir +from clan_cli.dirs import specific_machine_dir def machine_has_fact(flake_dir: Path, machine: str, fact: str) -> bool: diff --git a/pkgs/clan-cli/clan_cli/machines/hardware.py b/pkgs/clan-cli/clan_cli/machines/hardware.py index 5fa00cfe9..94bdf68ea 100644 --- a/pkgs/clan-cli/clan_cli/machines/hardware.py +++ b/pkgs/clan-cli/clan_cli/machines/hardware.py @@ -7,13 +7,13 @@ from typing import Literal from clan_cli.api import API from clan_cli.clan_uri import FlakeId +from clan_cli.cmd import run, run_no_stdout +from clan_cli.completions import add_dynamic_completer, complete_machines from clan_cli.errors import ClanCmdError, ClanError from clan_cli.git import commit_file +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_config, nix_eval, nix_shell -from ..cmd import run, run_no_stdout -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine -from ..nix import nix_config, nix_eval, nix_shell from .types import machine_name_type log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/machines/install.py b/pkgs/clan-cli/clan_cli/machines/install.py index 17ea04152..19abc56ad 100644 --- a/pkgs/clan-cli/clan_cli/machines/install.py +++ b/pkgs/clan-cli/clan_cli/machines/install.py @@ -8,14 +8,13 @@ from pathlib import Path from tempfile import TemporaryDirectory from clan_cli.api import API - -from ..clan_uri import FlakeId -from ..cmd import Log, run -from ..completions import add_dynamic_completer, complete_machines -from ..facts.generate import generate_facts -from ..machines.machines import Machine -from ..nix import nix_shell -from ..ssh.cli import is_ipv6, is_reachable, qrcode_scan +from clan_cli.clan_uri import FlakeId +from clan_cli.cmd import Log, run +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.facts.generate import generate_facts +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_shell +from clan_cli.ssh.cli import is_ipv6, is_reachable, qrcode_scan log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/machines/inventory.py b/pkgs/clan-cli/clan_cli/machines/inventory.py index 8cac61bb8..0eeac102c 100644 --- a/pkgs/clan-cli/clan_cli/machines/inventory.py +++ b/pkgs/clan-cli/clan_cli/machines/inventory.py @@ -1,9 +1,10 @@ import json from pathlib import Path -from ..clan_uri import FlakeId -from ..cmd import run -from ..nix import nix_build, nix_config +from clan_cli.clan_uri import FlakeId +from clan_cli.cmd import run +from clan_cli.nix import nix_build, nix_config + from .machines import Machine diff --git a/pkgs/clan-cli/clan_cli/machines/machine_group.py b/pkgs/clan-cli/clan_cli/machines/machine_group.py index 7c98a3b8c..57f50d9c1 100644 --- a/pkgs/clan-cli/clan_cli/machines/machine_group.py +++ b/pkgs/clan-cli/clan_cli/machines/machine_group.py @@ -1,7 +1,8 @@ from collections.abc import Callable from typing import TypeVar -from ..ssh import Host, HostGroup, HostResult +from clan_cli.ssh import Host, HostGroup, HostResult + from .machines import Machine T = TypeVar("T") diff --git a/pkgs/clan-cli/clan_cli/machines/machines.py b/pkgs/clan-cli/clan_cli/machines/machines.py index 427e9da54..694c87fe2 100644 --- a/pkgs/clan-cli/clan_cli/machines/machines.py +++ b/pkgs/clan-cli/clan_cli/machines/machines.py @@ -6,11 +6,10 @@ from tempfile import NamedTemporaryFile from typing import Any from clan_cli.clan_uri import FlakeId - -from ..cmd import run_no_stdout -from ..errors import ClanError -from ..nix import nix_build, nix_config, nix_eval, nix_metadata -from ..ssh import Host, parse_deployment_address +from clan_cli.cmd import run_no_stdout +from clan_cli.errors import ClanError +from clan_cli.nix import nix_build, nix_config, nix_eval, nix_metadata +from clan_cli.ssh import Host, parse_deployment_address log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/machines/update.py b/pkgs/clan-cli/clan_cli/machines/update.py index c0beae8b3..6f1deb7dc 100644 --- a/pkgs/clan-cli/clan_cli/machines/update.py +++ b/pkgs/clan-cli/clan_cli/machines/update.py @@ -7,17 +7,17 @@ import sys from clan_cli.api import API from clan_cli.clan_uri import FlakeId +from clan_cli.cmd import run +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.errors import ClanError +from clan_cli.facts.generate import generate_facts +from clan_cli.facts.upload import upload_secrets +from clan_cli.inventory import Machine as InventoryMachine +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_command, nix_metadata +from clan_cli.ssh import HostKeyCheck +from clan_cli.vars.generate import generate_vars -from ..cmd import run -from ..completions import add_dynamic_completer, complete_machines -from ..errors import ClanError -from ..facts.generate import generate_facts -from ..facts.upload import upload_secrets -from ..inventory import Machine as InventoryMachine -from ..machines.machines import Machine -from ..nix import nix_command, nix_metadata -from ..ssh import HostKeyCheck -from ..vars.generate import generate_vars from .inventory import get_all_machines, get_selected_machines from .machine_group import MachineGroup diff --git a/pkgs/clan-cli/clan_cli/nix/__init__.py b/pkgs/clan-cli/clan_cli/nix/__init__.py index 66e39bc37..f104c898c 100644 --- a/pkgs/clan-cli/clan_cli/nix/__init__.py +++ b/pkgs/clan-cli/clan_cli/nix/__init__.py @@ -4,8 +4,8 @@ import tempfile from pathlib import Path from typing import Any -from ..cmd import run, run_no_stdout -from ..dirs import nixpkgs_flake, nixpkgs_source +from clan_cli.cmd import run, run_no_stdout +from clan_cli.dirs import nixpkgs_flake, nixpkgs_source def nix_command(flags: list[str]) -> list[str]: diff --git a/pkgs/clan-cli/clan_cli/secrets/folders.py b/pkgs/clan-cli/clan_cli/secrets/folders.py index 11b408d47..5534a1d63 100644 --- a/pkgs/clan-cli/clan_cli/secrets/folders.py +++ b/pkgs/clan-cli/clan_cli/secrets/folders.py @@ -3,7 +3,7 @@ import shutil from collections.abc import Callable from pathlib import Path -from ..errors import ClanError +from clan_cli.errors import ClanError def get_sops_folder(flake_dir: Path) -> Path: diff --git a/pkgs/clan-cli/clan_cli/secrets/groups.py b/pkgs/clan-cli/clan_cli/secrets/groups.py index 654b3dc99..f4b5458f1 100644 --- a/pkgs/clan-cli/clan_cli/secrets/groups.py +++ b/pkgs/clan-cli/clan_cli/secrets/groups.py @@ -2,17 +2,17 @@ import argparse import os from pathlib import Path -from clan_cli.git import commit_files - -from ..completions import ( +from clan_cli.completions import ( add_dynamic_completer, complete_groups, complete_machines, complete_secrets, complete_users, ) -from ..errors import ClanError -from ..machines.types import machine_name_type, validate_hostname +from clan_cli.errors import ClanError +from clan_cli.git import commit_files +from clan_cli.machines.types import machine_name_type, validate_hostname + from . import secrets from .folders import ( sops_groups_folder, diff --git a/pkgs/clan-cli/clan_cli/secrets/import_sops.py b/pkgs/clan-cli/clan_cli/secrets/import_sops.py index 96226bc32..5ea2a879e 100644 --- a/pkgs/clan-cli/clan_cli/secrets/import_sops.py +++ b/pkgs/clan-cli/clan_cli/secrets/import_sops.py @@ -3,15 +3,16 @@ import json import sys from pathlib import Path -from ..cmd import run -from ..completions import ( +from clan_cli.cmd import run +from clan_cli.completions import ( add_dynamic_completer, complete_groups, complete_machines, complete_users, ) -from ..errors import ClanError -from ..nix import nix_shell +from clan_cli.errors import ClanError +from clan_cli.nix import nix_shell + from .secrets import encrypt_secret, sops_secrets_folder diff --git a/pkgs/clan-cli/clan_cli/secrets/key.py b/pkgs/clan-cli/clan_cli/secrets/key.py index 8a758ef88..3b5e791d6 100644 --- a/pkgs/clan-cli/clan_cli/secrets/key.py +++ b/pkgs/clan-cli/clan_cli/secrets/key.py @@ -2,9 +2,9 @@ import argparse import logging from pathlib import Path +from clan_cli.errors import ClanError from clan_cli.git import commit_files -from ..errors import ClanError from .secrets import update_secrets from .sops import default_sops_key_path, generate_private_key, get_public_key diff --git a/pkgs/clan-cli/clan_cli/secrets/machines.py b/pkgs/clan-cli/clan_cli/secrets/machines.py index 5ca91fd65..1583c7fec 100644 --- a/pkgs/clan-cli/clan_cli/secrets/machines.py +++ b/pkgs/clan-cli/clan_cli/secrets/machines.py @@ -1,10 +1,15 @@ import argparse from pathlib import Path -from ..completions import add_dynamic_completer, complete_machines, complete_secrets -from ..errors import ClanError -from ..git import commit_files -from ..machines.types import machine_name_type, validate_hostname +from clan_cli.completions import ( + add_dynamic_completer, + complete_machines, + complete_secrets, +) +from clan_cli.errors import ClanError +from clan_cli.git import commit_files +from clan_cli.machines.types import machine_name_type, validate_hostname + from . import secrets from .folders import ( list_objects, diff --git a/pkgs/clan-cli/clan_cli/secrets/secrets.py b/pkgs/clan-cli/clan_cli/secrets/secrets.py index 4031d26e2..784f3904a 100644 --- a/pkgs/clan-cli/clan_cli/secrets/secrets.py +++ b/pkgs/clan-cli/clan_cli/secrets/secrets.py @@ -8,17 +8,18 @@ from dataclasses import dataclass from pathlib import Path from typing import IO -from .. import tty -from ..clan_uri import FlakeId -from ..completions import ( +from clan_cli import tty +from clan_cli.clan_uri import FlakeId +from clan_cli.completions import ( add_dynamic_completer, complete_groups, complete_machines, complete_secrets, complete_users, ) -from ..errors import ClanError -from ..git import commit_files +from clan_cli.errors import ClanError +from clan_cli.git import commit_files + from .folders import ( list_objects, sops_groups_folder, diff --git a/pkgs/clan-cli/clan_cli/secrets/sops.py b/pkgs/clan-cli/clan_cli/secrets/sops.py index a5f080c9f..602a414ba 100644 --- a/pkgs/clan-cli/clan_cli/secrets/sops.py +++ b/pkgs/clan-cli/clan_cli/secrets/sops.py @@ -9,10 +9,11 @@ from pathlib import Path from tempfile import NamedTemporaryFile from typing import IO -from ..cmd import Log, run -from ..dirs import user_config_dir -from ..errors import ClanError -from ..nix import nix_shell +from clan_cli.cmd import Log, run +from clan_cli.dirs import user_config_dir +from clan_cli.errors import ClanError +from clan_cli.nix import nix_shell + from .folders import sops_machines_folder, sops_users_folder diff --git a/pkgs/clan-cli/clan_cli/secrets/types.py b/pkgs/clan-cli/clan_cli/secrets/types.py index 49117053f..697869feb 100644 --- a/pkgs/clan-cli/clan_cli/secrets/types.py +++ b/pkgs/clan-cli/clan_cli/secrets/types.py @@ -4,7 +4,8 @@ import re from collections.abc import Callable from pathlib import Path -from ..errors import ClanError +from clan_cli.errors import ClanError + from .sops import get_public_key VALID_SECRET_NAME = re.compile(r"^[a-zA-Z0-9._-]+$") diff --git a/pkgs/clan-cli/clan_cli/secrets/users.py b/pkgs/clan-cli/clan_cli/secrets/users.py index ba40d93b9..9cf76d872 100644 --- a/pkgs/clan-cli/clan_cli/secrets/users.py +++ b/pkgs/clan-cli/clan_cli/secrets/users.py @@ -1,13 +1,10 @@ import argparse from pathlib import Path -from ..completions import ( - add_dynamic_completer, - complete_secrets, - complete_users, -) -from ..errors import ClanError -from ..git import commit_files +from clan_cli.completions import add_dynamic_completer, complete_secrets, complete_users +from clan_cli.errors import ClanError +from clan_cli.git import commit_files + from . import secrets from .folders import list_objects, remove_object, sops_secrets_folder, sops_users_folder from .secrets import update_secrets diff --git a/pkgs/clan-cli/clan_cli/ssh/__init__.py b/pkgs/clan-cli/clan_cli/ssh/__init__.py index de7462e32..a873df914 100644 --- a/pkgs/clan-cli/clan_cli/ssh/__init__.py +++ b/pkgs/clan-cli/clan_cli/ssh/__init__.py @@ -18,7 +18,7 @@ from shlex import quote from threading import Thread from typing import IO, Any, Generic, TypeVar -from ..errors import ClanError +from clan_cli.errors import ClanError # https://no-color.org DISABLE_COLOR = not sys.stderr.isatty() or os.environ.get("NO_COLOR", "") != "" diff --git a/pkgs/clan-cli/clan_cli/ssh/cli.py b/pkgs/clan-cli/clan_cli/ssh/cli.py index 971791320..9dd505c90 100644 --- a/pkgs/clan-cli/clan_cli/ssh/cli.py +++ b/pkgs/clan-cli/clan_cli/ssh/cli.py @@ -6,7 +6,7 @@ import socket import subprocess from pathlib import Path -from ..nix import nix_shell +from clan_cli.nix import nix_shell log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/state/list.py b/pkgs/clan-cli/clan_cli/state/list.py index 58db1d48f..b19c2fe95 100644 --- a/pkgs/clan-cli/clan_cli/state/list.py +++ b/pkgs/clan-cli/clan_cli/state/list.py @@ -3,15 +3,15 @@ import json import logging from pathlib import Path -from ..cmd import run_no_stdout -from ..completions import ( +from clan_cli.cmd import run_no_stdout +from clan_cli.completions import ( add_dynamic_completer, complete_machines, complete_state_services_for_machine, ) -from ..dirs import get_clan_flake_toplevel_or_env -from ..errors import ClanCmdError, ClanError -from ..nix import nix_eval +from clan_cli.dirs import get_clan_flake_toplevel_or_env +from clan_cli.errors import ClanCmdError, ClanError +from clan_cli.nix import nix_eval log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/vars/__init__.py b/pkgs/clan-cli/clan_cli/vars/__init__.py index aa5f1d220..923580785 100644 --- a/pkgs/clan-cli/clan_cli/vars/__init__.py +++ b/pkgs/clan-cli/clan_cli/vars/__init__.py @@ -1,7 +1,8 @@ # !/usr/bin/env python3 import argparse -from ..hyperlink import help_hyperlink +from clan_cli.hyperlink import help_hyperlink + from .check import register_check_parser from .generate import register_generate_parser from .list import register_list_parser diff --git a/pkgs/clan-cli/clan_cli/vars/check.py b/pkgs/clan-cli/clan_cli/vars/check.py index 60cadee47..9f364113b 100644 --- a/pkgs/clan-cli/clan_cli/vars/check.py +++ b/pkgs/clan-cli/clan_cli/vars/check.py @@ -2,8 +2,8 @@ import argparse import importlib import logging -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/vars/generate.py b/pkgs/clan-cli/clan_cli/vars/generate.py index 268547cb7..c95369eb3 100644 --- a/pkgs/clan-cli/clan_cli/vars/generate.py +++ b/pkgs/clan-cli/clan_cli/vars/generate.py @@ -10,17 +10,17 @@ from tempfile import TemporaryDirectory from typing import Any from clan_cli.cmd import run - -from ..completions import ( +from clan_cli.completions import ( add_dynamic_completer, complete_machines, complete_services_for_machine, ) -from ..errors import ClanError -from ..git import commit_files -from ..machines.inventory import get_all_machines, get_selected_machines -from ..machines.machines import Machine -from ..nix import nix_shell +from clan_cli.errors import ClanError +from clan_cli.git import commit_files +from clan_cli.machines.inventory import get_all_machines, get_selected_machines +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_shell + from .check import check_vars from .public_modules import FactStoreBase from .secret_modules import SecretStoreBase diff --git a/pkgs/clan-cli/clan_cli/vars/list.py b/pkgs/clan-cli/clan_cli/vars/list.py index c06862bb9..24efb23fd 100644 --- a/pkgs/clan-cli/clan_cli/vars/list.py +++ b/pkgs/clan-cli/clan_cli/vars/list.py @@ -2,8 +2,9 @@ import argparse import importlib import logging -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine + from ._types import Var log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/vars/upload.py b/pkgs/clan-cli/clan_cli/vars/upload.py index d80af092f..ff7f038af 100644 --- a/pkgs/clan-cli/clan_cli/vars/upload.py +++ b/pkgs/clan-cli/clan_cli/vars/upload.py @@ -4,10 +4,10 @@ import logging from pathlib import Path from tempfile import TemporaryDirectory -from ..cmd import Log, run -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine -from ..nix import nix_shell +from clan_cli.cmd import Log, run +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_shell log = logging.getLogger(__name__) diff --git a/pkgs/clan-cli/clan_cli/vms/inspect.py b/pkgs/clan-cli/clan_cli/vms/inspect.py index d5542bdfc..ecbfd6ba4 100644 --- a/pkgs/clan-cli/clan_cli/vms/inspect.py +++ b/pkgs/clan-cli/clan_cli/vms/inspect.py @@ -3,9 +3,9 @@ import json from dataclasses import dataclass from pathlib import Path -from ..clan_uri import FlakeId -from ..completions import add_dynamic_completer, complete_machines -from ..machines.machines import Machine +from clan_cli.clan_uri import FlakeId +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.machines.machines import Machine @dataclass diff --git a/pkgs/clan-cli/clan_cli/vms/qemu.py b/pkgs/clan-cli/clan_cli/vms/qemu.py index f8c90f95d..a3b732529 100644 --- a/pkgs/clan-cli/clan_cli/vms/qemu.py +++ b/pkgs/clan-cli/clan_cli/vms/qemu.py @@ -5,9 +5,9 @@ from contextlib import contextmanager from dataclasses import dataclass from pathlib import Path +from clan_cli.errors import ClanError from clan_cli.qemu.qmp import QEMUMonitorProtocol -from ..errors import ClanError from .inspect import VmConfig diff --git a/pkgs/clan-cli/clan_cli/vms/run.py b/pkgs/clan-cli/clan_cli/vms/run.py index 57cd3c618..0ca4ca643 100644 --- a/pkgs/clan-cli/clan_cli/vms/run.py +++ b/pkgs/clan-cli/clan_cli/vms/run.py @@ -7,13 +7,14 @@ from contextlib import ExitStack from pathlib import Path from tempfile import TemporaryDirectory -from ..cmd import Log, run -from ..completions import add_dynamic_completer, complete_machines -from ..dirs import module_root, user_cache_dir, vm_state_dir -from ..errors import ClanError -from ..facts.generate import generate_facts -from ..machines.machines import Machine -from ..nix import nix_shell +from clan_cli.cmd import Log, run +from clan_cli.completions import add_dynamic_completer, complete_machines +from clan_cli.dirs import module_root, user_cache_dir, vm_state_dir +from clan_cli.errors import ClanError +from clan_cli.facts.generate import generate_facts +from clan_cli.machines.machines import Machine +from clan_cli.nix import nix_shell + from .inspect import VmConfig, inspect_vm from .qemu import qemu_command from .virtiofsd import start_virtiofsd diff --git a/pkgs/clan-cli/clan_cli/vms/virtiofsd.py b/pkgs/clan-cli/clan_cli/vms/virtiofsd.py index 8d859e272..a9d544103 100644 --- a/pkgs/clan-cli/clan_cli/vms/virtiofsd.py +++ b/pkgs/clan-cli/clan_cli/vms/virtiofsd.py @@ -5,8 +5,8 @@ import time from collections.abc import Iterator from pathlib import Path -from ..errors import ClanError -from ..nix import nix_shell +from clan_cli.errors import ClanError +from clan_cli.nix import nix_shell @contextlib.contextmanager diff --git a/pkgs/clan-cli/clan_cli/vms/waypipe.py b/pkgs/clan-cli/clan_cli/vms/waypipe.py index c8748874d..a90c1902b 100644 --- a/pkgs/clan-cli/clan_cli/vms/waypipe.py +++ b/pkgs/clan-cli/clan_cli/vms/waypipe.py @@ -4,8 +4,8 @@ import subprocess import time from collections.abc import Iterator -from ..errors import ClanError -from ..nix import nix_shell +from clan_cli.errors import ClanError +from clan_cli.nix import nix_shell VMADDR_CID_HYPERVISOR = 2 diff --git a/pkgs/clan-cli/pyproject.toml b/pkgs/clan-cli/pyproject.toml index ee6d46137..eb26b677f 100644 --- a/pkgs/clan-cli/pyproject.toml +++ b/pkgs/clan-cli/pyproject.toml @@ -67,5 +67,5 @@ ignore_missing_imports = true [tool.ruff] target-version = "py311" line-length = 88 -lint.select = [ "E", "F", "I", "U", "N", "RUF", "ANN", "A" ] +lint.select = [ "E", "F", "I", "U", "N", "RUF", "ANN", "A", "TID" ] lint.ignore = ["E501", "E402", "E731", "ANN101", "ANN401", "A003"]