From: Zbigniew Jędrzejewski-Szmek Date: Sat, 15 Jun 2024 20:05:55 +0000 (+0200) Subject: installer/arch: make Repository a normal dataclass X-Git-Tag: v24~82^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c64bb7cabb01eed2555ed430a39cf356e91b470f;p=thirdparty%2Fmkosi.git installer/arch: make Repository a normal dataclass --- diff --git a/mkosi/distributions/arch.py b/mkosi/distributions/arch.py index de2efb10c..6419f6856 100644 --- a/mkosi/distributions/arch.py +++ b/mkosi/distributions/arch.py @@ -6,7 +6,7 @@ from mkosi.config import Architecture, Config from mkosi.context import Context from mkosi.distributions import Distribution, DistributionInstaller, PackageType from mkosi.installer import PackageManager -from mkosi.installer.pacman import Pacman +from mkosi.installer.pacman import Pacman, PacmanRepository from mkosi.log import die from mkosi.util import listify, sort_packages @@ -63,9 +63,9 @@ class Installer(DistributionInstaller): @classmethod @listify - def repositories(cls, context: Context) -> Iterable[Pacman.Repository]: + def repositories(cls, context: Context) -> Iterable[PacmanRepository]: if context.config.local_mirror: - yield Pacman.Repository("core", context.config.local_mirror) + yield PacmanRepository("core", context.config.local_mirror) else: if context.config.architecture.is_arm_variant(): url = f"{context.config.mirror or 'http://mirror.archlinuxarm.org'}/$arch/$repo" @@ -85,7 +85,7 @@ class Installer(DistributionInstaller): ] + ["core", "extra"] for repo in repos: - yield Pacman.Repository(repo, url) + yield PacmanRepository(repo, url) @classmethod def architecture(cls, arch: Architecture) -> str: diff --git a/mkosi/installer/pacman.py b/mkosi/installer/pacman.py index 8defdc088..9643b4dbb 100644 --- a/mkosi/installer/pacman.py +++ b/mkosi/installer/pacman.py @@ -1,10 +1,11 @@ # SPDX-License-Identifier: LGPL-2.1+ + +import dataclasses import os import shutil import textwrap from collections.abc import Iterable, Sequence from pathlib import Path -from typing import NamedTuple from mkosi.config import Cacheonly, Config from mkosi.context import Context @@ -17,11 +18,13 @@ from mkosi.util import umask from mkosi.versioncomp import GenericVersion -class Pacman(PackageManager): - class Repository(NamedTuple): - id: str - url: str +@dataclasses.dataclass(frozen=True) +class PacmanRepository: + id: str + url: str + +class Pacman(PackageManager): @classmethod def executable(cls, config: Config) -> str: return "pacman" @@ -62,7 +65,7 @@ class Pacman(PackageManager): return mounts @classmethod - def setup(cls, context: Context, repositories: Iterable[Repository]) -> None: + def setup(cls, context: Context, repositories: Iterable[PacmanRepository]) -> None: if context.config.repository_key_check: sig_level = "Required DatabaseOptional" else: