Added some types

This commit is contained in:
Christoph Stahl 2024-10-10 17:23:14 +02:00
parent 95e8157277
commit 65a749b5f8
5 changed files with 25 additions and 14 deletions

View file

@ -28,6 +28,7 @@ from dataclasses import dataclass
from dataclasses import field
from traceback import print_exc
from typing import Any, Optional
from uuid import UUID
from qrcode.main import QRCode
@ -121,7 +122,7 @@ class Client:
self.is_running = False
self.sio = socketio.AsyncClient(json=jsonencoder)
self.loop: Optional[asyncio.AbstractEventLoop] = None
self.skipped = []
self.skipped: list[UUID] = []
self.sources = configure_sources(config["sources"])
self.state = State()
self.currentLock = asyncio.Semaphore(0)
@ -441,7 +442,7 @@ class Client:
if self.player is not None:
self.player.mpv.terminate()
def quit_callback(self):
def quit_callback(self) -> None:
if self.loop is not None:
asyncio.run_coroutine_threadsafe(self.sio.disconnect(), self.loop)

View file

@ -482,14 +482,14 @@ class GeneralConfig(OptionFrame):
class SyngGui(QMainWindow):
def closeEvent(self, a0: Optional[QCloseEvent]) -> None:
if self.syng_server is not None:
self.syng_server.kill()
self.syng_server.join()
# if self.syng_server is not None:
# self.syng_server.kill()
# self.syng_server.join()
if self.syng_client is not None:
self.syng_client.terminate()
self.syng_client.join(1.0)
self.syng_client.kill()
# if self.syng_client is not None:
# self.syng_client.terminate()
# self.syng_client.join(1.0)
# self.syng_client.kill()
self.destroy()
@ -632,8 +632,8 @@ class SyngGui(QMainWindow):
self.setWindowIcon(QIcon(":/icons/syng.ico"))
self.loop = asyncio.get_event_loop()
self.syng_server: Optional[threading.Thread] = None
self.syng_client: Optional[threading.Thread] = None
# self.syng_server: Optional[threading.Thread] = None
# self.syng_client: Optional[threading.Thread] = None
self.client: Optional[Client] = None
self.syng_client_logging_listener: Optional[QueueListener] = None

View file

@ -1,7 +1,7 @@
import asyncio
import locale
import sys
from typing import Iterable, Optional, cast
from typing import Callable, Iterable, Optional, cast
from qrcode.main import QRCode
import mpv
import os
@ -13,7 +13,7 @@ __dirname__ = os.path.dirname(__file__)
class Player:
def __init__(self, qr_string: str, quit_callback) -> None:
def __init__(self, qr_string: str, quit_callback: Callable[[], None]) -> None:
locale.setlocale(locale.LC_ALL, "C")
self.mpv = mpv.MPV(ytdl=True, input_default_bindings=True, input_vo_keyboard=True, osc=True)
self.mpv.title = "Syng - Player"
@ -36,7 +36,7 @@ class Player:
self.mpv.observe_property("osd-height", self.osd_size_handler)
self.mpv.register_event_callback(self.event_callback)
def event_callback(self, event):
def event_callback(self, event: mpv.MpvEvent) -> None:
e = event.as_dict()
if e["event"] == b"shutdown":
self.quit_callback()

View file

@ -2,6 +2,9 @@ from typing import Any, Callable, Iterable, Optional, Protocol
from PIL.Image import Image
class ShutdownError(Exception):
pass
class Unregisterable(Protocol):
def unregister(self) -> None: ...
@ -9,6 +12,9 @@ class ImageOverlay:
overlay_id: int
def remove(self) -> None: ...
class MpvEvent:
def as_dict(self) -> dict[str, bytes]: ...
class MPV:
pause: bool
keep_open: str

4
typings/qasync.pyi Normal file
View file

@ -0,0 +1,4 @@
from asyncio import AbstractEventLoop
class QApplication:
def __init__(self, argv: list[str]) -> None: ...