mirror of
https://github.com/aclist/dztui.git
synced 2026-11-10 12:00:38 +01:00
chore: clear typehinting errors
This commit is contained in:
1 parent
e03c6905c6
commit
0c4026daf8
13 files changed
+33
-43
No files matched your search
+2
-1
@@ -111,7 +111,8 @@ class WorkshopACF(ACF):
|
|||||||
def __init__(self, file: Path) -> None:
|
def __init__(self, file: Path) -> None:
|
||||||
super().__init__(file)
|
super().__init__(file)
|
||||||
|
|
||||||
def unpack(self, d: dict[str, str], lines: list[Any] = []) -> str:
|
def unpack(self, d: dict[str, Any], lines: list[Any] = []) -> str:
|
||||||
|
self.indent: int
|
||||||
t1 = "AppWorkshop"
|
t1 = "AppWorkshop"
|
||||||
t2 = ("WorkshopItemsInstalled", "WorkshopItemDetails")
|
t2 = ("WorkshopItemsInstalled", "WorkshopItemDetails")
|
||||||
for k, v in d.items():
|
for k, v in d.items():
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ def get_netmask() -> str:
|
|||||||
|
|
||||||
|
|
||||||
# TODO: rename
|
# TODO: rename
|
||||||
def test_ip(suffix: int, port: int, event: threading.Event) -> dict | None:
|
def test_ip(suffix: int, port: int, event: threading.Event) -> dict[str, Any] | None:
|
||||||
if event.is_set():
|
if event.is_set():
|
||||||
return None
|
return None
|
||||||
netmask = get_netmask()
|
netmask = get_netmask()
|
||||||
@@ -139,7 +139,9 @@ def sanitize(name: str) -> str:
|
|||||||
return name
|
return name
|
||||||
|
|
||||||
|
|
||||||
def parse_json(json: list) -> list:
|
def parse_json(
|
||||||
|
json: list[dict[str, Any]],
|
||||||
|
) -> list[tuple[str, str, str, str, int, int, int, str, int, int, str, bool]]:
|
||||||
"""
|
"""
|
||||||
Server metadata is underspecified and server operators
|
Server metadata is underspecified and server operators
|
||||||
tend to insert random garbage in the headers. In case
|
tend to insert random garbage in the headers. In case
|
||||||
@@ -507,14 +509,14 @@ def record_to_fqip(record: Record) -> str:
|
|||||||
return f"{record.ip}:{record.gameport}:{record.qport}"
|
return f"{record.ip}:{record.gameport}:{record.qport}"
|
||||||
|
|
||||||
|
|
||||||
def response_to_fqip(res: dict) -> str:
|
def response_to_fqip(res: dict[str, Any]) -> str:
|
||||||
ip = res["addr"].split(":")[0]
|
ip = res["addr"].split(":")[0]
|
||||||
gameport = res["gameport"]
|
gameport = res["gameport"]
|
||||||
qport = res["addr"].split(":")[1]
|
qport = res["addr"].split(":")[1]
|
||||||
return f"{ip}:{gameport}:{qport}"
|
return f"{ip}:{gameport}:{qport}"
|
||||||
|
|
||||||
|
|
||||||
def response_to_record(res: dict) -> Record:
|
def response_to_record(res: dict[str, Any]) -> Record:
|
||||||
ip = res["addr"].split(":")[0]
|
ip = res["addr"].split(":")[0]
|
||||||
gameport = res["gameport"]
|
gameport = res["gameport"]
|
||||||
qport = res["addr"].split(":")[1]
|
qport = res["addr"].split(":")[1]
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class AppNavigation:
|
|||||||
|
|
||||||
class Controller(GObject.GObject):
|
class Controller(GObject.GObject):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.dist_cache: dict[str, "Haversine"] = {}
|
self.dist_cache: dict[str, "Haversine" | None] = {}
|
||||||
self.mediator = AppNavigation()
|
self.mediator = AppNavigation()
|
||||||
|
|
||||||
self.prefs: UserPrefs
|
self.prefs: UserPrefs
|
||||||
@@ -355,10 +355,10 @@ class Controller(GObject.GObject):
|
|||||||
filter_man.set_filter(filt, state)
|
filter_man.set_filter(filt, state)
|
||||||
self.mediator.filters.set_filters(filters)
|
self.mediator.filters.set_filters(filters)
|
||||||
|
|
||||||
def get_dist_cache(self) -> dict[str, "Haversine"]:
|
def get_dist_cache(self) -> dict[str, Union["Haversine", None]]:
|
||||||
return self.dist_cache
|
return self.dist_cache
|
||||||
|
|
||||||
def set_dist_cache(self, addr: str, haversine: "Haversine") -> None:
|
def set_dist_cache(self, addr: str, haversine: Union["Haversine", None]) -> None:
|
||||||
self.dist_cache[addr] = haversine
|
self.dist_cache[addr] = haversine
|
||||||
|
|
||||||
def get_map_store(self) -> Gtk.ListStore:
|
def get_map_store(self) -> Gtk.ListStore:
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ class FilterManager:
|
|||||||
self.active_map = (0, all_maps)
|
self.active_map = (0, all_maps)
|
||||||
self.prior_map = all_maps
|
self.prior_map = all_maps
|
||||||
|
|
||||||
self.filters: list
|
|
||||||
self.enabled_filters = dict(self.default_filters)
|
self.enabled_filters = dict(self.default_filters)
|
||||||
|
|
||||||
def get_tooltips(self) -> dict[str, str]:
|
def get_tooltips(self) -> dict[str, str]:
|
||||||
@@ -75,7 +74,7 @@ class FilterManager:
|
|||||||
def set_active_keyword(self, word: str) -> None:
|
def set_active_keyword(self, word: str) -> None:
|
||||||
self.active_keyword = word
|
self.active_keyword = word
|
||||||
|
|
||||||
def get_default_filters(self) -> dict:
|
def get_default_filters(self) -> dict[str, bool]:
|
||||||
"""Deep copy of defaults"""
|
"""Deep copy of defaults"""
|
||||||
return dict(self.default_filters)
|
return dict(self.default_filters)
|
||||||
|
|
||||||
@@ -116,7 +115,7 @@ class FilterManager:
|
|||||||
def get_unique_maps(self) -> list[str]:
|
def get_unique_maps(self) -> list[str]:
|
||||||
return [row[0] for row in self.map_store if row[0] != "All maps"]
|
return [row[0] for row in self.map_store if row[0] != "All maps"]
|
||||||
|
|
||||||
def get_all_filters(self) -> tuple:
|
def get_all_filters(self) -> tuple[str, ...]:
|
||||||
map_name = self.get_active_map_name()
|
map_name = self.get_active_map_name()
|
||||||
enabled = self.get_filters()
|
enabled = self.get_filters()
|
||||||
kw = self.get_active_keyword()
|
kw = self.get_active_keyword()
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class ProxyModelManager:
|
|||||||
|
|
||||||
def __init__(self, filter_man: "FilterManager") -> None:
|
def __init__(self, filter_man: "FilterManager") -> None:
|
||||||
self.filter_cache: dict[
|
self.filter_cache: dict[
|
||||||
tuple[str],
|
tuple[str, ...],
|
||||||
list[tuple[str, str, str, str, int, int, int, str, int, int, str, bool]],
|
list[tuple[str, str, str, str, int, int, int, str, int, int, str, bool]],
|
||||||
] = {}
|
] = {}
|
||||||
|
|
||||||
@@ -68,9 +68,6 @@ class ProxyModelManager:
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def append_row(self, row: list) -> None:
|
|
||||||
self.proxy_model.append(row)
|
|
||||||
|
|
||||||
def append_row_to_control(
|
def append_row_to_control(
|
||||||
self, row: tuple[str, str, str, str, int, int, int, str, int, int, str, bool]
|
self, row: tuple[str, str, str, str, int, int, int, str, int, int, str, bool]
|
||||||
) -> None:
|
) -> None:
|
||||||
@@ -84,7 +81,6 @@ class ProxyModelManager:
|
|||||||
self.proxy_model[treeiter][4] = playercount.players
|
self.proxy_model[treeiter][4] = playercount.players
|
||||||
self.proxy_model[treeiter][6] = playercount.queue
|
self.proxy_model[treeiter][6] = playercount.queue
|
||||||
|
|
||||||
# TODO: use dataclass for record rows
|
|
||||||
def append_row_to_history(
|
def append_row_to_history(
|
||||||
self,
|
self,
|
||||||
history: tuple[str, str, str, str, int, int, int, str, int, int, str, bool],
|
history: tuple[str, str, str, str, int, int, int, str, int, int, str, bool],
|
||||||
@@ -264,7 +260,7 @@ class ProxyModelManager:
|
|||||||
rows = [row for row in rows if row[11]]
|
rows = [row for row in rows if row[11]]
|
||||||
return rows
|
return rows
|
||||||
|
|
||||||
def filter_toggle_on(self, filters: tuple[str]) -> list:
|
def filter_toggle_on(self, filters: tuple[str, ...]) -> list:
|
||||||
"""Effectively applies all filters"""
|
"""Effectively applies all filters"""
|
||||||
self.set_filtered(self.control_model)
|
self.set_filtered(self.control_model)
|
||||||
self.set_filtered(self.filter_map(filters))
|
self.set_filtered(self.filter_map(filters))
|
||||||
@@ -275,7 +271,7 @@ class ProxyModelManager:
|
|||||||
self.set_filtered(self.filter_toggle_off(filters, f))
|
self.set_filtered(self.filter_toggle_off(filters, f))
|
||||||
return self.filtered
|
return self.filtered
|
||||||
|
|
||||||
def set_cache(self, filters: tuple[str], filtered_rows: list[tuple]) -> None:
|
def set_cache(self, filters: tuple[str, ...], filtered_rows: list[tuple]) -> None:
|
||||||
self.filter_cache[filters] = filtered_rows
|
self.filter_cache[filters] = filtered_rows
|
||||||
|
|
||||||
def set_filtered(self, rows: list | None) -> None:
|
def set_filtered(self, rows: list | None) -> None:
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import re
|
import re
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from dzgui.util.localize import number
|
from dzgui.util.localize import number
|
||||||
from dzgui.strings.generic import selectable_tree
|
from dzgui.strings.generic import selectable_tree
|
||||||
@@ -60,7 +61,7 @@ def format_server_mods(mods: int) -> str:
|
|||||||
return f"Found {mods:n} {plural}. {workshop}"
|
return f"Found {mods:n} {plural}. {workshop}"
|
||||||
|
|
||||||
|
|
||||||
def format_player_count(model: Gtk.TreeModel | None, control: list) -> str:
|
def format_player_count(model: Gtk.TreeModel | None, control: list[Any]) -> str:
|
||||||
players = 0
|
players = 0
|
||||||
hits: int
|
hits: int
|
||||||
status: str
|
status: str
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
from typing import Callable, Literal, Self, TYPE_CHECKING, Union
|
from typing import Callable, Literal, Self, TYPE_CHECKING, Union
|
||||||
|
|
||||||
from dzgui.util.clip import copy_clipboard
|
from dzgui.util.clip import copy_clipboard
|
||||||
from dzgui.util.format import pluralize
|
|
||||||
from dzgui.strings import buttons
|
from dzgui.strings import buttons
|
||||||
from dzgui.util.strings import (
|
from dzgui.util.strings import (
|
||||||
alert_button_tooltip,
|
|
||||||
atomic_buttons,
|
atomic_buttons,
|
||||||
)
|
)
|
||||||
from dzgui.const.constants import (
|
from dzgui.const.constants import (
|
||||||
@@ -14,7 +12,6 @@ from dzgui.const.constants import (
|
|||||||
LIST_ADD,
|
LIST_ADD,
|
||||||
REFRESH_ICON,
|
REFRESH_ICON,
|
||||||
STEAM_ICON,
|
STEAM_ICON,
|
||||||
WARNING,
|
|
||||||
WEB_BROWSER,
|
WEB_BROWSER,
|
||||||
)
|
)
|
||||||
from dzgui.strings import connect_panel
|
from dzgui.strings import connect_panel
|
||||||
@@ -101,15 +98,14 @@ class LargeIconTextButton(IconButton):
|
|||||||
|
|
||||||
|
|
||||||
class ClipboardButton(IconTextButton):
|
class ClipboardButton(IconTextButton):
|
||||||
def __init__(self, controller: Union["Controller", None], func: Callable) -> None:
|
def __init__(self, func: Callable[[], str]) -> None:
|
||||||
super().__init__(CLIPBOARD, atomic_buttons.copy)
|
super().__init__(CLIPBOARD, atomic_buttons.copy)
|
||||||
self.controller = controller
|
|
||||||
self.connect("clicked", self._on_button_clicked, func)
|
self.connect("clicked", self._on_button_clicked, func)
|
||||||
|
|
||||||
# TODO: strings
|
# TODO: strings
|
||||||
self.set_tooltip_text("Copy to clipboard")
|
self.set_tooltip_text("Copy to clipboard")
|
||||||
|
|
||||||
def _on_button_clicked(self, button: Self, func: Callable) -> None:
|
def _on_button_clicked(self, button: Self, func: Callable[[], str]) -> None:
|
||||||
def revert() -> Literal[False]:
|
def revert() -> Literal[False]:
|
||||||
self.revert_icon()
|
self.revert_icon()
|
||||||
return False
|
return False
|
||||||
@@ -120,10 +116,9 @@ class ClipboardButton(IconTextButton):
|
|||||||
GLib.timeout_add(600, revert)
|
GLib.timeout_add(600, revert)
|
||||||
|
|
||||||
|
|
||||||
# TODO: determine when controller would be passed to this button or drop
|
|
||||||
class CopyIpButton(ClipboardButton):
|
class CopyIpButton(ClipboardButton):
|
||||||
def __init__(self, controller: Union["Controller", None], func: Callable) -> None:
|
def __init__(self, func: Callable[[], str]) -> None:
|
||||||
super().__init__(controller, func)
|
super().__init__(func)
|
||||||
|
|
||||||
# TODO: strings
|
# TODO: strings
|
||||||
self.set_tooltip_text("Copy IP to clipboard")
|
self.set_tooltip_text("Copy IP to clipboard")
|
||||||
@@ -252,7 +247,6 @@ class AddButton(IconTextButton):
|
|||||||
self.set_tooltip_text(connect_panel.add_tooltip)
|
self.set_tooltip_text(connect_panel.add_tooltip)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SpinnerButton(Gtk.Button):
|
class SpinnerButton(Gtk.Button):
|
||||||
def __init__(self, label: str) -> None:
|
def __init__(self, label: str) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ class FavPanel(Gtk.Frame):
|
|||||||
|
|
||||||
self.fav_button = SteamConnectButton()
|
self.fav_button = SteamConnectButton()
|
||||||
self.fav_button.connect("clicked", self._on_connect_clicked)
|
self.fav_button.connect("clicked", self._on_connect_clicked)
|
||||||
self.copy_button = CopyIpButton(self.controller, self.get_fav_ip)
|
self.copy_button = CopyIpButton(self.get_fav_ip)
|
||||||
|
|
||||||
# TODO: strings
|
# TODO: strings
|
||||||
self.unset_button = CloseButton("Unset")
|
self.unset_button = CloseButton("Unset")
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class ValidatedEntry(Gtk.Entry):
|
|||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
controller: "Controller",
|
controller: "Controller",
|
||||||
func: Callable,
|
func: Callable[[str], bool],
|
||||||
placeholder_text: str = "",
|
placeholder_text: str = "",
|
||||||
tooltip_text: str = "",
|
tooltip_text: str = "",
|
||||||
) -> None:
|
) -> None:
|
||||||
@@ -46,7 +46,6 @@ class ValidatedEntry(Gtk.Entry):
|
|||||||
hexpand=True, placeholder_text=placeholder_text, tooltip_text=tooltip_text
|
hexpand=True, placeholder_text=placeholder_text, tooltip_text=tooltip_text
|
||||||
)
|
)
|
||||||
|
|
||||||
self.func: Callable
|
|
||||||
self.set_validation_func(func)
|
self.set_validation_func(func)
|
||||||
self.controller = controller
|
self.controller = controller
|
||||||
|
|
||||||
@@ -72,7 +71,7 @@ class ValidatedEntry(Gtk.Entry):
|
|||||||
self.emit("string_validated", False)
|
self.emit("string_validated", False)
|
||||||
remove_class(self, self.classname)
|
remove_class(self, self.classname)
|
||||||
|
|
||||||
def set_validation_func(self, func: Callable) -> None:
|
def set_validation_func(self, func: Callable[[str], bool]) -> None:
|
||||||
self.func = func
|
self.func = func
|
||||||
|
|
||||||
def insert_icon(self) -> None:
|
def insert_icon(self) -> None:
|
||||||
@@ -141,7 +140,7 @@ class APIEntry(Gtk.Box):
|
|||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__(orientation=Gtk.Orientation.HORIZONTAL, spacing=10)
|
super().__init__(orientation=Gtk.Orientation.HORIZONTAL, spacing=10)
|
||||||
|
|
||||||
self.func: Callable | None = None
|
self.func: Callable[[str], None] | None = None
|
||||||
|
|
||||||
# TODO: strings
|
# TODO: strings
|
||||||
self.entry = Gtk.Entry(
|
self.entry = Gtk.Entry(
|
||||||
@@ -222,7 +221,7 @@ class APIEntry(Gtk.Box):
|
|||||||
res = self.func(text)
|
res = self.func(text)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def set_validation_func(self, func: Callable | None) -> None:
|
def set_validation_func(self, func: Callable[[str], None] | None) -> None:
|
||||||
self.func = func
|
self.func = func
|
||||||
|
|
||||||
def disable_button(self) -> None:
|
def disable_button(self) -> None:
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class ButtonGrid(Gtk.Grid):
|
|||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
controller: "Controller",
|
controller: "Controller",
|
||||||
defaults: dict[str, str],
|
defaults: dict[str, bool],
|
||||||
tooltips: dict[str, str],
|
tooltips: dict[str, str],
|
||||||
) -> None:
|
) -> None:
|
||||||
super().__init__(
|
super().__init__(
|
||||||
@@ -96,7 +96,7 @@ class ButtonGrid(Gtk.Grid):
|
|||||||
logger.info(f"User toggled button '{label}' to {state}")
|
logger.info(f"User toggled button '{label}' to {state}")
|
||||||
self.emitter.emit("check_toggled", label, state)
|
self.emitter.emit("check_toggled", label, state)
|
||||||
|
|
||||||
def get_checkboxes(self) -> list:
|
def get_checkboxes(self) -> list[Gtk.CheckButton]:
|
||||||
return self.checks
|
return self.checks
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ class BootDialog(ColorAwareApp, Gtk.Dialog): # type: ignore
|
|||||||
self.error_label = Gtk.Label(margin_start=15, margin_end=15)
|
self.error_label = Gtk.Label(margin_start=15, margin_end=15)
|
||||||
|
|
||||||
# TODO: abstract class
|
# TODO: abstract class
|
||||||
self.copy_button = ClipboardButton(None, lambda: self.error_label.get_text())
|
self.copy_button = ClipboardButton(self.error_label.get_text)
|
||||||
self.button_hbox = Gtk.Box(
|
self.button_hbox = Gtk.Box(
|
||||||
orientation=Gtk.Orientation.HORIZONTAL, halign=Gtk.Align.CENTER, spacing=10
|
orientation=Gtk.Orientation.HORIZONTAL, halign=Gtk.Align.CENTER, spacing=10
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ class TextBufferDialog(GenericDialog):
|
|||||||
secondary=secondary,
|
secondary=secondary,
|
||||||
)
|
)
|
||||||
self.text = text
|
self.text = text
|
||||||
copy_button = ClipboardButton(controller, self.get_text)
|
copy_button = ClipboardButton(self.get_text)
|
||||||
self.add_action_widget(copy_button, Gtk.ResponseType.NONE)
|
self.add_action_widget(copy_button, Gtk.ResponseType.NONE)
|
||||||
self.add_button("OK", Gtk.ResponseType.OK)
|
self.add_button("OK", Gtk.ResponseType.OK)
|
||||||
self.connect("response", self._on_response)
|
self.connect("response", self._on_response)
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ logger = logging.getLogger(APP_NAME)
|
|||||||
|
|
||||||
|
|
||||||
class ContextMixin(TreeView):
|
class ContextMixin(TreeView):
|
||||||
def present_menu(
|
def present_menu(self, widget: Gtk.Widget, event: Gdk.Event) -> bool:
|
||||||
self, widget: Gtk.Widget, event: Gdk.Event
|
|
||||||
) -> bool:
|
|
||||||
|
|
||||||
if self.menu is None:
|
if self.menu is None:
|
||||||
return False
|
return False
|
||||||
@@ -26,7 +24,7 @@ class ContextMixin(TreeView):
|
|||||||
|
|
||||||
match event.type:
|
match event.type:
|
||||||
case Gdk.EventType.BUTTON_PRESS:
|
case Gdk.EventType.BUTTON_PRESS:
|
||||||
if event.button != 3:
|
if event.button != Gdk.BUTTON_SECONDARY: # type: ignore[comparison-overlap]
|
||||||
return False
|
return False
|
||||||
self._process_button_event(event) # type: ignore
|
self._process_button_event(event) # type: ignore
|
||||||
case Gdk.EventType.KEY_PRESS:
|
case Gdk.EventType.KEY_PRESS:
|
||||||
|
|||||||
Reference in new issue
Block a user