chore: clear linting errors

This commit is contained in:
aclist committed 2026-02-03 00:21:52 +09:00
1 parent 46a215a472
commit 45f1c5d8c6
8 files changed
+65 -48

No files matched your search

+4 -6
View File
@@ -4,7 +4,6 @@ import struct
from dataclasses import dataclass from dataclasses import dataclass
from enum import Enum from enum import Enum
from pathlib import Path from pathlib import Path
from shlex import shlex
from typing import BinaryIO, Union from typing import BinaryIO, Union
from packaging.version import Version from packaging.version import Version
@@ -73,7 +72,7 @@ class PackedData:
def unpack(cls, data: BinaryIO): def unpack(cls, data: BinaryIO):
r = [] r = []
for key, value in cls.__annotations__.items(): for key, value in cls.__annotations__.items():
if value == str: if type(value) is str:
f = data.read(8).rstrip(b"\x00\x00").decode() f = data.read(8).rstrip(b"\x00\x00").decode()
else: else:
fmt = endian + (value.fmt) fmt = endian + (value.fmt)
@@ -269,6 +268,7 @@ class AppNotInstalledError(Exception):
class AppMovedError(Exception): class AppMovedError(Exception):
"""VDF points to a nonexistent location on disk""" """VDF points to a nonexistent location on disk"""
pass pass
@@ -372,10 +372,7 @@ def get_version(file: Path) -> FileVersion:
shift = entry.data_or_subdir & ~(1 << 31) shift = entry.data_or_subdir & ~(1 << 31)
seek_to_hex(hex(offset + shift), f) seek_to_hex(hex(offset + shift), f)
table = RESOURCE_DIRECTORY_TABLE.unpack(f) table = RESOURCE_DIRECTORY_TABLE.unpack(f)
total = ( total = table.number_of_name_entries + table.number_of_id_entries
table.number_of_name_entries
+ table.number_of_id_entries
)
for entry in range(total): for entry in range(total):
entry = RESOURCE_DIRECTORY_ENTRY.unpack(f) entry = RESOURCE_DIRECTORY_ENTRY.unpack(f)
break break
@@ -423,6 +420,7 @@ def get_pefile_path(steam_path: Path, appid: int) -> Path:
pe_path = app_path / f"steamapps/common/{name}/{binary}" pe_path = app_path / f"steamapps/common/{name}/{binary}"
return pe_path return pe_path
def get_app_path(folders_path: Path, appid: int) -> Path: def get_app_path(folders_path: Path, appid: int) -> Path:
app_path = None app_path = None
+17 -14
View File
@@ -11,12 +11,14 @@ from dzgui.util.bash import concat_bash_args
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def query_defunct(): def query_defunct() -> None:
pass pass
# TODO: unimplemented # TODO: unimplemented
#cf. # cf.
#!/usr/bin/env bash #!/usr/bin/env bash
#query_defunct(){ # query_defunct(){
# readarray -t modlist <<< "$@" # readarray -t modlist <<< "$@"
# local max=${#modlist[@]} # local max=${#modlist[@]}
# concat(){ # concat(){
@@ -41,9 +43,9 @@ def query_defunct():
# | select(.filename|contains("screenshot")|not) # | select(.filename|contains("screenshot")|not)
# | "\(.file_size) \(.publishedfileid)"') # | "\(.file_size) \(.publishedfileid)"')
# <<< "$result" awk '{print $2}' # <<< "$result" awk '{print $2}'
#} # }
# #
#query_defunct "3576065083" # query_defunct "3576065083"
def concat_mods(mods: list[str]) -> str: def concat_mods(mods: list[str]) -> str:
@@ -51,6 +53,7 @@ def concat_mods(mods: list[str]) -> str:
mods[mod] = "@" + mod mods[mod] = "@" + mod
return ";".join(mods) return ";".join(mods)
# TEST: set config to name=user, use official server and no mods, # TEST: set config to name=user, use official server and no mods,
# ensure that formatted string is identical to fixture # ensure that formatted string is identical to fixture
def connect(addr: str, appid: int, name: str, mods: list) -> None: def connect(addr: str, appid: int, name: str, mods: list) -> None:
@@ -58,13 +61,13 @@ def connect(addr: str, appid: int, name: str, mods: list) -> None:
# TODO: concat_mods(mods): # TODO: concat_mods(mods):
# @<mod>;@<mod>; # @<mod>;@<mod>;
params = [ params = [
f"-connect={addr}", f"-connect={addr}",
"-nolauncher", "-nolauncher",
"-nosplash", "-nosplash",
"-skipintro", "-skipintro",
f"-name={name}", f"-name={name}",
f"-mod={concat}" f"-mod={concat}",
] ]
# TODO: get steam launch command from configs # TODO: get steam launch command from configs
# args = concat_bash_args() # args = concat_bash_args()
# #
@@ -130,8 +133,8 @@ def gen_shortcut() -> None:
show user account name, select outer steam id show user account name, select outer steam id
steam/userdata/<steamid_32>/config/shortcuts.vdf steam/userdata/<steamid_32>/config/shortcuts.vdf
""" """
#STEAMID_MAGIC = 76561197960265728 # STEAMID_MAGIC = 76561197960265728
# STEAMID_64 - STEAMID_MAGIC = STEAMID32 # STEAMID_64 - STEAMID_MAGIC = STEAMID32
# or get right-most 32 bits # or get right-most 32 bits
#STEAMID_64 & 0xFFFFFFFF # STEAMID_64 & 0xFFFFFFFF
pass pass
+12 -4
View File
@@ -7,7 +7,7 @@ from warnings import deprecated
from concurrent.futures import wait from concurrent.futures import wait
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
from pathlib import Path from pathlib import Path
from typing import Any, Callable, Literal, TYPE_CHECKING from typing import Any, Callable, Literal, Union, TYPE_CHECKING
import dzgui.api.pefile as PeFile import dzgui.api.pefile as PeFile
import dzgui.api.servers as Servers import dzgui.api.servers as Servers
@@ -112,6 +112,14 @@ class Emitter(GObject.GObject):
"""User invoked right movement keybinding from ServerTreeView""" """User invoked right movement keybinding from ServerTreeView"""
pass pass
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=())
def distcalc_started(self) -> None:
pass
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(object, object,))
def distcalc_ended(self, dist: Union[str, None], context: Union["ServerTab", NotebookPage]) -> None:
pass
class Controller(GObject.GObject): class Controller(GObject.GObject):
def __init__(self) -> None: def __init__(self) -> None:
@@ -400,7 +408,7 @@ class Controller(GObject.GObject):
self.mediator.notebook.set_page_by_enum(button.opens) self.mediator.notebook.set_page_by_enum(button.opens)
def dump_api(self): def dump_api(self) -> None:
key = self.query_config(Preferences.STEAM) key = self.query_config(Preferences.STEAM)
job = Servers.query_api job = Servers.query_api
params = Servers.params params = Servers.params
@@ -646,7 +654,7 @@ class Controller(GObject.GObject):
) )
self.push_data(data) self.push_data(data)
def cleanup(self): def cleanup(self) -> None:
treeview = self.get_active_treeview() treeview = self.get_active_treeview()
context = self.get_active_context() context = self.get_active_context()
# TODO: rename signal # TODO: rename signal
@@ -664,7 +672,7 @@ class Controller(GObject.GObject):
def push_data(self, data: tuple, mode: FilterMode) -> None: def push_data(self, data: tuple, mode: FilterMode) -> None:
treeview = self.get_active_treeview() treeview = self.get_active_treeview()
context = self.get_active_context() # context = self.get_active_context()
manager = treeview.get_filter_man() manager = treeview.get_filter_man()
if data is None: if data is None:
+11 -4
View File
@@ -1,5 +1,5 @@
import logging import logging
from typing import Literal from typing import Literal, TYPE_CHECKING
from dzgui.const.enum import FilterMode from dzgui.const.enum import FilterMode
from dzgui.const.constants import NO_EXPAND, NO_FILL, NO_PADDING from dzgui.const.constants import NO_EXPAND, NO_FILL, NO_PADDING
@@ -14,9 +14,12 @@ from gi.repository import Gtk, Gdk, Pango, GLib # noqa E402
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
if TYPE_CHECKING:
from dzgui.controllers.mc import Controller
class FilterPanel(Gtk.Box): class FilterPanel(Gtk.Box):
def __init__(self, controller): def __init__(self, controller: "Controller") -> None:
super().__init__(spacing=6, vexpand=False) super().__init__(spacing=6, vexpand=False)
self.default_filters = { self.default_filters = {
@@ -85,8 +88,12 @@ class FilterPanel(Gtk.Box):
self.keyword_entry.connect("activate", self._on_keyword_enter) self.keyword_entry.connect("activate", self._on_keyword_enter)
self.keyword_entry.connect("key-press-event", self._on_keyword_keypress) self.keyword_entry.connect("key-press-event", self._on_keyword_keypress)
self.emitter.connect("request_keyword_focus", lambda _: self.keyword_entry.grab_focus()) self.emitter.connect(
self.emitter.connect("request_maps_focus", lambda _: self.maps_entry.grab_focus()) "request_keyword_focus", lambda _: self.keyword_entry.grab_focus()
)
self.emitter.connect(
"request_maps_focus", lambda _: self.maps_entry.grab_focus()
)
completion = Gtk.EntryCompletion(inline_completion=True) completion = Gtk.EntryCompletion(inline_completion=True)
completion.set_text_column(0) completion.set_text_column(0)
+7 -7
View File
@@ -1,19 +1,19 @@
from typing import Literal, TYPE_CHECKING from typing import TYPE_CHECKING
from dzgui.views.components.buttonbox import ButtonBox from dzgui.views.components.buttonbox import ButtonBox
from dzgui.views.components.filter_panel import FilterPanel from dzgui.views.components.filter_panel import FilterPanel
from dzgui.views.components.mod_panel import ModSelectionPanel from dzgui.views.components.mod_panel import ModSelectionPanel
from dzgui.views.components.buttons import RefreshButton, KeysButton from dzgui.views.components.buttons import RefreshButton, KeysButton
from dzgui.const.constants import NO_EXPAND, NO_FILL, FILL, NO_PADDING from dzgui.const.constants import NO_EXPAND, NO_FILL, FILL, NO_PADDING
from dzgui.util.strings import atomic_buttons
import gi import gi
gi.require_version("Gtk", "3.0") gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GLib # noqa E402 from gi.repository import Gtk, GLib # noqa E402
if TYPE_CHECKING: if TYPE_CHECKING:
from dzgui.controllers.mc import Controller from dzgui.controllers.mc import Controller
from GLib import SOURCE_REMOVE
class RightPanel(Gtk.Box): class RightPanel(Gtk.Box):
def __init__(self, controller: "Controller"): def __init__(self, controller: "Controller"):
@@ -21,8 +21,8 @@ class RightPanel(Gtk.Box):
self.controller = controller self.controller = controller
self.controller.register_widget("right_panel", self) self.controller.register_widget("right_panel", self)
self.emitter = controller.get_emitter()
emitter = controller.get_emitter()
emitter.connect("request_button_box_focus", self.focus_button_box) emitter.connect("request_button_box_focus", self.focus_button_box)
self.button_vbox = ButtonBox(controller) self.button_vbox = ButtonBox(controller)
@@ -41,13 +41,13 @@ class RightPanel(Gtk.Box):
def reinit_maps(self, rows: list) -> None: def reinit_maps(self, rows: list) -> None:
self.controller.reinit_map_store() self.controller.reinit_map_store()
# TODO: communicate with controller # TODO: communicate with controller
#self.controller.clear_map_store() # self.controller.clear_map_store()
#map_store.append(["All maps"]) # map_store.append(["All maps"])
self.selected = "All maps" self.selected = "All maps"
self.filters_vbox.set_unique_maps(rows) self.filters_vbox.set_unique_maps(rows)
# TODO: reference # TODO: reference
#def _on_ping_clicked(self, button: Gtk.Button) -> None: # def _on_ping_clicked(self, button: Gtk.Button) -> None:
# block_signals() # block_signals()
# def _update_pings(): # def _update_pings():
# # TODO # # TODO
+6 -6
View File
@@ -20,6 +20,7 @@ class Statusbar(Gtk.Grid):
self.controller = controller self.controller = controller
self.controller.register_widget("statusbar", self) self.controller.register_widget("statusbar", self)
self.emitter = controller.get_emitter()
self.playercount = "" self.playercount = ""
self.statusbar = Gtk.Statusbar() self.statusbar = Gtk.Statusbar()
@@ -45,19 +46,17 @@ class Statusbar(Gtk.Grid):
controller.mediator.notebook.connect_after( controller.mediator.notebook.connect_after(
"switch-page", self._on_notebook_page_changed "switch-page", self._on_notebook_page_changed
) )
self.connect("server_row_changed", self._on_server_row_changed) self.emitter.connect("distcalc_started", self._on_distcalc_started)
self.connect("server_page_changed", self._on_server_page_changed) # TODO:
self.connect("distcalc_ended", self._on_distcalc_ended) self.connect("distcalc_ended", self._on_distcalc_ended)
self.connect("server_page_changed", self._on_server_page_changed)
# TODO: move to emitter # TODO: move to emitter
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(object,)) @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(object,))
def server_page_changed(self, tab: ServerTab) -> None: def server_page_changed(self, tab: ServerTab) -> None:
pass pass
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=())
def server_row_changed(self) -> None:
pass
@GObject.Signal( @GObject.Signal(
flags=GObject.SignalFlags.RUN_LAST, flags=GObject.SignalFlags.RUN_LAST,
arg_types=( arg_types=(
@@ -123,6 +122,7 @@ class Statusbar(Gtk.Grid):
self.set_by_context(context, count) self.set_by_context(context, count)
tree = self.controller.get_active_treeview() tree = self.controller.get_active_treeview()
# TODO: emit page change signal on emitter, treeview catches signal and calls distcalc
tree.emit("distcalc_started") tree.emit("distcalc_started")
def pop(self, context: Union["ServerTab", "NotebookPage"]) -> None: def pop(self, context: Union["ServerTab", "NotebookPage"]) -> None:
+3 -3
View File
@@ -1,6 +1,6 @@
import logging import logging
from typing import TYPE_CHECKING from typing import Optional, TYPE_CHECKING
from dzgui.const.constants import SEPARATOR from dzgui.const.constants import SEPARATOR
from dzgui.util.keys import is_navkey from dzgui.util.keys import is_navkey
@@ -20,7 +20,7 @@ if TYPE_CHECKING:
class TreeView(CursorMixin, Gtk.TreeView): # type: ignore class TreeView(CursorMixin, Gtk.TreeView): # type: ignore
def __init__( def __init__(
self, controller: "Controller", menu: "ContextMenuGroup" = None self, controller: "Controller", menu: Optional["ContextMenuGroup"] = None
) -> None: ) -> None:
super().__init__( super().__init__(
enable_search=False, enable_search=False,
@@ -147,7 +147,7 @@ class TreeView(CursorMixin, Gtk.TreeView): # type: ignore
name = self.get_value_at_index(0) name = self.get_value_at_index(0)
return name return name
def select_first_row(self): def select_first_row(self) -> None:
sel = self.get_selection() sel = self.get_selection()
self._on_tree_selection_changed(sel) self._on_tree_selection_changed(sel)
+5 -4
View File
@@ -3,7 +3,7 @@ import multiprocessing
from typing import Any, Self from typing import Any, Self
from warnings import deprecated from warnings import deprecated
from dzgui.const.enum import ContextMenu, ContextMenuGroup, FilterMode, ServerTab from dzgui.const.enum import ContextMenu, ContextMenuGroup, ServerTab
from dzgui.api.servers import Record from dzgui.api.servers import Record
from dzgui.model.filtered_model import FilteredModelManager from dzgui.model.filtered_model import FilteredModelManager
from dzgui.util.dist import CalcDist from dzgui.util.dist import CalcDist
@@ -203,13 +203,14 @@ class ServerTreeView(TreeView):
self.current_proc.terminate() self.current_proc.terminate()
def _on_distcalc_started(self, treeview: Self): def _on_distcalc_started(self, treeview: Self):
bar = self.controller.get_statusbar() # bar = self.controller.get_statusbar()
record = self.get_record() record = self.get_record()
if record is None: if record is None:
return return
bar.emit("server_row_changed") self.emitter.emit("distcalc_started")
# bar.emit("server_row_changed")
cache = self.controller.get_dist_cache() cache = self.controller.get_dist_cache()
if record.ip in cache: if record.ip in cache:
@@ -297,7 +298,7 @@ class ServerTreeView(TreeView):
except AttributeError: except AttributeError:
pass pass
mod_context_items = [ContextMenu.OPEN_WORKSHOP, ContextMenu.DELETE_MOD] # mod_context_items = [ContextMenu.OPEN_WORKSHOP, ContextMenu.DELETE_MOD]
# TODO: dynamic menu entries # TODO: dynamic menu entries
# for row in items: # for row in items: