From ecad6762e50938d42f81e73be1e22e3384a44613 Mon Sep 17 00:00:00 2001 From: correctmost <134317971+correctmost@users.noreply.github.com> Date: Sat, 16 Nov 2024 02:27:26 -0500 Subject: [PATCH] Fix some mypy warnings in the lib/ directory (#2822) --- archinstall/lib/installer.py | 5 +++-- archinstall/lib/menu/abstract_menu.py | 4 ++-- archinstall/lib/models/gen.py | 2 +- archinstall/lib/networking.py | 7 ++++--- archinstall/lib/packages/packages.py | 4 ++-- archinstall/lib/plugins.py | 2 +- archinstall/lib/profile/profiles_handler.py | 4 ++-- archinstall/lib/translationhandler.py | 2 +- 8 files changed, 16 insertions(+), 14 deletions(-) diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 47fb3b71..89382f70 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -7,6 +7,7 @@ import subprocess import time from collections.abc import Callable from pathlib import Path +from types import TracebackType from typing import Any, Optional, TYPE_CHECKING, Union from . import disk @@ -99,7 +100,7 @@ class Installer: def __enter__(self) -> 'Installer': return self - def __exit__(self, exc_type, exc_val, exc_tb) -> bool: + def __exit__(self, exc_type: type[BaseException] | None, exc_val, exc_tb: TracebackType | None) -> bool: if exc_type is not None: error(exc_val) @@ -692,7 +693,7 @@ class Installer: # If we haven't installed the base yet (function called pre-maturely) if self.helper_flags.get('base', False) is False: - def post_install_enable_networkd_resolved(*args: str, **kwargs: str): + def post_install_enable_networkd_resolved(*args: str, **kwargs: str) -> None: self.enable_service(['systemd-networkd', 'systemd-resolved']) self.post_base_install.append(post_install_enable_networkd_resolved) diff --git a/archinstall/lib/menu/abstract_menu.py b/archinstall/lib/menu/abstract_menu.py index afc0724e..2c1a90d2 100644 --- a/archinstall/lib/menu/abstract_menu.py +++ b/archinstall/lib/menu/abstract_menu.py @@ -23,8 +23,8 @@ class Selector: display_func: Optional[Callable] = None, default: Optional[Any] = None, enabled: bool = False, - dependencies: list = [], - dependencies_not: list = [], + dependencies: list[str] = [], + dependencies_not: list[str] = [], exec_func: Optional[Callable] = None, preview_func: Optional[Callable] = None, mandatory: bool = False, diff --git a/archinstall/lib/models/gen.py b/archinstall/lib/models/gen.py index 226ed09b..9ba7536a 100644 --- a/archinstall/lib/models/gen.py +++ b/archinstall/lib/models/gen.py @@ -156,5 +156,5 @@ class LocalPackage: def __eq__(self, other) -> bool: return self.pkg_version == other.pkg_version - def __lt__(self, other) -> bool: + def __lt__(self, other: 'LocalPackage') -> bool: return self.pkg_version < other.pkg_version diff --git a/archinstall/lib/networking.py b/archinstall/lib/networking.py index 2ae780d8..a5cb9eff 100644 --- a/archinstall/lib/networking.py +++ b/archinstall/lib/networking.py @@ -6,6 +6,7 @@ import time import select import signal import random +from types import FrameType from typing import Union, Any, Optional from urllib.error import URLError from urllib.parse import urlencode @@ -34,7 +35,7 @@ class DownloadTimer(): self.previous_handler = None self.previous_timer: Optional[int] = None - def raise_timeout(self, signl, frame) -> None: + def raise_timeout(self, signl: int, frame: FrameType | None) -> None: ''' Raise the DownloadTimeout exception. ''' @@ -119,7 +120,7 @@ def enrich_iface_types(interfaces: Union[dict[str, Any], list[str]]) -> dict[str return result -def fetch_data_from_url(url: str, params: Optional[dict] = None) -> str: +def fetch_data_from_url(url: str, params: Optional[dict[str, str]] = None) -> str: ssl_context = ssl.create_default_context() ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_NONE @@ -140,7 +141,7 @@ def fetch_data_from_url(url: str, params: Optional[dict] = None) -> str: raise ValueError(f'Unexpected error when parsing response: {e}') -def calc_checksum(icmp_packet) -> int: +def calc_checksum(icmp_packet: bytes) -> int: # Calculate the ICMP checksum checksum = 0 for i in range(0, len(icmp_packet), 2): diff --git a/archinstall/lib/packages/packages.py b/archinstall/lib/packages/packages.py index 4abdac9e..580d40f0 100644 --- a/archinstall/lib/packages/packages.py +++ b/archinstall/lib/packages/packages.py @@ -15,7 +15,7 @@ BASE_URL_PKG_SEARCH = 'https://archlinux.org/packages/search/json/' BASE_GROUP_URL = 'https://archlinux.org/groups/search/json/' -def _make_request(url: str, params: dict) -> Any: +def _make_request(url: str, params: dict[str, str]) -> Any: ssl_context = ssl.create_default_context() ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_NONE @@ -91,7 +91,7 @@ def find_packages(*names: str) -> dict[str, Any]: return result -def validate_package_list(packages: list) -> tuple[list, list]: +def validate_package_list(packages: list[str]) -> tuple[list[str], list[str]]: """ Validates a list of given packages. return: Tuple of lists containing valid packavges in the first and invalid diff --git a/archinstall/lib/plugins.py b/archinstall/lib/plugins.py index 08455d28..f44d7cd0 100644 --- a/archinstall/lib/plugins.py +++ b/archinstall/lib/plugins.py @@ -82,7 +82,7 @@ def _find_nth(haystack: list[str], needle: str, n: int) -> Optional[int]: return None -def load_plugin(path: Path): +def load_plugin(path: Path) -> None: namespace: Optional[str] = None parsed_url = urllib.parse.urlparse(str(path)) info(f"Loading plugin from url {parsed_url}") diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py index d695cb29..ac2f4b72 100644 --- a/archinstall/lib/profile/profiles_handler.py +++ b/archinstall/lib/profile/profiles_handler.py @@ -284,7 +284,7 @@ class ProfileHandler: return profiles - def _verify_unique_profile_names(self, profiles: list[Profile]): + def _verify_unique_profile_names(self, profiles: list[Profile]) -> None: """ All profile names have to be unique, this function will verify that the provided list contains only default_profiles with unique names @@ -348,7 +348,7 @@ class ProfileHandler: self._verify_unique_profile_names(profiles) return profiles - def reset_top_level_profiles(self, exclude: list[Profile] = []): + def reset_top_level_profiles(self, exclude: list[Profile] = []) -> None: """ Reset all top level profile configurations, this is usually necessary when a new top level profile is selected diff --git a/archinstall/lib/translationhandler.py b/archinstall/lib/translationhandler.py index 1ffa344e..85a1f3e0 100644 --- a/archinstall/lib/translationhandler.py +++ b/archinstall/lib/translationhandler.py @@ -85,7 +85,7 @@ class TranslationHandler: return languages - def _set_font(self, font: str): + def _set_font(self, font: str) -> None: """ Set the provided font as the new terminal font """