From e52664cf9b3c988a111d72a076a3eed4532b5139 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Tue, 12 May 2026 15:58:09 +0900 Subject: [PATCH] chore: clear typehinting errors --- dzgui/api/pefile.py | 28 ++++++++++++++-------------- dzgui/api/servers.py | 2 +- dzgui/api/steam.py | 4 ++-- dzgui/config/convert.py | 3 ++- dzgui/managers/config.py | 4 ++-- dzgui/managers/connection.py | 8 ++++---- dzgui/views/components/crumbs.py | 5 ++++- dzgui/views/dialogs/note.py | 3 +-- dzgui/views/mixins/cursor_mixin.py | 3 ++- dzgui/views/pages/preconnect.py | 2 ++ dzgui/views/trees/tree_menu.py | 2 +- 11 files changed, 35 insertions(+), 29 deletions(-) diff --git a/dzgui/api/pefile.py b/dzgui/api/pefile.py index 84edc7d..9e04b2d 100644 --- a/dzgui/api/pefile.py +++ b/dzgui/api/pefile.py @@ -4,7 +4,7 @@ import struct from dataclasses import dataclass from enum import Enum from pathlib import Path -from typing import BinaryIO, Union +from typing import BinaryIO, Self, Union from packaging.version import Version @@ -69,7 +69,7 @@ class i64: class PackedData: @classmethod - def unpack(cls, data: BinaryIO): + def unpack(cls, data: BinaryIO) -> Self: r = [] for key, value in cls.__annotations__.items(): if value is str: @@ -449,18 +449,18 @@ def get_app_path(folders_path: Path, appid: int) -> Path: # TODO: tests -def compare_versions(local: DayZVersion, remote: DayZVersion) -> VersionMatch: - local_str = Version(dayz_version_to_str(local)) - remote_str = Version(dayz_version_to_str(remote)) - - if local_str == remote_str: - return VersionMatch.SAME_VERSION - - if local_str < remote_str: - return VersionMatch.LOCAL_OLDER - - if local_str > remote_str: - return VersionMatch.LOCAL_NEWER +#def compare_versions(local: DayZVersion, remote: DayZVersion) -> VersionMatch: +# local_str = Version(dayz_version_to_str(local)) +# remote_str = Version(dayz_version_to_str(remote)) +# +# if local_str == remote_str: +# return VersionMatch.SAME_VERSION +# +# if local_str < remote_str: +# return VersionMatch.LOCAL_OLDER +# +# if local_str > remote_str: +# return VersionMatch.LOCAL_NEWER def get_pretty_version(steam_path: Path, appid: int) -> str | None: diff --git a/dzgui/api/servers.py b/dzgui/api/servers.py index c335ab4..acb73e6 100644 --- a/dzgui/api/servers.py +++ b/dzgui/api/servers.py @@ -464,7 +464,7 @@ def query_by_ip(addr: str) -> A2SInfo: record = short_ip_to_record(addr) return query_by_record(record, update_gameport=True) -def query_by_id(server_id: int, key: str) -> dict[Any] | None: +def query_by_id(server_id: int, key: str) -> A2SInfo: """ Used with numeric Battlemetrics IDs """ diff --git a/dzgui/api/steam.py b/dzgui/api/steam.py index bf705c4..7f86f46 100644 --- a/dzgui/api/steam.py +++ b/dzgui/api/steam.py @@ -89,7 +89,7 @@ def get_remote_signatures(mods: list[str]) -> list[tuple[str, str, int, int]]: # TODO:: set config to name=user, use official server and no mods, # ensure that formatted string is identical to fixture with same hash -def connect(addr: str, appid: int, name: str, mods: list[str]) -> None: +def connect(addr: str, appid: int, name: str, mods: list[str]) -> int: concat = concat_mods(mods) params = [ "steam", @@ -121,7 +121,7 @@ def find_user_id(path: Path) -> str | None: def vdf2json(path: Path) -> str: - def _istr(indent: int, string: str): + def _istr(indent: int, string: str) -> str: return (indent * " ") + string jbuf = "{\n" diff --git a/dzgui/config/convert.py b/dzgui/config/convert.py index 5231bf7..b22bd20 100644 --- a/dzgui/config/convert.py +++ b/dzgui/config/convert.py @@ -1,6 +1,7 @@ import json import shlex from pathlib import Path +from typing import Any """ @@ -34,7 +35,7 @@ def rc2json(file: Path) -> str: lex = shlex.shlex(f.read()) lex.whitespace += "=" - keys = {} + keys: dict[str, Any] = {} ips: list[str] = [] toggles = ["auto_install", "fullscreen"] diff --git a/dzgui/managers/config.py b/dzgui/managers/config.py index 4169496..e309bc3 100644 --- a/dzgui/managers/config.py +++ b/dzgui/managers/config.py @@ -95,8 +95,8 @@ class ConfigManager: ) return - def get_start_tab(self) -> int: - return self.lookup(Preferences.START_TAB) + def get_start_tab(self) -> Any: + return int(self.lookup(Preferences.START_TAB)) def get_favorites(self) -> list[str]: return list(self.lookup(Preferences.IP_LIST)) diff --git a/dzgui/managers/connection.py b/dzgui/managers/connection.py index 5675e67..af50785 100644 --- a/dzgui/managers/connection.py +++ b/dzgui/managers/connection.py @@ -74,7 +74,7 @@ class Prerequisites: passworded: bool dayz_running: bool steam_proc: SteamProcess - mods: list[str] + mods: list[list[str]] foreground_cmd: str | None game_mode: bool @@ -90,7 +90,7 @@ class ConnectionManager: self.workshop: Path self.remote_mod_ids: list[str] = [] - self.missing_mods: list[str, str, int, int] = [] + self.missing_mods: list[tuple[str, str, int, int]] = [] @call_on_thread(dialog.querying) def connect_by_id(self, _id: int, key: str) -> None: @@ -206,7 +206,7 @@ class ConnectionManager: mods = Servers.get_rules(record) steam_path = self.controller.query_config(Preferences.DEFAULT) local = get_local_mod_ids(steam_path) - alpha_mods = [ + alpha_mods: list[list[str]] = [ [ mod.name, str(mod.workshop_id), @@ -231,7 +231,7 @@ class ConnectionManager: destroy_first=True, ) - def _present_modlist_dialog(self, mods: list[str]) -> None: + def _present_modlist_dialog(self, mods: list[list[str]]) -> None: dialog = ServerModDialog(self.controller, mods) dialog.run() diff --git a/dzgui/views/components/crumbs.py b/dzgui/views/components/crumbs.py index 6588b93..cd57426 100644 --- a/dzgui/views/components/crumbs.py +++ b/dzgui/views/components/crumbs.py @@ -12,6 +12,7 @@ from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402 if TYPE_CHECKING: from dzgui.controllers.mc import Controller from dzgui.views.base import Notebook + from dzgui.views.pages.servers import ServerNotebook class Breadcrumbs(Gtk.Label): @@ -30,10 +31,12 @@ class Breadcrumbs(Gtk.Label): self, notebook: "Notebook", page: Gtk.Widget, index: int ) -> None: label = notebook.get_tab_label_text(page) + if label is None: + return self.set_server_crumbs(label) def _on_notebook_page_changed( - self, notebook: "Notebook", page: Gtk.Widget, index: int + self, notebook: "Notebook", page: "ServerNotebook", index: int ) -> None: enum = notebook.get_page_by_enum() if enum == NotebookPage.SERVERS: diff --git a/dzgui/views/dialogs/note.py b/dzgui/views/dialogs/note.py index 04f9f42..b595e90 100644 --- a/dzgui/views/dialogs/note.py +++ b/dzgui/views/dialogs/note.py @@ -30,8 +30,7 @@ class NoteDialog(GenericDialog): delete_button = Gtk.Button(label="Delete note") delete_button.set_sensitive(False) self.add_action_widget(delete_button, Gtk.ResponseType.CANCEL) - self.add_button("Update note", Gtk.ResponseType.OK) - self.ok = self.get_widget_for_response(Gtk.ResponseType.OK) + self.ok = self.add_button("Update note", Gtk.ResponseType.OK) self.ok.grab_default() self.entry = ValidatedEntry(controller, self.validate) diff --git a/dzgui/views/mixins/cursor_mixin.py b/dzgui/views/mixins/cursor_mixin.py index d5a9a41..5033c20 100644 --- a/dzgui/views/mixins/cursor_mixin.py +++ b/dzgui/views/mixins/cursor_mixin.py @@ -61,4 +61,5 @@ class CursorMixin: dest = end path = Gtk.TreePath.new_from_indices([dest]) - self.set_cursor(path) # type: ignore return True + self.set_cursor(path) # type: ignore + return True diff --git a/dzgui/views/pages/preconnect.py b/dzgui/views/pages/preconnect.py index c57b5c1..0bc148d 100644 --- a/dzgui/views/pages/preconnect.py +++ b/dzgui/views/pages/preconnect.py @@ -313,6 +313,8 @@ class PreConnectionAssistant(Gtk.ScrolledWindow): def mark_finished(self) -> None: self.mod_count.set_label(preconnect.all_updated) model = self.tree.get_model() + if model is None: + return for row in model: row[2] = checkmark diff --git a/dzgui/views/trees/tree_menu.py b/dzgui/views/trees/tree_menu.py index 77af954..e800998 100644 --- a/dzgui/views/trees/tree_menu.py +++ b/dzgui/views/trees/tree_menu.py @@ -75,4 +75,4 @@ class MenuTreeView(TreeView): model = self.get_model() _iter = self.get_focused_row_iter() rowtype = model.get_value(_iter, 1) - return rowtype.dict["tooltip"] + return str(rowtype.dict["tooltip"])