]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
installer/arch: make Repository a normal dataclass
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 15 Jun 2024 20:05:55 +0000 (22:05 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 27 Jun 2024 12:58:40 +0000 (14:58 +0200)
mkosi/distributions/arch.py
mkosi/installer/pacman.py

index de2efb10c2f9a63b3884d8ffa3ae1d793e838f1f..6419f6856db65c35f2d542803f6b027f4d3013d1 100644 (file)
@@ -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:
index 8defdc088c076cad196a850cab8bc280109a04c4..9643b4dbb13354aa11feccd08eaddb06b706125a 100644 (file)
@@ -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: