From 3dd86797345c370dd8c37984b0834043c6879ae1 Mon Sep 17 00:00:00 2001 From: correctmost <134317971+correctmost@users.noreply.github.com> Date: Wed, 9 Apr 2025 08:47:53 +0000 Subject: [PATCH] Replace an Any instance with a TypedDict (#3375) --- archinstall/lib/models/mirrors.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/archinstall/lib/models/mirrors.py b/archinstall/lib/models/mirrors.py index f3695f76..72ff009d 100644 --- a/archinstall/lib/models/mirrors.py +++ b/archinstall/lib/models/mirrors.py @@ -5,7 +5,7 @@ import urllib.parse import urllib.request from dataclasses import dataclass, field from enum import Enum -from typing import TYPE_CHECKING, Any, override +from typing import TYPE_CHECKING, Any, TypedDict, override from pydantic import BaseModel, field_validator, model_validator @@ -163,6 +163,13 @@ class SignOption(Enum): TrustAll = 'TrustAll' +class _CustomRepositorySerialization(TypedDict): + name: str + url: str + sign_check: str + sign_option: str + + @dataclass class CustomRepository: name: str @@ -178,7 +185,7 @@ class CustomRepository: 'Sign options': self.sign_option.value } - def json(self) -> dict[str, str]: + def json(self) -> _CustomRepositorySerialization: return { 'name': self.name, 'url': self.url, @@ -223,6 +230,13 @@ class CustomServer: return configs +class _MirrorConfigurationSerialization(TypedDict): + mirror_regions: dict[str, list[str]] + custom_servers: list[CustomServer] + optional_repositories: list[str] + custom_repositories: list[_CustomRepositorySerialization] + + @dataclass class MirrorConfiguration: mirror_regions: list[MirrorRegion] = field(default_factory=list) @@ -238,7 +252,7 @@ class MirrorConfiguration: def custom_server_urls(self) -> str: return '\n'.join([s.url for s in self.custom_servers]) - def json(self) -> dict[str, Any]: + def json(self) -> _MirrorConfigurationSerialization: regions = {} for m in self.mirror_regions: regions.update(m.json())