summaryrefslogtreecommitdiff
path: root/backend/decky_loader
diff options
context:
space:
mode:
Diffstat (limited to 'backend/decky_loader')
-rw-r--r--backend/decky_loader/helpers.py7
-rw-r--r--backend/decky_loader/injector.py2
-rw-r--r--backend/decky_loader/loader.py22
-rw-r--r--backend/decky_loader/localplatform/localsocket.py4
-rw-r--r--backend/decky_loader/main.py6
-rw-r--r--backend/decky_loader/utilities.py2
-rw-r--r--backend/decky_loader/wsrouter.py4
7 files changed, 23 insertions, 24 deletions
diff --git a/backend/decky_loader/helpers.py b/backend/decky_loader/helpers.py
index 7216a2a5..8e571f92 100644
--- a/backend/decky_loader/helpers.py
+++ b/backend/decky_loader/helpers.py
@@ -1,4 +1,3 @@
-from platform import version
import re
import ssl
import uuid
@@ -70,10 +69,10 @@ def get_loader_version() -> str:
version_str = f'v{v.major}.{v.minor}.{v.micro}'
- if v.pre: # type: ignore
+ if v.pre:
version_str += f'-pre{v.pre[1]}'
- if v.post: # type: ignore
+ if v.post:
version_str += f'-dev{v.post}'
return version_str
@@ -89,7 +88,7 @@ def get_system_pythonpaths() -> list[str]:
# run as normal normal user if on linux to also include user python paths
proc = subprocess.run(["python3" if localplatform.ON_LINUX else "python", "-c", "import sys; print('\\n'.join(x for x in sys.path if x))"],
# TODO make this less insane
- capture_output=True, user=localplatform.localplatform._get_user_id() if localplatform.ON_LINUX else None, env={} if localplatform.ON_LINUX else None) # type: ignore
+ capture_output=True, user=localplatform.localplatform._get_user_id() if localplatform.ON_LINUX else None, env={} if localplatform.ON_LINUX else None) # pyright: ignore [reportPrivateUsage]
return [x.strip() for x in proc.stdout.decode().strip().split("\n")]
except Exception as e:
logger.warn(f"Failed to execute get_system_pythonpaths(): {str(e)}")
diff --git a/backend/decky_loader/injector.py b/backend/decky_loader/injector.py
index 2e8846c6..f72ffb7b 100644
--- a/backend/decky_loader/injector.py
+++ b/backend/decky_loader/injector.py
@@ -33,7 +33,7 @@ class Tab:
async def open_websocket(self):
self.client = ClientSession()
- self.websocket = await self.client.ws_connect(self.ws_url) # type: ignore
+ self.websocket = await self.client.ws_connect(self.ws_url)
async def close_websocket(self):
if self.websocket:
diff --git a/backend/decky_loader/loader.py b/backend/decky_loader/loader.py
index 9eecb575..c4206176 100644
--- a/backend/decky_loader/loader.py
+++ b/backend/decky_loader/loader.py
@@ -4,12 +4,12 @@ from logging import getLogger
from os import listdir, path
from pathlib import Path
from traceback import format_exc, print_exc
-from typing import Any, Tuple, Dict
+from typing import Any, Tuple, Dict, cast
from aiohttp import web
from os.path import exists
-from watchdog.events import RegexMatchingEventHandler, DirCreatedEvent, DirModifiedEvent, FileCreatedEvent, FileModifiedEvent # type: ignore
-from watchdog.observers import Observer # type: ignore
+from watchdog.events import RegexMatchingEventHandler, DirCreatedEvent, DirModifiedEvent, FileCreatedEvent, FileModifiedEvent
+from watchdog.observers import Observer
from typing import TYPE_CHECKING, List
if TYPE_CHECKING:
@@ -24,7 +24,7 @@ ReloadQueue = Queue[Tuple[str, str, bool | None] | Tuple[str, str]]
class FileChangeHandler(RegexMatchingEventHandler):
def __init__(self, queue: ReloadQueue, plugin_path: str) -> None:
- super().__init__(regexes=[r'^.*?dist\/index\.js$', r'^.*?main\.py$']) # type: ignore
+ super().__init__(regexes=[r'^.*?dist\/index\.js$', r'^.*?main\.py$']) # pyright: ignore [reportUnknownMemberType]
self.logger = getLogger("file-watcher")
self.plugin_path = plugin_path
self.queue = queue
@@ -37,8 +37,8 @@ class FileChangeHandler(RegexMatchingEventHandler):
if exists(path.join(self.plugin_path, plugin_dir, "plugin.json")):
self.queue.put_nowait((path.join(self.plugin_path, plugin_dir, "main.py"), plugin_dir, True))
- def on_created(self, event: DirCreatedEvent | FileCreatedEvent):
- src_path = event.src_path
+ def on_created(self, event: DirCreatedEvent | FileCreatedEvent): # pyright: ignore [reportIncompatibleMethodOverride]
+ src_path = cast(str, event.src_path) # type: ignore the correct type for this is in later versions of watchdog
if "__pycache__" in src_path:
return
@@ -51,8 +51,8 @@ class FileChangeHandler(RegexMatchingEventHandler):
self.logger.debug(f"file created: {src_path}")
self.maybe_reload(src_path)
- def on_modified(self, event: DirModifiedEvent | FileModifiedEvent):
- src_path = event.src_path
+ def on_modified(self, event: DirModifiedEvent | FileModifiedEvent): # pyright: ignore [reportIncompatibleMethodOverride]
+ src_path = cast(str, event.src_path) # type: ignore
if "__pycache__" in src_path:
return
@@ -81,7 +81,7 @@ class Loader:
if live_reload:
self.observer = Observer()
self.watcher = FileChangeHandler(self.reload_queue, plugin_path)
- self.observer.schedule(self.watcher, self.plugin_path, recursive=True) # type: ignore
+ self.observer.schedule(self.watcher, self.plugin_path, recursive=True) # pyright: ignore [reportUnknownMemberType]
self.observer.start()
self.loop.create_task(self.enable_reload_wait())
@@ -179,7 +179,7 @@ class Loader:
async def handle_reloads(self):
while True:
args = await self.reload_queue.get()
- self.import_plugin(*args) # type: ignore
+ self.import_plugin(*args) # pyright: ignore [reportArgumentType]
async def handle_plugin_method_call_legacy(self, plugin_name: str, method_name: str, kwargs: Dict[Any, Any]):
res: Dict[Any, Any] = {}
@@ -208,4 +208,4 @@ class Loader:
async def handle_plugin_backend_reload(self, plugin_name: str):
plugin = self.plugins[plugin_name]
- await self.reload_queue.put((plugin.file, plugin.plugin_directory)) \ No newline at end of file
+ await self.reload_queue.put((plugin.file, plugin.plugin_directory))
diff --git a/backend/decky_loader/localplatform/localsocket.py b/backend/decky_loader/localplatform/localsocket.py
index 93b1ea18..e0ef196a 100644
--- a/backend/decky_loader/localplatform/localsocket.py
+++ b/backend/decky_loader/localplatform/localsocket.py
@@ -75,7 +75,7 @@ class UnixSocket:
try:
line.extend(await reader.readuntil())
except asyncio.LimitOverrunError:
- line.extend(await reader.read(reader._limit)) # type: ignore
+ line.extend(await reader.read(reader._limit)) # pyright: ignore [reportUnknownMemberType, reportUnknownArgumentType, reportAttributeAccessIssue]
continue
except asyncio.IncompleteReadError as err:
line.extend(err.partial)
@@ -142,4 +142,4 @@ if ON_WINDOWS:
pass
else:
class LocalSocket (UnixSocket):
- pass \ No newline at end of file
+ pass
diff --git a/backend/decky_loader/main.py b/backend/decky_loader/main.py
index 64c76dc0..763fbd42 100644
--- a/backend/decky_loader/main.py
+++ b/backend/decky_loader/main.py
@@ -14,10 +14,10 @@ from os import path
from traceback import format_exc
import multiprocessing
-import aiohttp_cors # type: ignore
+import aiohttp_cors # pyright: ignore [reportMissingTypeStubs]
# Partial imports
from aiohttp import client_exceptions
-from aiohttp.web import Application, Response, Request, get, run_app, static # type: ignore
+from aiohttp.web import Application, Response, Request, get, run_app, static # pyright: ignore [reportUnknownVariableType]
from aiohttp_jinja2 import setup as jinja_setup
# local modules
@@ -87,7 +87,7 @@ class PluginManager:
self.web_app.add_routes([get("/auth/token", self.get_auth_token)])
for route in list(self.web_app.router.routes()):
- self.cors.add(route) # type: ignore
+ self.cors.add(route) # pyright: ignore [reportUnknownMemberType]
self.web_app.add_routes([static("/static", path.join(path.dirname(__file__), '..', 'static'))])
def exception_handler(self, loop: AbstractEventLoop, context: Dict[str, str]):
diff --git a/backend/decky_loader/utilities.py b/backend/decky_loader/utilities.py
index d7d16f04..7c15bb85 100644
--- a/backend/decky_loader/utilities.py
+++ b/backend/decky_loader/utilities.py
@@ -6,7 +6,7 @@ from json.decoder import JSONDecodeError
from os.path import splitext
import re
from traceback import format_exc
-from stat import FILE_ATTRIBUTE_HIDDEN # type: ignore
+from stat import FILE_ATTRIBUTE_HIDDEN # pyright: ignore [reportAttributeAccessIssue, reportUnknownVariableType]
from asyncio import StreamReader, StreamWriter, start_server, gather, open_connection
from aiohttp import ClientSession
diff --git a/backend/decky_loader/wsrouter.py b/backend/decky_loader/wsrouter.py
index 1ceeedd4..96e61daf 100644
--- a/backend/decky_loader/wsrouter.py
+++ b/backend/decky_loader/wsrouter.py
@@ -24,8 +24,8 @@ class MessageType(IntEnum):
# WSMessage with slightly better typings
class WSMessageExtra(WSMessage):
# TODO message typings here too
- data: Any # type: ignore yes you can extend it
- type: WSMsgType # type: ignore
+ data: Any # pyright: ignore [reportIncompatibleVariableOverride]
+ type: WSMsgType # pyright: ignore [reportIncompatibleVariableOverride]
# see wsrouter.ts for typings