]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Drop listify()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 5 Sep 2024 11:34:46 +0000 (13:34 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 5 Sep 2024 12:56:37 +0000 (14:56 +0200)
Causes issues with mypyc and wrapping the callsites in list() isn't
really any worse when it comes to readability.

17 files changed:
mkosi/distributions/arch.py
mkosi/distributions/azure.py
mkosi/distributions/centos.py
mkosi/distributions/debian.py
mkosi/distributions/fedora.py
mkosi/distributions/kali.py
mkosi/distributions/mageia.py
mkosi/distributions/openmandriva.py
mkosi/distributions/opensuse.py
mkosi/distributions/rhel.py
mkosi/distributions/rhel_ubi.py
mkosi/distributions/ubuntu.py
mkosi/installer/apt.py
mkosi/installer/dnf.py
mkosi/installer/pacman.py
mkosi/installer/zypper.py
mkosi/util.py

index 95f771f29292b7ff46d750435d45eaa32764b9af..aaab71fc7651cfb4298998b2f3f360c1536b932a 100644 (file)
@@ -8,7 +8,7 @@ from mkosi.distributions import DistributionInstaller, PackageType
 from mkosi.installer import PackageManager
 from mkosi.installer.pacman import Pacman, PacmanRepository
 from mkosi.log import die
-from mkosi.util import listify, sort_packages
+from mkosi.util import sort_packages
 
 
 class Installer(DistributionInstaller):
@@ -34,7 +34,7 @@ class Installer(DistributionInstaller):
 
     @classmethod
     def setup(cls, context: Context) -> None:
-        Pacman.setup(context, cls.repositories(context))
+        Pacman.setup(context, list(cls.repositories(context)))
 
     @classmethod
     def install(cls, context: Context) -> None:
@@ -54,7 +54,6 @@ class Installer(DistributionInstaller):
         Pacman.invoke(context, "--remove", ["--nosave", "--recursive", *packages], apivfs=True)
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[PacmanRepository]:
         if context.config.local_mirror:
             yield PacmanRepository("core", context.config.local_mirror)
index 83e8d2bb0ca4b45d0fa7466750931f238aa03042..2cc9f2ea16aa249f38d670d1127f3edf8558b943 100644 (file)
@@ -11,7 +11,6 @@ from mkosi.distributions import (
 from mkosi.installer.dnf import Dnf
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey, setup_rpm
 from mkosi.log import die
-from mkosi.util import listify
 
 
 class Installer(fedora.Installer):
@@ -29,7 +28,7 @@ class Installer(fedora.Installer):
 
     @classmethod
     def setup(cls, context: Context) -> None:
-        Dnf.setup(context, cls.repositories(context), filelists=False)
+        Dnf.setup(context, list(cls.repositories(context)), filelists=False)
         setup_rpm(context, dbpath="/var/lib/rpm")
 
     @classmethod
@@ -37,7 +36,6 @@ class Installer(fedora.Installer):
         cls.install_packages(context, ["filesystem", "azurelinux-release"], apivfs=False)
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         gpgurls = (
             find_rpm_gpgkey(
index c8afadeff64c7510396a887e5da2135040c07f93..e6278e31c6fbe1aa26a76cf8d923ccb5e570699f 100644 (file)
@@ -14,7 +14,6 @@ from mkosi.installer import PackageManager
 from mkosi.installer.dnf import Dnf
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey, setup_rpm
 from mkosi.log import die
-from mkosi.util import listify
 from mkosi.versioncomp import GenericVersion
 
 CENTOS_SIG_REPO_PRIORITY = 50
@@ -66,7 +65,7 @@ class Installer(DistributionInstaller):
         if GenericVersion(context.config.release) <= 8:
             die(f"{cls.pretty_name()} Stream 8 or earlier variants are not supported")
 
-        Dnf.setup(context, cls.repositories(context))
+        Dnf.setup(context, list(cls.repositories(context)))
         (context.sandbox_tree / "etc/dnf/vars/stream").write_text(f"{context.config.release}-stream\n")
         setup_rpm(context, dbpath=cls.dbpath(context))
 
@@ -176,7 +175,6 @@ class Installer(DistributionInstaller):
                 )
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         if context.config.local_mirror:
             yield from cls.repository_variants(context, "AppStream")
index d386da6ae15eede46eaa5c0ce1d406339dcc8c83..a90455e2d1c709a179fd5ba498eda9ada9c373d2 100644 (file)
@@ -13,7 +13,6 @@ from mkosi.installer.apt import Apt, AptRepository
 from mkosi.log import die
 from mkosi.run import run
 from mkosi.sandbox import umask
-from mkosi.util import listify
 
 
 class Installer(DistributionInstaller):
@@ -37,9 +36,8 @@ class Installer(DistributionInstaller):
     def package_manager(cls, config: Config) -> type[PackageManager]:
         return Apt
 
-    @staticmethod
-    @listify
-    def repositories(context: Context, local: bool = True) -> Iterable[AptRepository]:
+    @classmethod
+    def repositories(cls, context: Context, local: bool = True) -> Iterable[AptRepository]:
         types = ("deb", "deb-src")
         components = ("main", *context.config.repositories)
 
@@ -97,7 +95,7 @@ class Installer(DistributionInstaller):
 
     @classmethod
     def setup(cls, context: Context) -> None:
-        Apt.setup(context, cls.repositories(context))
+        Apt.setup(context, list(cls.repositories(context)))
 
     @classmethod
     def install(cls, context: Context) -> None:
index 356e8b4bd0f5710c4ada992cba55a20267a2e28e..ddd2abd94cb38fc83ee3e9efbca3aa0c839ccda6 100644 (file)
@@ -17,7 +17,7 @@ from mkosi.installer import PackageManager
 from mkosi.installer.dnf import Dnf
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey, setup_rpm
 from mkosi.log import die
-from mkosi.util import listify, startswith, tuplify
+from mkosi.util import startswith, tuplify
 
 
 @tuplify
@@ -94,7 +94,7 @@ class Installer(DistributionInstaller):
 
     @classmethod
     def setup(cls, context: Context) -> None:
-        Dnf.setup(context, cls.repositories(context), filelists=False)
+        Dnf.setup(context, list(cls.repositories(context)), filelists=False)
         setup_rpm(context)
 
     @classmethod
@@ -110,7 +110,6 @@ class Installer(DistributionInstaller):
         Dnf.invoke(context, "remove", packages, apivfs=True)
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         gpgurls = find_fedora_rpm_gpgkeys(context)
 
index 90df33e5a0e9b6b42738be14f9d7b606e8818c9d..d0ccbb08904a906341f802863091f3ca4891fd1a 100644 (file)
@@ -8,7 +8,6 @@ from mkosi.context import Context
 from mkosi.distributions import Distribution, debian
 from mkosi.installer.apt import AptRepository
 from mkosi.log import die
-from mkosi.util import listify
 
 
 class Installer(debian.Installer):
@@ -24,9 +23,8 @@ class Installer(debian.Installer):
     def default_tools_tree_distribution(cls) -> Distribution:
         return Distribution.kali
 
-    @staticmethod
-    @listify
-    def repositories(context: Context, local: bool = True) -> Iterable[AptRepository]:
+    @classmethod
+    def repositories(cls, context: Context, local: bool = True) -> Iterable[AptRepository]:
         if context.config.local_mirror and local:
             yield AptRepository(
                 types=("deb",),
index 4b817fb5190c27ad4841a8067bf81b68d0270c3e..6e91853a86a825122391027ee08a1b907a6b32d3 100644 (file)
@@ -7,7 +7,6 @@ from mkosi.context import Context
 from mkosi.distributions import fedora, join_mirror
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
 from mkosi.log import die
-from mkosi.util import listify
 
 
 class Installer(fedora.Installer):
@@ -28,7 +27,6 @@ class Installer(fedora.Installer):
         cls.install_packages(context, ["filesystem"], apivfs=False)
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         gpgurls = (
             find_rpm_gpgkey(
index 5238864a3a3cd3bcb7dab6edf4b702658e370fa6..a153d68de98455b0c63609476ebb8d0e91fe2af2 100644 (file)
@@ -7,7 +7,6 @@ from mkosi.context import Context
 from mkosi.distributions import fedora, join_mirror
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
 from mkosi.log import die
-from mkosi.util import listify
 
 
 class Installer(fedora.Installer):
@@ -28,7 +27,6 @@ class Installer(fedora.Installer):
         cls.install_packages(context, ["filesystem"], apivfs=False)
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         mirror = context.config.mirror or "http://mirror.openmandriva.org"
 
index 98539d38aa5f8fcab77e95cfbf176eb60e5c968c..30a91be2cb21bde059ac825b4fc78c1cbe37bb30 100644 (file)
@@ -16,7 +16,7 @@ from mkosi.installer.zypper import Zypper
 from mkosi.log import die
 from mkosi.mounts import finalize_crypto_mounts
 from mkosi.run import run
-from mkosi.util import listify, sort_packages
+from mkosi.util import sort_packages
 
 
 class Installer(DistributionInstaller):
@@ -51,9 +51,9 @@ class Installer(DistributionInstaller):
     def setup(cls, context: Context) -> None:
         zypper = context.config.find_binary("zypper")
         if zypper:
-            Zypper.setup(context, cls.repositories(context))
+            Zypper.setup(context, list(cls.repositories(context)))
         else:
-            Dnf.setup(context, cls.repositories(context))
+            Dnf.setup(context, list(cls.repositories(context)))
 
         setup_rpm(context)
 
@@ -84,7 +84,6 @@ class Installer(DistributionInstaller):
             Dnf.invoke(context, "remove", packages, apivfs=True)
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         if context.config.local_mirror:
             yield RpmRepository(id="local-mirror", url=f"baseurl={context.config.local_mirror}", gpgurls=())
index 653a42c15349a7362de76cb988a4f0b44911cfa4..81e45892a0f96ca57a6bee2093e766c2d8bc1895 100644 (file)
@@ -8,7 +8,6 @@ from mkosi.context import Context
 from mkosi.distributions import centos, join_mirror
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
 from mkosi.log import die
-from mkosi.util import listify
 
 
 class Installer(centos.Installer):
@@ -109,7 +108,6 @@ class Installer(centos.Installer):
             )
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         yield from cls.repository_variants(context, "baseos")
         yield from cls.repository_variants(context, "appstream")
index c921ecd1fa5eab81129af7b974214063a081c6f1..34cbc72a6cd58dd3ec2cee9a71d2610a4167cd84 100644 (file)
@@ -5,7 +5,6 @@ from collections.abc import Iterable
 from mkosi.context import Context
 from mkosi.distributions import centos, join_mirror
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
-from mkosi.util import listify
 
 
 class Installer(centos.Installer):
@@ -52,7 +51,6 @@ class Installer(centos.Installer):
             )
 
     @classmethod
-    @listify
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         yield from cls.repository_variants(context, "baseos")
         yield from cls.repository_variants(context, "appstream")
index a7c00d50dee81aadecd53a6f0099d8d2fda8236b..803a91f690bac60afebbaafa054d2eba0366e0ae 100644 (file)
@@ -6,7 +6,6 @@ from pathlib import Path
 from mkosi.context import Context
 from mkosi.distributions import Distribution, debian
 from mkosi.installer.apt import AptRepository
-from mkosi.util import listify
 
 
 class Installer(debian.Installer):
@@ -22,9 +21,8 @@ class Installer(debian.Installer):
     def default_tools_tree_distribution(cls) -> Distribution:
         return Distribution.debian
 
-    @staticmethod
-    @listify
-    def repositories(context: Context, local: bool = True) -> Iterable[AptRepository]:
+    @classmethod
+    def repositories(cls, context: Context, local: bool = True) -> Iterable[AptRepository]:
         types = ("deb", "deb-src")
 
         # From kinetic onwards, the usr-is-merged package is available in universe and is required by
index 01117d9684ef7b1f00b5daad8e248cee1e67f6f8..c576a67f456e64bc58a84951c3ffa236d1f69afb 100644 (file)
@@ -2,7 +2,7 @@
 
 import dataclasses
 import textwrap
-from collections.abc import Iterable, Sequence
+from collections.abc import Sequence
 from pathlib import Path
 from typing import Optional
 
@@ -96,7 +96,7 @@ class Apt(PackageManager):
         }
 
     @classmethod
-    def setup(cls, context: Context, repos: Iterable[AptRepository]) -> None:
+    def setup(cls, context: Context, repositories: Sequence[AptRepository]) -> None:
         (context.sandbox_tree / "etc/apt").mkdir(exist_ok=True, parents=True)
         (context.sandbox_tree / "etc/apt/apt.conf.d").mkdir(exist_ok=True, parents=True)
         (context.sandbox_tree / "etc/apt/preferences.d").mkdir(exist_ok=True, parents=True)
@@ -125,7 +125,7 @@ class Apt(PackageManager):
 
         sources = context.sandbox_tree / "etc/apt/sources.list.d/mkosi.sources"
         if not sources.exists():
-            for repo in repos:
+            for repo in repositories:
                 if repo.signedby and not repo.signedby.exists():
                     die(
                         f"Keyring for repo {repo.url} not found at {repo.signedby}",
@@ -134,7 +134,7 @@ class Apt(PackageManager):
                     )
 
             with sources.open("w") as f:
-                for repo in repos:
+                for repo in repositories:
                     f.write(str(repo))
 
     @classmethod
index 0160914b370e31bb6f7635b263368c43dd748e2e..39bbbe800d5963540b6fb47814f9e88bd058d371 100644 (file)
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 import textwrap
-from collections.abc import Iterable, Sequence
+from collections.abc import Sequence
 from pathlib import Path
 
 from mkosi.config import Cacheonly, Config
@@ -43,7 +43,7 @@ class Dnf(PackageManager):
         }
 
     @classmethod
-    def setup(cls, context: Context, repositories: Iterable[RpmRepository], filelists: bool = True) -> None:
+    def setup(cls, context: Context, repositories: Sequence[RpmRepository], filelists: bool = True) -> None:
         (context.sandbox_tree / "etc/dnf/vars").mkdir(parents=True, exist_ok=True)
         (context.sandbox_tree / "etc/yum.repos.d").mkdir(parents=True, exist_ok=True)
 
index 38175cd14bf91552d8cd7a16775fdf185041f02a..f8ba927c19b17e1e5108113ad97d7ac3b244535c 100644 (file)
@@ -3,7 +3,7 @@
 import dataclasses
 import shutil
 import textwrap
-from collections.abc import Iterable, Sequence
+from collections.abc import Sequence
 from pathlib import Path
 
 from mkosi.config import Config
@@ -66,7 +66,7 @@ class Pacman(PackageManager):
         return mounts
 
     @classmethod
-    def setup(cls, context: Context, repositories: Iterable[PacmanRepository]) -> None:
+    def setup(cls, context: Context, repositories: Sequence[PacmanRepository]) -> None:
         if context.config.repository_key_check:
             sig_level = "Required DatabaseOptional"
         else:
index 5ef0bf916f1edf8ee6bbcdace49271f7d367efb7..98de90fb06d06bf2716af759981a4e52728a506d 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 import hashlib
 import textwrap
-from collections.abc import Iterable, Sequence
+from collections.abc import Sequence
 from pathlib import Path
 
 from mkosi.config import Config, yes_no
@@ -44,7 +44,7 @@ class Zypper(PackageManager):
         }
 
     @classmethod
-    def setup(cls, context: Context, repos: Iterable[RpmRepository]) -> None:
+    def setup(cls, context: Context, repositories: Sequence[RpmRepository]) -> None:
         config = context.sandbox_tree / "etc/zypp/zypp.conf"
         config.parent.mkdir(exist_ok=True, parents=True)
 
@@ -66,7 +66,7 @@ class Zypper(PackageManager):
         if not repofile.exists():
             repofile.parent.mkdir(exist_ok=True, parents=True)
             with repofile.open("w") as f:
-                for repo in repos:
+                for repo in repositories:
                     # zypper uses the repo ID as its cache key which is unsafe so add a hash of the url used to it to
                     # make sure a unique cache is used for each repository. We use roughly the same algorithm here that
                     # dnf uses as well.
index 9d16f9d2201103608ededf1c0f479ca2ded379f9..b66b7b8422535eaba01dfd0f8fd53313cac193a1 100644 (file)
@@ -37,13 +37,6 @@ def dictify(f: Callable[..., Iterator[tuple[T, V]]]) -> Callable[..., dict[T, V]
     return functools.update_wrapper(wrapper, f)
 
 
-def listify(f: Callable[..., Iterable[T]]) -> Callable[..., list[T]]:
-    def wrapper(*args: Any, **kwargs: Any) -> list[T]:
-        return list(f(*args, **kwargs))
-
-    return functools.update_wrapper(wrapper, f)
-
-
 def tuplify(f: Callable[..., Iterable[T]]) -> Callable[..., tuple[T, ...]]:
     def wrapper(*args: Any, **kwargs: Any) -> tuple[T, ...]:
         return tuple(f(*args, **kwargs))