From c40c524f68eff1a13118488b41d0f27305551693 Mon Sep 17 00:00:00 2001 From: codefiles <11915375+codefiles@users.noreply.github.com> Date: Sat, 28 Feb 2026 18:48:47 -0500 Subject: [PATCH] Move get_version() to version module --- archinstall/lib/args.py | 12 +++--------- archinstall/lib/plugins.py | 5 ++--- archinstall/lib/version.py | 8 ++++++++ 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 archinstall/lib/version.py diff --git a/archinstall/lib/args.py b/archinstall/lib/args.py index 58e154b166..6d1e10a393 100644 --- a/archinstall/lib/args.py +++ b/archinstall/lib/args.py @@ -6,7 +6,6 @@ import urllib.parse from argparse import ArgumentParser, Namespace from dataclasses import dataclass, field -from importlib.metadata import version from pathlib import Path from typing import Any, Self from urllib.request import Request, urlopen @@ -28,6 +27,7 @@ from archinstall.lib.output import debug, error, logger, warn from archinstall.lib.plugins import load_plugin from archinstall.lib.translationhandler import Language, tr, translation_handler +from archinstall.lib.version import get_version @p_dataclass @@ -263,7 +263,7 @@ def __init__(self) -> None: try: self._config = ArchConfig.from_config(config, args) - self._config.version = self._get_version() + self._config.version = get_version() except ValueError as err: warn(str(err)) sys.exit(1) @@ -288,12 +288,6 @@ def get_script(self) -> str: def print_help(self) -> None: self._parser.print_help() - def _get_version(self) -> str: - try: - return version('archinstall') - except Exception: - return 'Archinstall version not found' - def _define_arguments(self) -> ArgumentParser: parser = ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument( @@ -301,7 +295,7 @@ def _define_arguments(self) -> ArgumentParser: '--version', action='version', default=False, - version='%(prog)s ' + self._get_version(), + version='%(prog)s ' + get_version(), ) parser.add_argument( '--config', diff --git a/archinstall/lib/plugins.py b/archinstall/lib/plugins.py index 31c23b4a81..919fcf2387 100644 --- a/archinstall/lib/plugins.py +++ b/archinstall/lib/plugins.py @@ -8,6 +8,7 @@ from pathlib import Path from archinstall.lib.output import error, info, warn +from archinstall.lib.version import get_version plugins = {} @@ -94,11 +95,9 @@ def load_plugin(path: Path) -> None: namespace = _import_via_path(localized) if namespace and namespace in sys.modules: - 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. - version = arch_config_handler.config.version + version = get_version() if version is not None: version_major_and_minor = version.rsplit('.', 1)[0] diff --git a/archinstall/lib/version.py b/archinstall/lib/version.py new file mode 100644 index 0000000000..6ec5f541da --- /dev/null +++ b/archinstall/lib/version.py @@ -0,0 +1,8 @@ +from importlib.metadata import version + + +def get_version() -> str: + try: + return version('archinstall') + except Exception: + return 'Archinstall version not found'