clan_cli: move flake class to clan_lib

This commit is contained in:
lassulus
2025-05-16 13:02:39 +02:00
parent 5a1bd4447e
commit 5423b9af41
42 changed files with 51 additions and 43 deletions

View File

@@ -14,6 +14,8 @@ from .clan import show, update
# API endpoints that are not used in the cli.
__all__ = ["directory", "disk", "mdns_discovery", "modules", "update"]
from clan_lib.flake.flake import Flake
from . import (
backups,
clan,
@@ -26,7 +28,6 @@ from .custom_logger import setup_logging
from .dirs import get_clan_flake_toplevel_or_env
from .errors import ClanError
from .facts import cli as facts
from .flake import Flake
from .flash import cli as flash_cli
from .hyperlink import help_hyperlink
from .machines import cli as machines

View File

@@ -5,12 +5,12 @@ from dataclasses import dataclass
from pathlib import Path
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Inventory
from clan_lib.persist.inventory_store import InventoryStore
from clan_cli.cmd import CmdOut, RunOpts, run
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.nix import nix_command, nix_metadata, nix_shell
from clan_cli.templates import (
InputPrio,

View File

@@ -3,10 +3,11 @@ from dataclasses import dataclass
from pathlib import Path
from typing import Any
from clan_lib.flake.flake import Flake
from clan_cli.cmd import run
from clan_cli.dirs import machine_gcroot
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.machines.list import list_machines
from clan_cli.machines.machines import Machine
from clan_cli.nix import (

View File

@@ -5,11 +5,11 @@ from pathlib import Path
from urllib.parse import urlparse
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Meta
from clan_cli.cmd import run
from clan_cli.errors import ClanCmdError, ClanError
from clan_cli.flake import Flake
from clan_cli.nix import nix_eval
log = logging.getLogger(__name__)

View File

@@ -1,12 +1,11 @@
from dataclasses import dataclass
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Inventory, Meta
from clan_lib.persist.inventory_store import InventoryStore
from clan_lib.persist.util import apply_patch
from clan_cli.flake import Flake
@dataclass
class UpdateOptions:

View File

@@ -9,7 +9,8 @@ from typing import TYPE_CHECKING
from .errors import ClanError
if TYPE_CHECKING:
from clan_cli.flake import Flake
from clan_lib.flake.flake import Flake
from clan_cli.machines.machines import Machine
log = logging.getLogger(__name__)

View File

@@ -6,8 +6,9 @@ from dataclasses import dataclass
from pathlib import Path
from typing import Any
from clan_lib.flake.flake import Flake
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from .flash import Disk, SystemConfig, flash_machine

View File

@@ -16,6 +16,7 @@ from pathlib import Path
from typing import Any
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Inventory
from clan_lib.persist.inventory_store import WriteInfo
from clan_lib.persist.util import (
@@ -26,7 +27,6 @@ from clan_lib.persist.util import (
)
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.git import commit_file

View File

@@ -5,6 +5,7 @@ from dataclasses import dataclass
from pathlib import Path
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import (
Machine as InventoryMachine,
)
@@ -17,7 +18,6 @@ from clan_lib.persist.util import apply_patch
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
from clan_cli.flake import Flake
from clan_cli.git import commit_file
from clan_cli.machines.list import list_machines
from clan_cli.templates import (

View File

@@ -6,12 +6,12 @@ from dataclasses import dataclass
from clan_lib.api import API
from clan_lib.api.disk import MachineDiskMatter
from clan_lib.api.modules import parse_frontmatter
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Machine as InventoryMachine
from clan_lib.persist.inventory_store import InventoryStore
from clan_cli.completions import add_dynamic_completer, complete_tags
from clan_cli.dirs import specific_machine_dir
from clan_cli.flake import Flake
from clan_cli.machines.hardware import HardwareConfig
from clan_cli.machines.inventory import get_inv_machine
from clan_cli.machines.machines import Machine

View File

@@ -9,11 +9,12 @@ from functools import cached_property
from pathlib import Path
from typing import TYPE_CHECKING, Any
from clan_lib.flake.flake import Flake
from clan_cli.cmd import Log, RunOpts, run
from clan_cli.errors import ClanCmdError, ClanError
from clan_cli.facts import public_modules as facts_public_modules
from clan_cli.facts import secret_modules as facts_secret_modules
from clan_cli.flake import Flake
from clan_cli.nix import nix_config, nix_eval, nix_test_store
from clan_cli.ssh.host import Host
from clan_cli.ssh.host_key import HostKeyCheck

View File

@@ -1,6 +1,6 @@
import pytest
from clan_lib.flake.flake import Flake
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
# Functions to test

View File

@@ -7,12 +7,12 @@ import re
from pathlib import Path
from tempfile import TemporaryDirectory
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Machine as InventoryMachine
from clan_cli.cmd import Log, RunOpts, run
from clan_cli.dirs import get_clan_flake_toplevel_or_env
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.machines.create import CreateOptions, create_machine
from clan_cli.machines.machines import Machine
from clan_cli.nix import nix_build, nix_command

View File

@@ -14,11 +14,11 @@ from tempfile import NamedTemporaryFile
from typing import IO, Any
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from clan_cli.cmd import Log, RunOpts, run
from clan_cli.dirs import user_config_dir
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.nix import nix_shell
from .folders import sops_users_folder

View File

@@ -1,7 +1,7 @@
import argparse
import json
from clan_cli.flake import Flake
from clan_lib.flake.flake import Flake
def select_command(args: argparse.Namespace) -> None:

View File

@@ -3,10 +3,11 @@ from dataclasses import dataclass, field
from pathlib import Path
from typing import Any, Literal, NewType, TypedDict, cast
from clan_lib.flake.flake import Flake
from clan_cli.cmd import run
from clan_cli.dirs import clan_templates
from clan_cli.errors import ClanCmdError, ClanError
from clan_cli.flake import Flake
log = logging.getLogger(__name__)

View File

@@ -16,7 +16,6 @@ from clan_cli.dirs import (
nixpkgs_source,
specific_machine_dir,
)
from clan_cli.flake import Flake
from clan_cli.locked_open import locked_open
from clan_cli.machines.machines import Machine
from clan_cli.nix import nix_test_store
@@ -24,6 +23,7 @@ from clan_cli.tests import age_keys
from clan_cli.tests.fixture_error import FixtureError
from clan_cli.tests.root import CLAN_CORE
from clan_cli.tests.temporary_dir import TEMPDIR
from clan_lib.flake.flake import Flake
log = logging.getLogger(__name__)

View File

@@ -6,7 +6,6 @@ from typing import Any
import pytest
from clan_cli.cmd import run
from clan_cli.flake import Flake
from clan_cli.git import commit_file
from clan_cli.locked_open import locked_open
from clan_cli.nix import nix_command
@@ -20,6 +19,7 @@ from clan_cli.templates import (
list_templates,
)
from clan_cli.tests.fixtures_flakes import FlakeForTest
from clan_lib.flake.flake import Flake
# Function to write clan attributes to a file

View File

@@ -1,14 +1,14 @@
import logging
import pytest
from clan_cli.flake import (
from clan_cli.tests.fixtures_flakes import ClanFlake
from clan_lib.flake.flake import (
Flake,
FlakeCache,
FlakeCacheEntry,
parse_selector,
selectors_as_dict,
)
from clan_cli.tests.fixtures_flakes import ClanFlake
log = logging.getLogger(__name__)
@@ -348,7 +348,7 @@ def test_conditional_all_selector(flake: ClanFlake) -> None:
def test_caching_works(flake: ClanFlake) -> None:
from unittest.mock import patch
from clan_cli.flake import Flake
from clan_lib.flake.flake import Flake
my_flake = Flake(str(flake.path))

View File

@@ -1,8 +1,8 @@
from typing import Any, cast
import pytest
from clan_cli.flake import Flake
from clan_cli.tests.fixtures_flakes import FlakeForTest
from clan_lib.flake.flake import Flake
from clan_lib.persist.inventory_store import InventoryStore

View File

@@ -1,11 +1,11 @@
import pytest
from clan_cli.flake import Flake
from clan_cli.inventory import load_inventory_json
from clan_cli.secrets.folders import sops_machines_folder
from clan_cli.tests import fixtures_flakes
from clan_cli.tests.age_keys import SopsSetup, assert_secrets_file_recipients
from clan_cli.tests.helpers import cli
from clan_cli.tests.stdout import CaptureOutput
from clan_lib.flake.flake import Flake
@pytest.mark.impure

View File

@@ -3,11 +3,11 @@ import subprocess
from typing import TYPE_CHECKING
import pytest
from clan_cli.flake import Flake
from clan_cli.machines.create import CreateOptions, create_machine
from clan_cli.nix import nix_eval, run
from clan_cli.tests.fixtures_flakes import FlakeForTest
from clan_lib.api.modules import list_modules
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import (
Inventory,
Machine,

View File

@@ -3,12 +3,12 @@ from typing import TYPE_CHECKING
import pytest
from clan_cli.facts.secret_modules.sops import SecretStore
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from clan_cli.secrets.folders import sops_secrets_folder
from clan_cli.tests.fixtures_flakes import FlakeForTest
from clan_cli.tests.helpers import cli
from clan_cli.tests.helpers.validator import is_valid_age_key
from clan_lib.flake.flake import Flake
if TYPE_CHECKING:
from .age_keys import KeyPair

View File

@@ -5,7 +5,6 @@ from pathlib import Path
import pytest
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from clan_cli.nix import nix_eval, run
from clan_cli.tests.age_keys import SopsSetup
@@ -24,6 +23,7 @@ from clan_cli.vars.list import stringify_all_vars
from clan_cli.vars.public_modules import in_repo
from clan_cli.vars.secret_modules import password_store, sops
from clan_cli.vars.set import set_var
from clan_lib.flake.flake import Flake
def test_dependencies_as_files(temp_dir: Path) -> None:

View File

@@ -5,7 +5,6 @@ from contextlib import ExitStack
import pytest
from clan_cli import cmd
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from clan_cli.nix import nix_eval, run
from clan_cli.tests.age_keys import SopsSetup
@@ -13,6 +12,7 @@ from clan_cli.tests.fixtures_flakes import ClanFlake
from clan_cli.tests.helpers import cli
from clan_cli.tests.nix_config import ConfigItem
from clan_cli.vms.run import inspect_vm, spawn_vm
from clan_lib.flake.flake import Flake
@pytest.mark.impure

View File

@@ -2,12 +2,12 @@ from pathlib import Path
from typing import TYPE_CHECKING
import pytest
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from clan_cli.tests.fixtures_flakes import ClanFlake, FlakeForTest
from clan_cli.tests.helpers import cli
from clan_cli.tests.stdout import CaptureOutput
from clan_cli.vms.run import inspect_vm, spawn_vm
from clan_lib.flake.flake import Flake
if TYPE_CHECKING:
from .age_keys import KeyPair

View File

@@ -16,13 +16,13 @@ from clan_cli.completions import (
complete_services_for_machine,
)
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.git import commit_files
from clan_cli.machines.list import list_machines
from clan_cli.nix import nix_config, nix_shell, nix_test_store
from clan_cli.vars._types import StoreBase
from clan_cli.vars.migration import check_can_migrate, migrate_files
from clan_lib.api import API
from clan_lib.flake.flake import Flake
from .check import check_vars
from .graph import (

View File

@@ -4,8 +4,8 @@ import sys
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 clan_lib.flake.flake import Flake
from .generate import Var
from .list import get_vars

View File

@@ -3,9 +3,9 @@ import logging
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 clan_lib.flake.flake import Flake
from ._types import GeneratorUpdate
from .generate import Generator, Prompt, Var, execute_generator

View File

@@ -3,11 +3,11 @@ import logging
import sys
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.flake import Flake
from clan_cli.git import commit_files
from clan_cli.machines.machines import Machine
from clan_cli.vars.get import get_var
from clan_cli.vars.prompt import PromptType
from clan_lib.flake.flake import Flake
from .generate import Var
from .prompt import ask

View File

@@ -4,8 +4,9 @@ from dataclasses import dataclass
from pathlib import Path
from typing import Any
from clan_lib.flake.flake import Flake
from clan_cli.completions import add_dynamic_completer, complete_machines
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine

View File

@@ -6,9 +6,10 @@ from typing import Any, Literal
from clan_cli.cmd import RunOpts, run
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.nix import nix_shell
from clan_lib.flake.flake import Flake
from . import API

View File

@@ -5,7 +5,8 @@ from pathlib import Path
from typing import Any, TypedDict
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_lib.flake.flake import Flake
from . import API

View File

View File

@@ -2,9 +2,9 @@ import json
from dataclasses import dataclass
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.git import commit_file
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Inventory
from .util import (

View File

@@ -11,7 +11,6 @@ import pytest
from clan_cli.cmd import RunOpts, run
from clan_cli.dirs import specific_machine_dir
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.inventory import patch_inventory_with
from clan_cli.machines.create import CreateOptions as ClanCreateOptions
from clan_cli.machines.create import create_machine
@@ -26,6 +25,7 @@ from clan_cli.vars.generate import generate_vars_for_machine, get_generators_clo
from clan_lib.api.disk import hw_main_disk_options, set_machine_disk_schema
from clan_lib.api.network import check_machine_online
from clan_lib.flake.flake import Flake
from clan_lib.nix_models.inventory import Machine as InventoryMachine
from clan_lib.nix_models.inventory import MachineDeploy

View File

@@ -68,7 +68,7 @@ let
# In cases where the devshell created this file, this will already exist
rm -f $out/clan_cli/nixpkgs
substituteInPlace $out/clan_cli/flake.py \
substituteInPlace $out/clan_lib/flake/flake.py \
--replace-fail '@fallback_nixpkgs_hash@' "$(jq -r '.nodes.nixpkgs.locked.narHash' ${nixpkgs'}/flake.lock)" \
--replace-fail '@select_hash@' "$(jq -r '.nodes."nix-select".locked.narHash' ${../../flake.lock})"
ln -sf ${nixpkgs'} $out/clan_cli/nixpkgs

View File

@@ -4,7 +4,7 @@ import urllib.request
from dataclasses import dataclass
from pathlib import Path
from clan_cli.flake import Flake
from clan_lib.flake.flake import Flake
# Define the ClanURI class

View File

@@ -8,9 +8,9 @@ from typing import Any
from clan_cli.clan.inspect import FlakeConfig, inspect_flake
from clan_cli.dirs import user_history_file
from clan_cli.errors import ClanError
from clan_cli.flake import Flake
from clan_cli.locked_open import read_history_file, write_history_file
from clan_cli.machines.list import list_machines
from clan_lib.flake.flake import Flake
from clan_vm_manager.clan_uri import ClanURI

View File

@@ -4,8 +4,8 @@ from pathlib import Path
from typing import Any, ClassVar
import gi
from clan_cli.flake import Flake
from clan_cli.machines.machines import Machine
from clan_lib.flake.flake import Flake
from clan_vm_manager import assets
from clan_vm_manager.clan_uri import ClanURI

View File

@@ -1,8 +1,8 @@
from pathlib import Path
import pytest
from clan_cli.flake import Flake
from clan_cli.tests.fixtures_flakes import ClanFlake
from clan_lib.flake.flake import Flake
from clan_vm_manager.clan_uri import ClanURI