from mkosi.log import log_setup
from mkosi.run import run, uncaught_exception_handler
from mkosi.sandbox import umask
-from mkosi.types import PathString
+from mkosi.util import PathString
def we_are_wanted(context: KernelInstallContext) -> bool:
from mkosi.initrd import KernelInstallContext
from mkosi.log import log_setup
from mkosi.run import run, uncaught_exception_handler
-from mkosi.types import PathString
+from mkosi.util import PathString
@uncaught_exception_handler()
)
from mkosi.sysupdate import run_sysupdate
from mkosi.tree import copy_tree, make_tree, move_tree, rmtree
-from mkosi.types import PathString
from mkosi.user import INVOKING_USER
from mkosi.util import (
+ PathString,
current_home_dir,
flatten,
flock,
from mkosi.initrd import include_system_config, initrd_common_args, initrd_finalize, process_crypttab
from mkosi.log import log_setup
from mkosi.run import run, uncaught_exception_handler
-from mkosi.types import PathString
-from mkosi.util import resource_path
+from mkosi.util import PathString, resource_path
@uncaught_exception_handler()
from mkosi.log import log_step
from mkosi.run import SandboxProtocol, finalize_passwd_symlinks, nosandbox, run, workdir
from mkosi.sandbox import umask
-from mkosi.types import PathString
-from mkosi.util import chdir
+from mkosi.util import PathString, chdir
def tar_exclude_apivfs_tmp() -> list[str]:
from mkosi.log import complete_step, die, log_step
from mkosi.partition import Partition
from mkosi.qemu import KernelType
-from mkosi.run import run, workdir
+from mkosi.run import CompletedProcess, run, workdir
from mkosi.sandbox import umask
-from mkosi.types import _FILE, CompletedProcess, PathString
-from mkosi.util import flatten
+from mkosi.util import _FILE, PathString, flatten
from mkosi.versioncomp import GenericVersion
from mkosi.pager import page
from mkosi.run import SandboxProtocol, find_binary, nosandbox, run, sandbox_cmd, workdir
from mkosi.sandbox import __version__
-from mkosi.types import PathString, SupportsRead
from mkosi.user import INVOKING_USER
from mkosi.util import (
+ PathString,
StrEnum,
+ SupportsRead,
chdir,
flatten,
is_power_of_2,
from typing import Optional
from mkosi.config import Args, Config
-from mkosi.types import PathString
+from mkosi.util import PathString
class Context:
from mkosi.run import find_binary, run, uncaught_exception_handler
from mkosi.sandbox import __version__, umask
from mkosi.tree import copy_tree
-from mkosi.types import PathString
-from mkosi.util import mandatory_variable, resource_path
+from mkosi.util import PathString, mandatory_variable, resource_path
@dataclasses.dataclass(frozen=True)
from mkosi.mounts import finalize_certificate_mounts
from mkosi.run import apivfs_options, finalize_interpreter, finalize_passwd_symlinks, find_binary
from mkosi.tree import rmtree
-from mkosi.types import PathString
-from mkosi.util import flatten, startswith
+from mkosi.util import PathString, flatten, startswith
class PackageManager:
from mkosi.context import Context
from mkosi.installer import PackageManager
from mkosi.log import die
-from mkosi.run import run, workdir
+from mkosi.run import CompletedProcess, run, workdir
from mkosi.sandbox import umask
-from mkosi.types import _FILE, CompletedProcess, PathString
+from mkosi.util import _FILE, PathString
@dataclasses.dataclass(frozen=True)
from mkosi.installer import PackageManager
from mkosi.installer.rpm import RpmRepository, rpm_cmd
from mkosi.log import ARG_DEBUG
-from mkosi.run import run, workdir
-from mkosi.types import _FILE, CompletedProcess, PathString
+from mkosi.run import CompletedProcess, run, workdir
+from mkosi.util import _FILE, PathString
class Dnf(PackageManager):
from mkosi.distributions import detect_distribution
from mkosi.installer import PackageManager
from mkosi.log import complete_step
-from mkosi.run import run, workdir
+from mkosi.run import CompletedProcess, run, workdir
from mkosi.sandbox import umask
from mkosi.tree import copy_tree
-from mkosi.types import _FILE, CompletedProcess, PathString
+from mkosi.util import _FILE, PathString
from mkosi.versioncomp import GenericVersion
from mkosi.distributions import Distribution
from mkosi.log import die
from mkosi.run import run
-from mkosi.types import PathString
+from mkosi.util import PathString
@dataclasses.dataclass(frozen=True)
from mkosi.context import Context
from mkosi.installer import PackageManager
from mkosi.installer.rpm import RpmRepository, rpm_cmd
-from mkosi.run import run, workdir
-from mkosi.types import _FILE, CompletedProcess, PathString
+from mkosi.run import CompletedProcess, run, workdir
+from mkosi.util import _FILE, PathString
class Zypper(PackageManager):
from mkosi.config import Config
from mkosi.sandbox import OverlayOperation
-from mkosi.types import PathString
-from mkosi.util import flatten
+from mkosi.util import PathString, flatten
def stat_is_whiteout(st: os.stat_result) -> bool:
from mkosi.partition import finalize_root, find_partitions
from mkosi.run import SD_LISTEN_FDS_START, AsyncioThread, find_binary, fork_and_wait, run, spawn, workdir
from mkosi.tree import copy_tree, rmtree
-from mkosi.types import PathString
from mkosi.user import INVOKING_USER, become_root_in_subuid_range, become_root_in_subuid_range_cmd
-from mkosi.util import StrEnum, current_home_dir, flock, flock_or_die, groupby, round_up, try_or
+from mkosi.util import PathString, StrEnum, current_home_dir, flock, flock_or_die, groupby, round_up, try_or
from mkosi.versioncomp import GenericVersion
QEMU_KVM_DEVICE_VERSION = GenericVersion("9.0")
from contextlib import AbstractContextManager
from pathlib import Path
from types import TracebackType
-from typing import Any, Callable, NoReturn, Optional, Protocol
+from typing import TYPE_CHECKING, Any, Callable, NoReturn, Optional, Protocol
import mkosi.sandbox
from mkosi.log import ARG_DEBUG, ARG_DEBUG_SANDBOX, ARG_DEBUG_SHELL, die
from mkosi.sandbox import acquire_privileges, joinpath, umask
-from mkosi.types import _FILE, CompletedProcess, PathString, Popen
-from mkosi.util import current_home_dir, flatten, one_zero, unique
+from mkosi.util import _FILE, PathString, current_home_dir, flatten, one_zero, unique
SD_LISTEN_FDS_START = 3
+# These types are only generic during type checking and not at runtime, leading
+# to a TypeError during compilation.
+# Let's be as strict as we can with the description for the usage we have.
+if TYPE_CHECKING:
+ CompletedProcess = subprocess.CompletedProcess[str]
+ Popen = subprocess.Popen[str]
+else:
+ CompletedProcess = subprocess.CompletedProcess
+ Popen = subprocess.Popen
+
+
def make_foreground_process(*, new_process_group: bool = True) -> None:
"""
If we're connected to a terminal, put the process in a new process group and make that the foreground
from mkosi.config import Args, ArtifactOutput, Config
from mkosi.log import die
from mkosi.run import run
-from mkosi.types import PathString
+from mkosi.util import PathString
def run_sysupdate(args: Args, config: Config) -> None:
from mkosi.log import ARG_DEBUG, die
from mkosi.run import SandboxProtocol, nosandbox, run, workdir
from mkosi.sandbox import BTRFS_SUPER_MAGIC, statfs
-from mkosi.types import PathString
-from mkosi.util import flatten
+from mkosi.util import PathString, flatten
from mkosi.versioncomp import GenericVersion
+++ /dev/null
-# SPDX-License-Identifier: LGPL-2.1-or-later
-
-import subprocess
-from pathlib import Path
-from typing import IO, TYPE_CHECKING, Any, Protocol, TypeVar, Union
-
-# These types are only generic during type checking and not at runtime, leading
-# to a TypeError during compilation.
-# Let's be as strict as we can with the description for the usage we have.
-if TYPE_CHECKING:
- CompletedProcess = subprocess.CompletedProcess[str]
- Popen = subprocess.Popen[str]
-else:
- CompletedProcess = subprocess.CompletedProcess
- Popen = subprocess.Popen
-
-# Borrowed from https://github.com/python/typeshed/blob/3d14016085aed8bcf0cf67e9e5a70790ce1ad8ea/stdlib/3/subprocess.pyi#L24
-_FILE = Union[None, int, IO[Any]]
-PathString = Union[Path, str]
-
-# Borrowed from
-# https://github.com/python/typeshed/blob/ec52bf1adde1d3183d0595d2ba982589df48dff1/stdlib/_typeshed/__init__.pyi#L19
-# and
-# https://github.com/python/typeshed/blob/ec52bf1adde1d3183d0595d2ba982589df48dff1/stdlib/_typeshed/__init__.pyi#L224
-_T_co = TypeVar("_T_co", covariant=True)
-
-
-class SupportsRead(Protocol[_T_co]):
- def read(self, __length: int = ...) -> _T_co: ...
from collections.abc import Hashable, Iterable, Iterator, Mapping, Sequence
from pathlib import Path
from types import ModuleType
-from typing import Any, Callable, Optional, TypeVar
+from typing import IO, Any, Callable, Optional, Protocol, TypeVar, Union
from mkosi.backport import as_file
from mkosi.log import die
-from mkosi.types import PathString
T = TypeVar("T")
V = TypeVar("V")
S = TypeVar("S", bound=Hashable)
+# Borrowed from https://github.com/python/typeshed/blob/3d14016085aed8bcf0cf67e9e5a70790ce1ad8ea/stdlib/3/subprocess.pyi#L24
+_FILE = Union[None, int, IO[Any]]
+PathString = Union[Path, str]
+
+# Borrowed from
+# https://github.com/python/typeshed/blob/ec52bf1adde1d3183d0595d2ba982589df48dff1/stdlib/_typeshed/__init__.pyi#L19
+# and
+# https://github.com/python/typeshed/blob/ec52bf1adde1d3183d0595d2ba982589df48dff1/stdlib/_typeshed/__init__.pyi#L224
+_T_co = TypeVar("_T_co", covariant=True)
+
+
+class SupportsRead(Protocol[_T_co]):
+ def read(self, __length: int = ...) -> _T_co: ...
+
def dictify(f: Callable[..., Iterator[tuple[T, V]]]) -> Callable[..., dict[T, V]]:
def wrapper(*args: Any, **kwargs: Any) -> dict[T, V]:
finalize_register,
)
from mkosi.run import run
-from mkosi.types import PathString
-from mkosi.util import current_home_dir
+from mkosi.util import PathString, current_home_dir
def run_vmspawn(args: Args, config: Config) -> None:
import pytest
from mkosi.distributions import Distribution
-from mkosi.run import fork_and_wait, run
+from mkosi.run import CompletedProcess, fork_and_wait, run
from mkosi.sandbox import acquire_privileges
from mkosi.tree import rmtree
-from mkosi.types import _FILE, CompletedProcess, PathString
+from mkosi.util import _FILE, PathString
@dataclasses.dataclass(frozen=True)
from mkosi.run import run
from mkosi.sandbox import umask
from mkosi.tree import copy_tree
-from mkosi.types import PathString
+from mkosi.util import PathString
from . import Image, ImageConfig