Refactor(clan_lib): move clan_cli.api into clan_lib.api

This commit is contained in:
Johannes Kirschbauer
2025-04-26 19:48:00 +02:00
parent 35c280ffa7
commit f6628ec1a9
35 changed files with 53 additions and 36 deletions

View File

@@ -29,8 +29,8 @@ from dataclasses import dataclass, field
from pathlib import Path
from typing import Any
from clan_cli.api.modules import Frontmatter, extract_frontmatter, get_roles
from clan_cli.errors import ClanError
from clan_lib.api.modules import Frontmatter, extract_frontmatter, get_roles
# Get environment variables
CLAN_CORE_PATH = Path(os.environ["CLAN_CORE_PATH"])

View File

@@ -8,8 +8,8 @@ import time
from pathlib import Path
from typing import Any
from clan_cli.api import ApiError, ErrorDataClass, SuccessDataClass
from clan_cli.api.directory import FileRequest
from clan_lib.api import ApiError, ErrorDataClass, SuccessDataClass
from clan_lib.api.directory import FileRequest
from gi.repository import Gio, GLib, Gtk
log = logging.getLogger(__name__)

View File

@@ -9,8 +9,8 @@ import os
from dataclasses import dataclass
from pathlib import Path
from clan_cli.api import API
from clan_cli.custom_logger import setup_logging
from clan_lib.api import API
from clan_app.api.file_gtk import open_file
from clan_app.deps.webview.webview import Size, SizeHint, Webview

View File

@@ -6,7 +6,7 @@ from collections.abc import Callable
from enum import IntEnum
from typing import Any
from clan_cli.api import (
from clan_lib.api import (
ApiError,
ErrorDataClass,
MethodRegistry,

View File

@@ -1,6 +1,6 @@
import json
from clan_cli.api import API
from clan_lib.api import API
def main() -> None:

View File

@@ -6,7 +6,8 @@ from pathlib import Path
from types import ModuleType
# These imports are unused, but necessary for @API.register to run once.
from .api import admin, directory, disk, iwd, mdns_discovery, modules
from clan_lib.api import admin, directory, disk, iwd, mdns_discovery, modules
from .arg_actions import AppendOptionAction
from .clan import show, update
@@ -65,7 +66,10 @@ def add_common_flags(parser: argparse.ArgumentParser) -> None:
The error that would be thrown by argparse:
- argparse.ArgumentError
"""
return any(arg in action.option_strings for action in parser._actions) # noqa: SLF001 -> private_member accessed
return any(
arg in action.option_strings
for action in parser._actions # noqa: SLF001
)
if not argument_exists(parser, "--debug"):
parser.add_argument(

View File

@@ -4,7 +4,8 @@ import logging
from dataclasses import dataclass
from pathlib import Path
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import CmdOut, RunOpts, run
from clan_cli.errors import ClanError
from clan_cli.flake import Flake

View File

@@ -4,7 +4,8 @@ import logging
from pathlib import Path
from urllib.parse import urlparse
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import run_no_stdout
from clan_cli.errors import ClanCmdError, ClanError
from clan_cli.inventory import Meta

View File

@@ -1,6 +1,7 @@
from dataclasses import dataclass
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.inventory import Inventory, Meta, load_inventory_json, set_inventory

View File

@@ -6,7 +6,8 @@ from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Any
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import Log, RunOpts, cmd_with_root, run
from clan_cli.errors import ClanError
from clan_cli.facts.generate import generate_facts

View File

@@ -3,7 +3,8 @@ import logging
import os
from pathlib import Path
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import Log, RunOpts, run
from clan_cli.errors import ClanError
from clan_cli.nix import nix_build

View File

@@ -19,7 +19,8 @@ from dataclasses import dataclass
from pathlib import Path
from typing import Any
from clan_cli.api import API, dataclass_to_dict, from_dict
from clan_lib.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

View File

@@ -4,7 +4,8 @@ import re
from dataclasses import dataclass
from pathlib import Path
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.completions import add_dynamic_completer, complete_tags
from clan_cli.dirs import get_clan_flake_toplevel_or_env
from clan_cli.errors import ClanError

View File

@@ -4,7 +4,7 @@ import shutil
from pathlib import Path
from clan_cli import Flake, inventory
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.dirs import specific_machine_dir
from clan_cli.secrets.folders import sops_secrets_folder

View File

@@ -5,7 +5,8 @@ from dataclasses import dataclass
from enum import Enum
from pathlib import Path
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import RunOpts, run, run_no_stdout
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.dirs import specific_machine_dir

View File

@@ -7,7 +7,8 @@ from enum import Enum
from pathlib import Path
from tempfile import TemporaryDirectory
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import Log, RunOpts, run
from clan_cli.completions import (
add_dynamic_completer,

View File

@@ -6,10 +6,11 @@ from dataclasses import dataclass
from pathlib import Path
from typing import Literal
from clan_cli.api import API
from clan_cli.api.disk import MachineDiskMatter
from clan_cli.api.modules import parse_frontmatter
from clan_cli.api.serde import dataclass_to_dict
from clan_lib.api import API
from clan_lib.api.disk import MachineDiskMatter
from clan_lib.api.modules import parse_frontmatter
from clan_lib.api.serde import dataclass_to_dict
from clan_cli.cmd import RunOpts, run_no_stdout
from clan_cli.completions import add_dynamic_completer, complete_tags
from clan_cli.dirs import specific_machine_dir

View File

@@ -6,7 +6,8 @@ import re
import shlex
import sys
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.async_run import AsyncContext, AsyncOpts, AsyncRuntime, is_async_cancelled
from clan_cli.cmd import MsgColor, RunOpts, run
from clan_cli.colors import AnsiColor

View File

@@ -12,7 +12,8 @@ from pathlib import Path
from tempfile import NamedTemporaryFile
from typing import IO, Any
from clan_cli.api import API
from clan_lib.api import API
from clan_cli.cmd import Log, RunOpts, run
from clan_cli.dirs import user_config_dir
from clan_cli.errors import ClanError

View File

@@ -5,9 +5,9 @@ import sys
from dataclasses import is_dataclass
from pathlib import Path
from clan_cli.api import API
from clan_cli.api.util import JSchemaTypeError, type_to_dict
from clan_cli.errors import ClanError
from clan_lib.api import API
from clan_lib.api.util import JSchemaTypeError, type_to_dict
def should_skip(file_path: Path, excludes: list[Path]) -> bool:

View File

@@ -3,12 +3,12 @@ from pathlib import Path
from typing import Any, Literal
import pytest
# Functions to test
from clan_cli.api import dataclass_to_dict, from_dict
from clan_cli.errors import ClanError
from clan_cli.machines import machines
# Functions to test
from clan_lib.api import dataclass_to_dict, from_dict
def test_simple() -> None:
@dataclass

View File

@@ -3,7 +3,6 @@ import subprocess
from typing import TYPE_CHECKING
import pytest
from clan_cli.api.modules import list_modules
from clan_cli.flake import Flake
from clan_cli.inventory import (
Inventory,
@@ -14,6 +13,7 @@ from clan_cli.inventory import (
from clan_cli.machines.create import CreateOptions, create_machine
from clan_cli.nix import nix_eval, run_no_stdout
from clan_cli.tests.fixtures_flakes import FlakeForTest
from clan_lib.api.modules import list_modules
if TYPE_CHECKING:
from .age_keys import KeyPair

View File

@@ -1,7 +1,7 @@
from dataclasses import dataclass, field
# Functions to test
from clan_cli.api import (
from clan_lib.api import (
dataclass_to_dict,
sanitize_string,
)

View File

@@ -2,10 +2,10 @@ import argparse
import logging
import sys
from clan_cli.api import API
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_lib.api import API
from .generate import Var
from .list import get_vars

View File

@@ -1,11 +1,11 @@
import argparse
import logging
from clan_cli.api import API
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from clan_lib.api import API
from ._types import GeneratorUpdate
from .generate import Generator, Prompt, Var, execute_generator

View File

@@ -6,13 +6,14 @@ from pathlib import Path
from typing import Any, TypedDict
from uuid import uuid4
from clan_cli.api import API
from clan_cli.api.modules import Frontmatter, extract_frontmatter
from clan_cli.dirs import TemplateType, clan_templates
from clan_cli.errors import ClanError
from clan_cli.git import commit_file
from clan_cli.machines.hardware import HardwareConfig, show_machine_hardware_config
from clan_lib.api import API
from clan_lib.api.modules import Frontmatter, extract_frontmatter
log = logging.getLogger(__name__)

View File

@@ -19,7 +19,7 @@ from typing import (
is_typeddict,
)
from clan_cli.api.serde import dataclass_to_dict
from clan_lib.api.serde import dataclass_to_dict
class JSchemaTypeError(Exception):