From 3bae843587b35574b88f50d3c1db936565726337 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Sat, 31 Jan 2026 10:07:02 +1100 Subject: [PATCH 1/2] Enable ruff absolute import check --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index f048be4358..ac56c87d76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -179,6 +179,9 @@ indent-style = "tab" quote-style = "single" docstring-code-format = true +[tool.ruff.lint.flake8-tidy-imports] +ban-relative-imports = "all" + [tool.ruff.lint] select = [ "ASYNC", # flake8-async @@ -209,6 +212,7 @@ select = [ "UP", # pyupgrade "W", # pycodestyle warnings "YTT", # flake8-2020 + "TID", # flake8-tidy-imports (Enables TID252) ] ignore = [ From 93f08972c80972bd5013c242c0c1dbcfeef53638 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Sat, 31 Jan 2026 10:16:01 +1100 Subject: [PATCH 2/2] Convert all relative imports to absolute --- archinstall/__init__.py | 2 +- archinstall/default_profiles/profile.py | 2 +- archinstall/lib/boot.py | 8 +-- archinstall/lib/bootloader/bootloader_menu.py | 9 ++-- archinstall/lib/configuration.py | 11 ++-- archinstall/lib/crypt.py | 2 +- archinstall/lib/disk/device_handler.py | 21 +++----- archinstall/lib/disk/disk_menu.py | 7 ++- archinstall/lib/disk/encryption_menu.py | 14 +++--- archinstall/lib/disk/fido.py | 9 ++-- archinstall/lib/disk/filesystem.py | 13 +++-- archinstall/lib/disk/partitioning_menu.py | 11 ++-- archinstall/lib/disk/subvolume_menu.py | 5 +- archinstall/lib/general.py | 3 +- archinstall/lib/global_menu.py | 50 ++++++++----------- archinstall/lib/hardware.py | 10 ++-- archinstall/lib/installer.py | 35 +++++++------ archinstall/lib/interactions/__init__.py | 6 +-- archinstall/lib/interactions/disk_conf.py | 6 +-- archinstall/lib/interactions/general_conf.py | 10 ++-- archinstall/lib/interactions/system_conf.py | 3 +- archinstall/lib/locale/__init__.py | 2 +- archinstall/lib/locale/locale_menu.py | 7 ++- archinstall/lib/locale/utils.py | 8 +-- archinstall/lib/luks.py | 9 ++-- archinstall/lib/menu/__init__.py | 4 +- archinstall/lib/menu/abstract_menu.py | 3 +- archinstall/lib/menu/helpers.py | 10 +--- archinstall/lib/mirrors.py | 19 ++++--- archinstall/lib/models/__init__.py | 18 +++---- archinstall/lib/models/bootloader.py | 7 ++- archinstall/lib/models/device.py | 7 ++- archinstall/lib/models/locale.py | 3 +- archinstall/lib/models/mirrors.py | 8 +-- archinstall/lib/models/profile.py | 7 ++- archinstall/lib/models/users.py | 3 +- archinstall/lib/network/network_menu.py | 7 ++- archinstall/lib/networking.py | 6 +-- archinstall/lib/output.py | 2 +- archinstall/lib/packages/packages.py | 7 ++- archinstall/lib/pacman/config.py | 2 +- archinstall/lib/pacman/pacman.py | 9 ++-- archinstall/lib/plugins.py | 4 +- archinstall/lib/profile/profile_menu.py | 9 ++-- archinstall/lib/profile/profiles_handler.py | 13 +++-- archinstall/lib/user/user_menu.py | 7 ++- archinstall/lib/utils/util.py | 5 +- archinstall/main.py | 9 ++-- archinstall/scripts/guided.py | 5 +- archinstall/tui/curses_menu.py | 9 ++-- archinstall/tui/menu_item.py | 5 +- archinstall/tui/result.py | 2 +- 52 files changed, 199 insertions(+), 254 deletions(-) diff --git a/archinstall/__init__.py b/archinstall/__init__.py index 0050a1fde4..f13fa16956 100644 --- a/archinstall/__init__.py +++ b/archinstall/__init__.py @@ -1,3 +1,3 @@ -from .lib.plugins import plugin +from archinstall.lib.plugins import plugin __all__ = ['plugin'] diff --git a/archinstall/default_profiles/profile.py b/archinstall/default_profiles/profile.py index 0a6ed26ff8..c4c0e30eca 100644 --- a/archinstall/default_profiles/profile.py +++ b/archinstall/default_profiles/profile.py @@ -6,7 +6,7 @@ from archinstall.lib.translationhandler import tr if TYPE_CHECKING: - from ..lib.installer import Installer + from archinstall.lib.installer import Installer class ProfileType(Enum): diff --git a/archinstall/lib/boot.py b/archinstall/lib/boot.py index f907522c09..3b15474469 100644 --- a/archinstall/lib/boot.py +++ b/archinstall/lib/boot.py @@ -5,12 +5,12 @@ from types import TracebackType from typing import TYPE_CHECKING, ClassVar, Self -from .command import SysCommand, SysCommandWorker, locate_binary -from .exceptions import SysCallError -from .output import error +from archinstall.lib.command import SysCommand, SysCommandWorker, locate_binary +from archinstall.lib.exceptions import SysCallError +from archinstall.lib.output import error if TYPE_CHECKING: - from .installer import Installer + from archinstall.lib.installer import Installer class Boot: diff --git a/archinstall/lib/bootloader/bootloader_menu.py b/archinstall/lib/bootloader/bootloader_menu.py index 629b84366f..fde81a5292 100644 --- a/archinstall/lib/bootloader/bootloader_menu.py +++ b/archinstall/lib/bootloader/bootloader_menu.py @@ -1,16 +1,15 @@ import textwrap from typing import override +from archinstall.lib.args import arch_config_handler +from archinstall.lib.hardware import SysInfo +from archinstall.lib.menu.abstract_menu import AbstractSubMenu from archinstall.lib.menu.helpers import Confirmation, Selection +from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..args import arch_config_handler -from ..hardware import SysInfo -from ..menu.abstract_menu import AbstractSubMenu -from ..models.bootloader import Bootloader, BootloaderConfiguration - class BootloaderMenu(AbstractSubMenu[BootloaderConfiguration]): def __init__( diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py index 1b5f93b0a7..7c2f006f02 100644 --- a/archinstall/lib/configuration.py +++ b/archinstall/lib/configuration.py @@ -3,17 +3,16 @@ import stat from pathlib import Path +from archinstall.lib.args import ArchConfig +from archinstall.lib.crypt import encrypt +from archinstall.lib.general import JSON, UNSAFE_JSON from archinstall.lib.menu.helpers import Confirmation, Selection +from archinstall.lib.output import debug, logger, warn from archinstall.lib.translationhandler import tr +from archinstall.lib.utils.util import get_password, prompt_dir from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from .args import ArchConfig -from .crypt import encrypt -from .general import JSON, UNSAFE_JSON -from .output import debug, logger, warn -from .utils.util import get_password, prompt_dir - class ConfigurationOutput: def __init__(self, config: ArchConfig): diff --git a/archinstall/lib/crypt.py b/archinstall/lib/crypt.py index 46032b3353..99fa62d6ca 100644 --- a/archinstall/lib/crypt.py +++ b/archinstall/lib/crypt.py @@ -6,7 +6,7 @@ from cryptography.fernet import Fernet, InvalidToken from cryptography.hazmat.primitives.kdf.argon2 import Argon2id -from .output import debug +from archinstall.lib.output import debug libcrypt = ctypes.CDLL('libcrypt.so') diff --git a/archinstall/lib/disk/device_handler.py b/archinstall/lib/disk/device_handler.py index 8e3a899627..b19b6f7765 100644 --- a/archinstall/lib/disk/device_handler.py +++ b/archinstall/lib/disk/device_handler.py @@ -8,10 +8,11 @@ from parted import Device, Disk, DiskException, FileSystem, Geometry, IOException, Partition, PartitionException, freshDisk, getAllDevices, getDevice, newDisk -from ..command import SysCommand, SysCommandWorker -from ..exceptions import DiskError, SysCallError, UnknownFilesystemFormat -from ..luks import Luks2 -from ..models.device import ( +from archinstall.lib.command import SysCommand, SysCommandWorker +from archinstall.lib.disk.utils import find_lsblk_info, get_all_lsblk_info, get_lsblk_info, umount +from archinstall.lib.exceptions import DiskError, SysCallError, UnknownFilesystemFormat +from archinstall.lib.luks import Luks2 +from archinstall.lib.models.device import ( DEFAULT_ITER_TIME, BDevice, BtrfsMountOption, @@ -37,15 +38,9 @@ _DeviceInfo, _PartitionInfo, ) -from ..models.users import Password -from ..output import debug, error, info, log -from ..utils.util import is_subpath -from .utils import ( - find_lsblk_info, - get_all_lsblk_info, - get_lsblk_info, - umount, -) +from archinstall.lib.models.users import Password +from archinstall.lib.output import debug, error, info, log +from archinstall.lib.utils.util import is_subpath class DeviceHandler: diff --git a/archinstall/lib/disk/disk_menu.py b/archinstall/lib/disk/disk_menu.py index e6c1e8c7af..5d91197f7d 100644 --- a/archinstall/lib/disk/disk_menu.py +++ b/archinstall/lib/disk/disk_menu.py @@ -2,6 +2,8 @@ from typing import override from archinstall.lib.disk.encryption_menu import DiskEncryptionMenu +from archinstall.lib.interactions.disk_conf import select_disk_config, select_lvm_config +from archinstall.lib.menu.abstract_menu import AbstractSubMenu from archinstall.lib.menu.helpers import Selection from archinstall.lib.models.device import ( DEFAULT_ITER_TIME, @@ -14,14 +16,11 @@ SnapshotConfig, SnapshotType, ) +from archinstall.lib.output import FormattedOutput from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..interactions.disk_conf import select_disk_config, select_lvm_config -from ..menu.abstract_menu import AbstractSubMenu -from ..output import FormattedOutput - @dataclass class DiskMenuConfig: diff --git a/archinstall/lib/disk/encryption_menu.py b/archinstall/lib/disk/encryption_menu.py index d022b9261f..0923f328b0 100644 --- a/archinstall/lib/disk/encryption_menu.py +++ b/archinstall/lib/disk/encryption_menu.py @@ -1,27 +1,27 @@ from pathlib import Path from typing import override +from archinstall.lib.disk.fido import Fido2 +from archinstall.lib.menu.abstract_menu import AbstractSubMenu from archinstall.lib.menu.helpers import Input, Selection, Table from archinstall.lib.menu.menu_helper import MenuHelper from archinstall.lib.models.device import ( + DEFAULT_ITER_TIME, DeviceModification, DiskEncryption, EncryptionType, + Fido2Device, LvmConfiguration, LvmVolume, PartitionModification, ) +from archinstall.lib.models.users import Password +from archinstall.lib.output import FormattedOutput from archinstall.lib.translationhandler import tr +from archinstall.lib.utils.util import get_password from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..menu.abstract_menu import AbstractSubMenu -from ..models.device import DEFAULT_ITER_TIME, Fido2Device -from ..models.users import Password -from ..output import FormattedOutput -from ..utils.util import get_password -from .fido import Fido2 - class DiskEncryptionMenu(AbstractSubMenu[DiskEncryption]): def __init__( diff --git a/archinstall/lib/disk/fido.py b/archinstall/lib/disk/fido.py index 73180b1245..0538417f1a 100644 --- a/archinstall/lib/disk/fido.py +++ b/archinstall/lib/disk/fido.py @@ -2,14 +2,13 @@ from pathlib import Path from typing import ClassVar +from archinstall.lib.command import SysCommand, SysCommandWorker +from archinstall.lib.exceptions import SysCallError from archinstall.lib.models.device import Fido2Device +from archinstall.lib.models.users import Password +from archinstall.lib.output import error, info from archinstall.lib.utils.encoding import clear_vt100_escape_codes_from_str -from ..command import SysCommand, SysCommandWorker -from ..exceptions import SysCallError -from ..models.users import Password -from ..output import error, info - class Fido2: _loaded_cryptsetup: bool = False diff --git a/archinstall/lib/disk/filesystem.py b/archinstall/lib/disk/filesystem.py index 7a19a1a28d..773428e4e0 100644 --- a/archinstall/lib/disk/filesystem.py +++ b/archinstall/lib/disk/filesystem.py @@ -2,11 +2,10 @@ import time from pathlib import Path -from archinstall.lib.translationhandler import tr - -from ..interactions.general_conf import confirm_abort -from ..luks import Luks2 -from ..models.device import ( +from archinstall.lib.disk.device_handler import device_handler +from archinstall.lib.interactions.general_conf import confirm_abort +from archinstall.lib.luks import Luks2 +from archinstall.lib.models.device import ( DiskEncryption, DiskLayoutConfiguration, DiskLayoutType, @@ -20,8 +19,8 @@ Size, Unit, ) -from ..output import debug, info -from .device_handler import device_handler +from archinstall.lib.output import debug, info +from archinstall.lib.translationhandler import tr class FilesystemHandler: diff --git a/archinstall/lib/disk/partitioning_menu.py b/archinstall/lib/disk/partitioning_menu.py index 357196d114..3385fa1034 100644 --- a/archinstall/lib/disk/partitioning_menu.py +++ b/archinstall/lib/disk/partitioning_menu.py @@ -2,7 +2,9 @@ from pathlib import Path from typing import override +from archinstall.lib.disk.subvolume_menu import SubvolumeMenu from archinstall.lib.menu.helpers import Confirmation, Input, Selection +from archinstall.lib.menu.list_manager import ListManager from archinstall.lib.models.device import ( BtrfsMountOption, DeviceModification, @@ -16,15 +18,12 @@ Size, Unit, ) +from archinstall.lib.output import FormattedOutput from archinstall.lib.translationhandler import tr +from archinstall.lib.utils.util import prompt_dir from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..menu.list_manager import ListManager -from ..output import FormattedOutput -from ..utils.util import prompt_dir -from .subvolume_menu import SubvolumeMenu - class FreeSpace: def __init__(self, start: Size, end: Size) -> None: @@ -566,7 +565,7 @@ def _suggest_partition_layout( if not self._reset_confirmation(): return None - from ..interactions.disk_conf import suggest_single_disk_layout + from archinstall.lib.interactions.disk_conf import suggest_single_disk_layout return suggest_single_disk_layout(self._device) diff --git a/archinstall/lib/disk/subvolume_menu.py b/archinstall/lib/disk/subvolume_menu.py index ad39b48adc..e5f1efc120 100644 --- a/archinstall/lib/disk/subvolume_menu.py +++ b/archinstall/lib/disk/subvolume_menu.py @@ -2,13 +2,12 @@ from typing import assert_never, override from archinstall.lib.menu.helpers import Input +from archinstall.lib.menu.list_manager import ListManager from archinstall.lib.models.device import SubvolumeModification from archinstall.lib.translationhandler import tr +from archinstall.lib.utils.util import prompt_dir from archinstall.tui.ui.result import ResultType -from ..menu.list_manager import ListManager -from ..utils.util import prompt_dir - class SubvolumeMenu(ListManager[SubvolumeModification]): def __init__( diff --git a/archinstall/lib/general.py b/archinstall/lib/general.py index 1565149710..3e2e37b2ea 100644 --- a/archinstall/lib/general.py +++ b/archinstall/lib/general.py @@ -5,10 +5,9 @@ from pathlib import Path from typing import Any, override +from archinstall.lib.output import debug from archinstall.lib.packages.packages import check_package_upgrade -from .output import debug - @lru_cache(maxsize=128) def check_version_upgrade() -> str | None: diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index 732c6e6166..b96190b306 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -1,40 +1,34 @@ import sys from typing import override +from archinstall.lib.applications.application_menu import ApplicationMenu +from archinstall.lib.args import ArchConfig +from archinstall.lib.authentication.authentication_menu import AuthenticationMenu +from archinstall.lib.bootloader.bootloader_menu import BootloaderMenu +from archinstall.lib.configuration import save_config from archinstall.lib.disk.disk_menu import DiskLayoutConfigurationMenu +from archinstall.lib.hardware import SysInfo +from archinstall.lib.interactions.general_conf import add_number_of_parallel_downloads, select_hostname, select_ntp, select_timezone +from archinstall.lib.interactions.system_conf import select_kernel, select_swap +from archinstall.lib.locale.locale_menu import LocaleMenu +from archinstall.lib.menu.abstract_menu import CONFIG_KEY, AbstractMenu +from archinstall.lib.mirrors import MirrorListHandler, MirrorMenu from archinstall.lib.models.application import ApplicationConfiguration, ZramConfiguration from archinstall.lib.models.authentication import AuthenticationConfiguration +from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration from archinstall.lib.models.device import DiskLayoutConfiguration, DiskLayoutType, FilesystemType, PartitionModification +from archinstall.lib.models.locale import LocaleConfiguration +from archinstall.lib.models.mirrors import MirrorConfiguration +from archinstall.lib.models.network import NetworkConfiguration, NicType +from archinstall.lib.models.packages import Repository +from archinstall.lib.models.profile import ProfileConfiguration from archinstall.lib.network.network_menu import select_network +from archinstall.lib.output import FormattedOutput from archinstall.lib.packages.packages import list_available_packages, select_additional_packages +from archinstall.lib.pacman.config import PacmanConfig +from archinstall.lib.translationhandler import Language, tr, translation_handler from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup -from .applications.application_menu import ApplicationMenu -from .args import ArchConfig -from .authentication.authentication_menu import AuthenticationMenu -from .bootloader.bootloader_menu import BootloaderMenu -from .configuration import save_config -from .hardware import SysInfo -from .interactions.general_conf import ( - add_number_of_parallel_downloads, - select_hostname, - select_ntp, - select_timezone, -) -from .interactions.system_conf import select_kernel, select_swap -from .locale.locale_menu import LocaleMenu -from .menu.abstract_menu import CONFIG_KEY, AbstractMenu -from .mirrors import MirrorListHandler, MirrorMenu -from .models.bootloader import Bootloader, BootloaderConfiguration -from .models.locale import LocaleConfiguration -from .models.mirrors import MirrorConfiguration -from .models.network import NetworkConfiguration, NicType -from .models.packages import Repository -from .models.profile import ProfileConfiguration -from .output import FormattedOutput -from .pacman.config import PacmanConfig -from .translationhandler import Language, tr, translation_handler - class GlobalMenu(AbstractMenu[None]): def __init__( @@ -236,7 +230,7 @@ def _is_config_valid(self) -> bool: return self._validate_bootloader() is None def _select_archinstall_language(self, preset: Language) -> Language: - from .interactions.general_conf import select_archinstall_language + from archinstall.lib.interactions.general_conf import select_archinstall_language language = select_archinstall_language(translation_handler.translated_languages, preset) translation_handler.activate(language) @@ -535,7 +529,7 @@ def _select_bootloader_config( return bootloader_config def _select_profile(self, current_profile: ProfileConfiguration | None) -> ProfileConfiguration | None: - from .profile.profile_menu import ProfileMenu + from archinstall.lib.profile.profile_menu import ProfileMenu profile_config = ProfileMenu(preset=current_profile).run() return profile_config diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py index dcac3c3b98..7d3d7d19ca 100644 --- a/archinstall/lib/hardware.py +++ b/archinstall/lib/hardware.py @@ -4,11 +4,11 @@ from pathlib import Path from typing import Self -from .command import SysCommand -from .exceptions import SysCallError -from .networking import enrich_iface_types, list_interfaces -from .output import debug -from .translationhandler import tr +from archinstall.lib.command import SysCommand +from archinstall.lib.exceptions import SysCallError +from archinstall.lib.networking import enrich_iface_types, list_interfaces +from archinstall.lib.output import debug +from archinstall.lib.translationhandler import tr class CpuVendor(Enum): diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index b245ff5fbd..3eae217d9c 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -14,10 +14,19 @@ from types import TracebackType from typing import Any, Self +from archinstall.lib.args import arch_config_handler +from archinstall.lib.boot import Boot +from archinstall.lib.command import SysCommand, run from archinstall.lib.disk.device_handler import device_handler from archinstall.lib.disk.fido import Fido2 from archinstall.lib.disk.utils import get_lsblk_by_mountpoint, get_lsblk_info +from archinstall.lib.exceptions import DiskError, HardwareIncompatibilityError, RequirementError, ServiceException, SysCallError +from archinstall.lib.hardware import SysInfo +from archinstall.lib.locale.utils import verify_keyboard_layout, verify_x11_keyboard_layout +from archinstall.lib.luks import Luks2 +from archinstall.lib.mirrors import MirrorListHandler from archinstall.lib.models.application import ZramAlgorithm +from archinstall.lib.models.bootloader import Bootloader from archinstall.lib.models.device import ( DiskEncryption, DiskLayoutConfiguration, @@ -31,28 +40,18 @@ SubvolumeModification, Unit, ) +from archinstall.lib.models.locale import LocaleConfiguration +from archinstall.lib.models.mirrors import MirrorConfiguration +from archinstall.lib.models.network import Nic from archinstall.lib.models.packages import Repository +from archinstall.lib.models.users import User +from archinstall.lib.output import debug, error, info, log, logger, warn from archinstall.lib.packages.packages import installed_package +from archinstall.lib.pacman.config import PacmanConfig +from archinstall.lib.pacman.pacman import Pacman +from archinstall.lib.plugins import plugins from archinstall.lib.translationhandler import tr -from .args import arch_config_handler -from .boot import Boot -from .command import SysCommand, run -from .exceptions import DiskError, HardwareIncompatibilityError, RequirementError, ServiceException, SysCallError -from .hardware import SysInfo -from .locale.utils import verify_keyboard_layout, verify_x11_keyboard_layout -from .luks import Luks2 -from .mirrors import MirrorListHandler -from .models.bootloader import Bootloader -from .models.locale import LocaleConfiguration -from .models.mirrors import MirrorConfiguration -from .models.network import Nic -from .models.users import User -from .output import debug, error, info, log, logger, warn -from .pacman.config import PacmanConfig -from .pacman.pacman import Pacman -from .plugins import plugins - # Any package that the Installer() is responsible for (optional and the default ones) __packages__ = ['base', 'sudo', 'linux-firmware', 'linux', 'linux-lts', 'linux-zen', 'linux-hardened'] diff --git a/archinstall/lib/interactions/__init__.py b/archinstall/lib/interactions/__init__.py index 6ff63cb3a5..52f308d76f 100644 --- a/archinstall/lib/interactions/__init__.py +++ b/archinstall/lib/interactions/__init__.py @@ -1,4 +1,4 @@ -from .disk_conf import ( +from archinstall.lib.interactions.disk_conf import ( get_default_partition_layout, select_devices, select_disk_config, @@ -6,14 +6,14 @@ suggest_multi_disk_layout, suggest_single_disk_layout, ) -from .general_conf import ( +from archinstall.lib.interactions.general_conf import ( add_number_of_parallel_downloads, select_archinstall_language, select_hostname, select_ntp, select_timezone, ) -from .system_conf import select_driver, select_kernel, select_swap +from archinstall.lib.interactions.system_conf import select_driver, select_kernel, select_swap __all__ = [ 'add_number_of_parallel_downloads', diff --git a/archinstall/lib/interactions/disk_conf.py b/archinstall/lib/interactions/disk_conf.py index c5747369e5..7e9b7b992c 100644 --- a/archinstall/lib/interactions/disk_conf.py +++ b/archinstall/lib/interactions/disk_conf.py @@ -26,14 +26,12 @@ Unit, _DeviceInfo, ) -from archinstall.lib.output import debug +from archinstall.lib.output import FormattedOutput, debug from archinstall.lib.translationhandler import tr +from archinstall.lib.utils.util import prompt_dir from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..output import FormattedOutput -from ..utils.util import prompt_dir - def select_devices(preset: list[BDevice] | None = []) -> list[BDevice] | None: def _preview_device_selection(item: MenuItem) -> str | None: diff --git a/archinstall/lib/interactions/general_conf.py b/archinstall/lib/interactions/general_conf.py index cfbb100cfc..750e687238 100644 --- a/archinstall/lib/interactions/general_conf.py +++ b/archinstall/lib/interactions/general_conf.py @@ -2,15 +2,13 @@ from enum import Enum from pathlib import Path +from archinstall.lib.locale.utils import list_timezones from archinstall.lib.menu.helpers import Confirmation, Input, Selection -from archinstall.lib.translationhandler import tr +from archinstall.lib.output import warn +from archinstall.lib.translationhandler import Language, tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..locale.utils import list_timezones -from ..output import warn -from ..translationhandler import Language - class PostInstallationAction(Enum): EXIT = tr('Exit archinstall') @@ -88,7 +86,7 @@ def select_timezone(preset: str | None = None) -> str | None: def select_language(preset: str | None = None) -> str | None: - from ..locale.locale_menu import select_kb_layout + from archinstall.lib.locale.locale_menu import select_kb_layout # We'll raise an exception in an upcoming version. # from ..exceptions import Deprecated diff --git a/archinstall/lib/interactions/system_conf.py b/archinstall/lib/interactions/system_conf.py index 540ed35f52..0551a0af59 100644 --- a/archinstall/lib/interactions/system_conf.py +++ b/archinstall/lib/interactions/system_conf.py @@ -1,13 +1,12 @@ from typing import assert_never +from archinstall.lib.hardware import GfxDriver, SysInfo from archinstall.lib.menu.helpers import Confirmation, Selection from archinstall.lib.models.application import ZramAlgorithm, ZramConfiguration from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..hardware import GfxDriver, SysInfo - def select_kernel(preset: list[str] = []) -> list[str]: """ diff --git a/archinstall/lib/locale/__init__.py b/archinstall/lib/locale/__init__.py index daff054cef..9f439328bc 100644 --- a/archinstall/lib/locale/__init__.py +++ b/archinstall/lib/locale/__init__.py @@ -1,4 +1,4 @@ -from .utils import ( +from archinstall.lib.locale.utils import ( list_keyboard_languages, list_locales, list_timezones, diff --git a/archinstall/lib/locale/locale_menu.py b/archinstall/lib/locale/locale_menu.py index 336d1384c2..4a72e6c1fb 100644 --- a/archinstall/lib/locale/locale_menu.py +++ b/archinstall/lib/locale/locale_menu.py @@ -1,14 +1,13 @@ from typing import override +from archinstall.lib.locale.utils import list_keyboard_languages, list_locales, set_kb_layout +from archinstall.lib.menu.abstract_menu import AbstractSubMenu from archinstall.lib.menu.helpers import Selection +from archinstall.lib.models.locale import LocaleConfiguration from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..menu.abstract_menu import AbstractSubMenu -from ..models.locale import LocaleConfiguration -from .utils import list_keyboard_languages, list_locales, set_kb_layout - class LocaleMenu(AbstractSubMenu[LocaleConfiguration]): def __init__( diff --git a/archinstall/lib/locale/utils.py b/archinstall/lib/locale/utils.py index 2dbd158a23..92c90c787d 100644 --- a/archinstall/lib/locale/utils.py +++ b/archinstall/lib/locale/utils.py @@ -1,7 +1,7 @@ -from ..command import SysCommand -from ..exceptions import ServiceException, SysCallError -from ..general import running_from_host -from ..output import error +from archinstall.lib.command import SysCommand +from archinstall.lib.exceptions import ServiceException, SysCallError +from archinstall.lib.general import running_from_host +from archinstall.lib.output import error def list_keyboard_languages() -> list[str]: diff --git a/archinstall/lib/luks.py b/archinstall/lib/luks.py index 86acf5379a..5a584a0f7f 100644 --- a/archinstall/lib/luks.py +++ b/archinstall/lib/luks.py @@ -4,15 +4,14 @@ from subprocess import CalledProcessError from types import TracebackType +from archinstall.lib.command import SysCommand, SysCommandWorker, run from archinstall.lib.disk.utils import get_lsblk_info, umount +from archinstall.lib.exceptions import DiskError, SysCallError from archinstall.lib.models.device import DEFAULT_ITER_TIME +from archinstall.lib.models.users import Password +from archinstall.lib.output import debug, info from archinstall.lib.utils.util import generate_password -from .command import SysCommand, SysCommandWorker, run -from .exceptions import DiskError, SysCallError -from .models.users import Password -from .output import debug, info - @dataclass class Luks2: diff --git a/archinstall/lib/menu/__init__.py b/archinstall/lib/menu/__init__.py index 1d4c5df8c7..4f0afb11cf 100644 --- a/archinstall/lib/menu/__init__.py +++ b/archinstall/lib/menu/__init__.py @@ -1,5 +1,5 @@ -from .abstract_menu import AbstractMenu, AbstractSubMenu -from .list_manager import ListManager +from archinstall.lib.menu.abstract_menu import AbstractMenu, AbstractSubMenu +from archinstall.lib.menu.list_manager import ListManager __all__ = [ 'AbstractMenu', diff --git a/archinstall/lib/menu/abstract_menu.py b/archinstall/lib/menu/abstract_menu.py index 096526bff0..06b2acf3d2 100644 --- a/archinstall/lib/menu/abstract_menu.py +++ b/archinstall/lib/menu/abstract_menu.py @@ -2,13 +2,12 @@ from typing import Any, Self from archinstall.lib.menu.helpers import Selection +from archinstall.lib.output import error from archinstall.lib.translationhandler import tr from archinstall.tui.types import Chars from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..output import error - CONFIG_KEY = '__config__' diff --git a/archinstall/lib/menu/helpers.py b/archinstall/lib/menu/helpers.py index 293cd4dc51..3b91c6218c 100644 --- a/archinstall/lib/menu/helpers.py +++ b/archinstall/lib/menu/helpers.py @@ -4,15 +4,7 @@ from textual.validation import ValidationResult, Validator from archinstall.lib.translationhandler import tr -from archinstall.tui.ui.components import ( - InputScreen, - LoadingScreen, - NotifyScreen, - OptionListScreen, - SelectListScreen, - TableSelectionScreen, - tui, -) +from archinstall.tui.ui.components import InputScreen, LoadingScreen, NotifyScreen, OptionListScreen, SelectListScreen, TableSelectionScreen, tui from archinstall.tui.ui.menu_item import MenuItemGroup from archinstall.tui.ui.result import Result, ResultType diff --git a/archinstall/lib/mirrors.py b/archinstall/lib/mirrors.py index d683da16df..2a02e43a80 100644 --- a/archinstall/lib/mirrors.py +++ b/archinstall/lib/mirrors.py @@ -3,14 +3,10 @@ from pathlib import Path from typing import override +from archinstall.lib.menu.abstract_menu import AbstractSubMenu from archinstall.lib.menu.helpers import Input, Loading, Selection -from archinstall.lib.translationhandler import tr -from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup -from archinstall.tui.ui.result import ResultType - -from .menu.abstract_menu import AbstractSubMenu -from .menu.list_manager import ListManager -from .models.mirrors import ( +from archinstall.lib.menu.list_manager import ListManager +from archinstall.lib.models.mirrors import ( CustomRepository, CustomServer, MirrorConfiguration, @@ -20,9 +16,12 @@ SignCheck, SignOption, ) -from .models.packages import Repository -from .networking import fetch_data_from_url -from .output import FormattedOutput, debug, info +from archinstall.lib.models.packages import Repository +from archinstall.lib.networking import fetch_data_from_url +from archinstall.lib.output import FormattedOutput, debug, info +from archinstall.lib.translationhandler import tr +from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup +from archinstall.tui.ui.result import ResultType class CustomMirrorRepositoriesList(ListManager[CustomRepository]): diff --git a/archinstall/lib/models/__init__.py b/archinstall/lib/models/__init__.py index d742bc9fe5..7428dd3e1c 100644 --- a/archinstall/lib/models/__init__.py +++ b/archinstall/lib/models/__init__.py @@ -1,6 +1,6 @@ -from .application import ApplicationConfiguration, Audio, AudioConfiguration, BluetoothConfiguration, PrintServiceConfiguration -from .bootloader import Bootloader -from .device import ( +from archinstall.lib.models.application import ApplicationConfiguration, Audio, AudioConfiguration, BluetoothConfiguration, PrintServiceConfiguration +from archinstall.lib.models.bootloader import Bootloader +from archinstall.lib.models.device import ( BDevice, DeviceGeometry, DeviceModification, @@ -27,12 +27,12 @@ Unit, _DeviceInfo, ) -from .locale import LocaleConfiguration -from .mirrors import CustomRepository, MirrorConfiguration, MirrorRegion -from .network import NetworkConfiguration, Nic, NicType -from .packages import LocalPackage, PackageSearch, PackageSearchResult, Repository -from .profile import ProfileConfiguration -from .users import PasswordStrength, User +from archinstall.lib.models.locale import LocaleConfiguration +from archinstall.lib.models.mirrors import CustomRepository, MirrorConfiguration, MirrorRegion +from archinstall.lib.models.network import NetworkConfiguration, Nic, NicType +from archinstall.lib.models.packages import LocalPackage, PackageSearch, PackageSearchResult, Repository +from archinstall.lib.models.profile import ProfileConfiguration +from archinstall.lib.models.users import PasswordStrength, User __all__ = [ 'ApplicationConfiguration', diff --git a/archinstall/lib/models/bootloader.py b/archinstall/lib/models/bootloader.py index 4de9d18761..97c3393b30 100644 --- a/archinstall/lib/models/bootloader.py +++ b/archinstall/lib/models/bootloader.py @@ -3,11 +3,10 @@ from enum import Enum from typing import Any, Self +from archinstall.lib.hardware import SysInfo +from archinstall.lib.output import warn from archinstall.lib.translationhandler import tr -from ..hardware import SysInfo -from ..output import warn - class Bootloader(Enum): NO_BOOTLOADER = 'No bootloader' @@ -32,7 +31,7 @@ def json(self) -> str: @classmethod def get_default(cls) -> Self: - from ..args import arch_config_handler + from archinstall.lib.args import arch_config_handler if arch_config_handler.args.skip_boot: return cls.NO_BOOTLOADER diff --git a/archinstall/lib/models/device.py b/archinstall/lib/models/device.py index 2b6de04914..fbe6976893 100644 --- a/archinstall/lib/models/device.py +++ b/archinstall/lib/models/device.py @@ -13,12 +13,11 @@ from parted import Disk, Geometry, Partition from pydantic import BaseModel, Field, ValidationInfo, field_serializer, field_validator +from archinstall.lib.hardware import SysInfo +from archinstall.lib.models.users import Password +from archinstall.lib.output import debug from archinstall.lib.translationhandler import tr -from ..hardware import SysInfo -from ..models.users import Password -from ..output import debug - ENC_IDENTIFIER = 'ainst' DEFAULT_ITER_TIME = 10000 diff --git a/archinstall/lib/models/locale.py b/archinstall/lib/models/locale.py index 75ec4027f1..15dee2f66c 100644 --- a/archinstall/lib/models/locale.py +++ b/archinstall/lib/models/locale.py @@ -1,10 +1,9 @@ from dataclasses import dataclass from typing import Any, Self +from archinstall.lib.locale.utils import get_kb_layout from archinstall.lib.translationhandler import tr -from ..locale.utils import get_kb_layout - @dataclass class LocaleConfiguration: diff --git a/archinstall/lib/models/mirrors.py b/archinstall/lib/models/mirrors.py index 4cd09acd2a..03f74b1a90 100644 --- a/archinstall/lib/models/mirrors.py +++ b/archinstall/lib/models/mirrors.py @@ -11,12 +11,12 @@ from pydantic import BaseModel, ValidationInfo, field_validator, model_validator -from ..models.packages import Repository -from ..networking import DownloadTimer, ping -from ..output import debug +from archinstall.lib.models.packages import Repository +from archinstall.lib.networking import DownloadTimer, ping +from archinstall.lib.output import debug if TYPE_CHECKING: - from ..mirrors import MirrorListHandler + from archinstall.lib.mirrors import MirrorListHandler class MirrorStatusEntryV3(BaseModel): diff --git a/archinstall/lib/models/profile.py b/archinstall/lib/models/profile.py index d26dba50da..eb5a3a1fb5 100644 --- a/archinstall/lib/models/profile.py +++ b/archinstall/lib/models/profile.py @@ -4,8 +4,7 @@ from typing import TYPE_CHECKING, Self, TypedDict from archinstall.default_profiles.profile import GreeterType, Profile - -from ..hardware import GfxDriver +from archinstall.lib.hardware import GfxDriver if TYPE_CHECKING: from archinstall.lib.profile.profiles_handler import ProfileSerialization @@ -24,7 +23,7 @@ class ProfileConfiguration: greeter: GreeterType | None = None def json(self) -> _ProfileConfigurationSerialization: - from ..profile.profiles_handler import profile_handler + from archinstall.lib.profile.profiles_handler import profile_handler return { 'profile': profile_handler.to_json(self.profile), @@ -34,7 +33,7 @@ def json(self) -> _ProfileConfigurationSerialization: @classmethod def parse_arg(cls, arg: _ProfileConfigurationSerialization) -> Self: - from ..profile.profiles_handler import profile_handler + from archinstall.lib.profile.profiles_handler import profile_handler profile = profile_handler.parse_profile_config(arg['profile']) greeter = arg.get('greeter', None) diff --git a/archinstall/lib/models/users.py b/archinstall/lib/models/users.py index 8cdcafd7c1..8fda6888ff 100644 --- a/archinstall/lib/models/users.py +++ b/archinstall/lib/models/users.py @@ -2,10 +2,9 @@ from enum import Enum from typing import NotRequired, Self, TypedDict, override +from archinstall.lib.crypt import crypt_yescrypt from archinstall.lib.translationhandler import tr -from ..crypt import crypt_yescrypt - class PasswordStrength(Enum): VERY_WEAK = 'very weak' diff --git a/archinstall/lib/network/network_menu.py b/archinstall/lib/network/network_menu.py index c238c2160c..290cd304aa 100644 --- a/archinstall/lib/network/network_menu.py +++ b/archinstall/lib/network/network_menu.py @@ -2,14 +2,13 @@ from typing import assert_never, override from archinstall.lib.menu.helpers import Input, Selection +from archinstall.lib.menu.list_manager import ListManager +from archinstall.lib.models.network import NetworkConfiguration, Nic, NicType +from archinstall.lib.networking import list_interfaces from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..menu.list_manager import ListManager -from ..models.network import NetworkConfiguration, Nic, NicType -from ..networking import list_interfaces - class ManualNetworkConfig(ListManager[Nic]): def __init__(self, prompt: str, preset: list[Nic]): diff --git a/archinstall/lib/networking.py b/archinstall/lib/networking.py index 58e808f99e..ebf59990de 100644 --- a/archinstall/lib/networking.py +++ b/archinstall/lib/networking.py @@ -12,9 +12,9 @@ from urllib.parse import urlencode from urllib.request import urlopen -from .exceptions import DownloadTimeout, SysCallError -from .output import debug, error, info -from .pacman.pacman import Pacman +from archinstall.lib.exceptions import DownloadTimeout, SysCallError +from archinstall.lib.output import debug, error, info +from archinstall.lib.pacman.pacman import Pacman class DownloadTimer: diff --git a/archinstall/lib/output.py b/archinstall/lib/output.py index 310f02fd29..483f8c27dc 100644 --- a/archinstall/lib/output.py +++ b/archinstall/lib/output.py @@ -8,7 +8,7 @@ from pathlib import Path from typing import TYPE_CHECKING, Any -from .utils.encoding import unicode_ljust, unicode_rjust +from archinstall.lib.utils.encoding import unicode_ljust, unicode_rjust if TYPE_CHECKING: from _typeshed import DataclassInstance diff --git a/archinstall/lib/packages/packages.py b/archinstall/lib/packages/packages.py index 8dcc205751..fa3493a051 100644 --- a/archinstall/lib/packages/packages.py +++ b/archinstall/lib/packages/packages.py @@ -1,15 +1,14 @@ from functools import lru_cache +from archinstall.lib.exceptions import SysCallError from archinstall.lib.menu.helpers import Loading, Notify, Selection from archinstall.lib.models.packages import AvailablePackage, LocalPackage, PackageGroup, Repository +from archinstall.lib.output import debug +from archinstall.lib.pacman.pacman import Pacman from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..exceptions import SysCallError -from ..output import debug -from ..pacman.pacman import Pacman - def installed_package(package: str) -> LocalPackage | None: try: diff --git a/archinstall/lib/pacman/config.py b/archinstall/lib/pacman/config.py index 6b46824636..445f8548a1 100644 --- a/archinstall/lib/pacman/config.py +++ b/archinstall/lib/pacman/config.py @@ -2,7 +2,7 @@ from pathlib import Path from shutil import copy2 -from ..models.packages import Repository +from archinstall.lib.models.packages import Repository class PacmanConfig: diff --git a/archinstall/lib/pacman/pacman.py b/archinstall/lib/pacman/pacman.py index 23ff03728c..b71fb025cc 100644 --- a/archinstall/lib/pacman/pacman.py +++ b/archinstall/lib/pacman/pacman.py @@ -3,13 +3,12 @@ from collections.abc import Callable from pathlib import Path +from archinstall.lib.command import SysCommand +from archinstall.lib.exceptions import RequirementError +from archinstall.lib.output import error, info, warn +from archinstall.lib.plugins import plugins from archinstall.lib.translationhandler import tr -from ..command import SysCommand -from ..exceptions import RequirementError -from ..output import error, info, warn -from ..plugins import plugins - class Pacman: def __init__(self, target: Path, silent: bool = False): diff --git a/archinstall/lib/plugins.py b/archinstall/lib/plugins.py index a9b19ae219..31c23b4a81 100644 --- a/archinstall/lib/plugins.py +++ b/archinstall/lib/plugins.py @@ -7,7 +7,7 @@ from importlib import metadata from pathlib import Path -from .output import error, info, warn +from archinstall.lib.output import error, info, warn plugins = {} @@ -94,7 +94,7 @@ def load_plugin(path: Path) -> None: namespace = _import_via_path(localized) if namespace and namespace in sys.modules: - from .args import arch_config_handler + from archinstall.lib.args import arch_config_handler # Version dependency via __archinstall__version__ variable (if present) in the plugin # Any errors in version inconsistency will be handled through normal error handling if not defined. diff --git a/archinstall/lib/profile/profile_menu.py b/archinstall/lib/profile/profile_menu.py index d7bf289cc5..45fb3f9cf4 100644 --- a/archinstall/lib/profile/profile_menu.py +++ b/archinstall/lib/profile/profile_menu.py @@ -1,16 +1,15 @@ from typing import override from archinstall.default_profiles.profile import GreeterType, Profile +from archinstall.lib.hardware import GfxDriver +from archinstall.lib.interactions.system_conf import select_driver +from archinstall.lib.menu.abstract_menu import AbstractSubMenu from archinstall.lib.menu.helpers import Confirmation, Selection +from archinstall.lib.models.profile import ProfileConfiguration from archinstall.lib.translationhandler import tr from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup from archinstall.tui.ui.result import ResultType -from ..hardware import GfxDriver -from ..interactions.system_conf import select_driver -from ..menu.abstract_menu import AbstractSubMenu -from ..models.profile import ProfileConfiguration - class ProfileMenu(AbstractSubMenu[ProfileConfiguration]): def __init__( diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py index 1ac208d451..bfcca4f96a 100644 --- a/archinstall/lib/profile/profiles_handler.py +++ b/archinstall/lib/profile/profiles_handler.py @@ -9,16 +9,15 @@ from types import ModuleType from typing import TYPE_CHECKING, NotRequired, TypedDict +from archinstall.default_profiles.profile import GreeterType, Profile +from archinstall.lib.hardware import GfxDriver +from archinstall.lib.models.profile import ProfileConfiguration +from archinstall.lib.networking import fetch_data_from_url +from archinstall.lib.output import debug, error, info from archinstall.lib.translationhandler import tr -from ...default_profiles.profile import GreeterType, Profile -from ..hardware import GfxDriver -from ..models.profile import ProfileConfiguration -from ..networking import fetch_data_from_url -from ..output import debug, error, info - if TYPE_CHECKING: - from ..installer import Installer + from archinstall.lib.installer import Installer class ProfileSerialization(TypedDict): diff --git a/archinstall/lib/user/user_menu.py b/archinstall/lib/user/user_menu.py index faf3fbb55c..e9900027d9 100644 --- a/archinstall/lib/user/user_menu.py +++ b/archinstall/lib/user/user_menu.py @@ -2,14 +2,13 @@ from typing import override from archinstall.lib.menu.helpers import Confirmation, Input +from archinstall.lib.menu.list_manager import ListManager +from archinstall.lib.models.users import User from archinstall.lib.translationhandler import tr +from archinstall.lib.utils.util import get_password from archinstall.tui.ui.menu_item import MenuItem from archinstall.tui.ui.result import ResultType -from ..menu.list_manager import ListManager -from ..models.users import User -from ..utils.util import get_password - class UserList(ListManager[User]): def __init__(self, prompt: str, lusers: list[User]): diff --git a/archinstall/lib/utils/util.py b/archinstall/lib/utils/util.py index a9a35506b7..830f2bad02 100644 --- a/archinstall/lib/utils/util.py +++ b/archinstall/lib/utils/util.py @@ -3,12 +3,11 @@ from pathlib import Path from archinstall.lib.menu.helpers import Input +from archinstall.lib.models.users import Password +from archinstall.lib.output import FormattedOutput from archinstall.lib.translationhandler import tr from archinstall.tui.ui.result import ResultType -from ..models.users import Password -from ..output import FormattedOutput - def generate_password(length: int = 64) -> str: haystack = string.printable # digits, ascii_letters, punctuation (!"#$[] etc) and whitespace diff --git a/archinstall/main.py b/archinstall/main.py index 0d4e9435aa..985e349363 100644 --- a/archinstall/main.py +++ b/archinstall/main.py @@ -11,13 +11,12 @@ from archinstall.lib.args import arch_config_handler from archinstall.lib.disk.utils import disk_layouts from archinstall.lib.general import check_version_upgrade, running_from_host +from archinstall.lib.hardware import SysInfo from archinstall.lib.network.wifi_handler import WifiHandler from archinstall.lib.networking import ping - -from .lib.hardware import SysInfo -from .lib.output import debug, error, info, warn -from .lib.pacman.pacman import Pacman -from .lib.translationhandler import tr +from archinstall.lib.output import debug, error, info, warn +from archinstall.lib.pacman.pacman import Pacman +from archinstall.lib.translationhandler import tr def _log_sys_info() -> None: diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index d8c2faac5e..d5a7ae368c 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -15,10 +15,7 @@ from archinstall.lib.interactions.general_conf import PostInstallationAction, select_post_installation from archinstall.lib.mirrors import MirrorListHandler from archinstall.lib.models import Bootloader -from archinstall.lib.models.device import ( - DiskLayoutType, - EncryptionType, -) +from archinstall.lib.models.device import DiskLayoutType, EncryptionType from archinstall.lib.models.users import User from archinstall.lib.network.network_handler import NetworkHandler from archinstall.lib.output import debug, error, info diff --git a/archinstall/tui/curses_menu.py b/archinstall/tui/curses_menu.py index 13bca01f8e..843cf72052 100644 --- a/archinstall/tui/curses_menu.py +++ b/archinstall/tui/curses_menu.py @@ -12,11 +12,10 @@ from typing import ClassVar, Literal, Self, override from archinstall.lib.translationhandler import tr - -from .help import Help -from .menu_item import MenuItem, MenuItemGroup, MenuItemsState -from .result import Result, ResultType -from .types import ( +from archinstall.tui.help import Help +from archinstall.tui.menu_item import MenuItem, MenuItemGroup, MenuItemsState +from archinstall.tui.result import Result, ResultType +from archinstall.tui.types import ( SCROLL_INTERVAL, STYLE, Alignment, diff --git a/archinstall/tui/menu_item.py b/archinstall/tui/menu_item.py index 1062aeb1cf..64c906f255 100644 --- a/archinstall/tui/menu_item.py +++ b/archinstall/tui/menu_item.py @@ -5,8 +5,7 @@ from typing import Any, ClassVar, Self, override from archinstall.lib.translationhandler import tr - -from ..lib.utils.encoding import unicode_ljust +from archinstall.lib.utils.encoding import unicode_ljust @dataclass @@ -240,7 +239,7 @@ def get_item_text(self, item: MenuItem) -> str: if display_text: text = f'{text}{spacing}{display_text}' elif self._checkmarks: - from .types import Chars + from archinstall.tui.types import Chars if item.has_value(): if item.get_value() is not False: diff --git a/archinstall/tui/result.py b/archinstall/tui/result.py index 8ccf09d8be..13f12794f4 100644 --- a/archinstall/tui/result.py +++ b/archinstall/tui/result.py @@ -1,7 +1,7 @@ from dataclasses import dataclass from enum import Enum, auto -from .menu_item import MenuItem +from archinstall.tui.menu_item import MenuItem class ResultType(Enum):