Dataclasses are the more modern approach, with better string representation and
less hacks. A NamedTuple is also a tuple, which is rather surprising when we
don't use that.
# SPDX-License-Identifier: LGPL-2.1+
+import dataclasses
import subprocess
import textwrap
from pathlib import Path
-from typing import NamedTuple, Optional
+from typing import Optional
from mkosi.context import Context
from mkosi.run import run
from mkosi.types import PathString
-class RpmRepository(NamedTuple):
+@dataclasses.dataclass(frozen=True)
+class RpmRepository:
id: str
url: str
gpgurls: tuple[str, ...]