typing fixes

This commit is contained in:
Devaev Maxim 2020-10-13 13:50:01 +03:00
parent 51ac65d542
commit c6524fc7ac
8 changed files with 14 additions and 20 deletions

View File

@ -21,7 +21,6 @@
import asyncio import asyncio
import asyncio.queues
import threading import threading
import dataclasses import dataclasses
@ -147,7 +146,7 @@ class _DebouncedValue:
self.__notifier = notifier self.__notifier = notifier
self.__loop = loop self.__loop = loop
self.__queue: asyncio.queues.Queue = asyncio.Queue(loop=loop) self.__queue: "asyncio.Queue[bool]" = asyncio.Queue(loop=loop)
self.__task = loop.create_task(self.__consumer_task_loop()) self.__task = loop.create_task(self.__consumer_task_loop())
def set(self, value: bool) -> None: def set(self, value: bool) -> None:

View File

@ -21,8 +21,6 @@
import multiprocessing import multiprocessing
import multiprocessing.queues
import multiprocessing.sharedctypes
import queue import queue
from typing import Dict from typing import Dict
@ -33,7 +31,7 @@ from . import aiotools
# ===== # =====
class AioProcessNotifier: class AioProcessNotifier:
def __init__(self) -> None: def __init__(self) -> None:
self.__queue: multiprocessing.queues.Queue = multiprocessing.Queue() self.__queue: "multiprocessing.Queue[None]" = multiprocessing.Queue()
def notify(self) -> None: def notify(self) -> None:
self.__queue.put_nowait(None) self.__queue.put_nowait(None)
@ -62,7 +60,7 @@ class AioSharedFlags:
self.__notifier = notifier self.__notifier = notifier
self.__flags: Dict[str, multiprocessing.sharedctypes.RawValue] = { self.__flags = {
key: multiprocessing.RawValue("i", int(value)) # type: ignore key: multiprocessing.RawValue("i", int(value)) # type: ignore
for (key, value) in initial.items() for (key, value) in initial.items()
} }

View File

@ -21,7 +21,6 @@
import asyncio import asyncio
import asyncio.queues
import functools import functools
import types import types
@ -92,7 +91,7 @@ async def wait_first(*aws: Awaitable) -> Tuple[Set[asyncio.Future], Set[asyncio.
# ===== # =====
class AioNotifier: class AioNotifier:
def __init__(self) -> None: def __init__(self) -> None:
self.__queue: asyncio.queues.Queue = asyncio.Queue() self.__queue: "asyncio.Queue[None]" = asyncio.Queue()
async def notify(self) -> None: async def notify(self) -> None:
await self.__queue.put(None) await self.__queue.put(None)

View File

@ -21,7 +21,6 @@
import asyncio import asyncio
import asyncio.queues
import contextlib import contextlib
import json import json
import types import types
@ -133,7 +132,7 @@ class KvmdClientWs:
def __init__(self, ws: aiohttp.ClientWebSocketResponse) -> None: def __init__(self, ws: aiohttp.ClientWebSocketResponse) -> None:
self.__ws = ws self.__ws = ws
self.__writer_queue: asyncio.queues.Queue = asyncio.Queue() self.__writer_queue: "asyncio.Queue[Dict]" = asyncio.Queue()
self.__communicated = False self.__communicated = False
async def communicate(self) -> AsyncGenerator[Dict, None]: async def communicate(self) -> AsyncGenerator[Dict, None]:

View File

@ -25,7 +25,6 @@
import sys import sys
import os import os
import asyncio import asyncio
import asyncio.queues
import ctypes import ctypes
import ctypes.util import ctypes.util
import struct import struct
@ -230,7 +229,7 @@ class Inotify:
self.__moved: Dict[int, str] = {} self.__moved: Dict[int, str] = {}
self.__events_queue: asyncio.queues.Queue = asyncio.Queue() self.__events_queue: "asyncio.Queue[InotifyEvent]" = asyncio.Queue()
def watch(self, path: str, mask: int) -> None: def watch(self, path: str, mask: int) -> None:
path = os.path.normpath(path) path = os.path.normpath(path)

View File

@ -23,7 +23,6 @@
import os import os
import select import select
import multiprocessing import multiprocessing
import multiprocessing.queues
import queue import queue
import errno import errno
import time import time
@ -76,7 +75,7 @@ class BaseDeviceProcess(multiprocessing.Process): # pylint: disable=too-many-in
self.__noop = noop self.__noop = noop
self.__fd = -1 self.__fd = -1
self.__events_queue: multiprocessing.queues.Queue = multiprocessing.Queue() self.__events_queue: "multiprocessing.Queue[BaseEvent]" = multiprocessing.Queue()
self.__state_flags = aiomulti.AioSharedFlags({"online": True, **initial_state}, notifier) self.__state_flags = aiomulti.AioSharedFlags({"online": True, **initial_state}, notifier)
self.__stop_event = multiprocessing.Event() self.__stop_event = multiprocessing.Event()
@ -93,7 +92,7 @@ class BaseDeviceProcess(multiprocessing.Process): # pylint: disable=too-many-in
if self.__ensure_device(): # Check device and process reports if needed if self.__ensure_device(): # Check device and process reports if needed
self.__read_all_reports() self.__read_all_reports()
try: try:
event: BaseEvent = self.__events_queue.get(timeout=0.1) event = self.__events_queue.get(timeout=0.1)
except queue.Empty: except queue.Empty:
if not self.__udc.can_operate(): if not self.__udc.can_operate():
self.__close_device() self.__close_device()

View File

@ -22,7 +22,6 @@
import os import os
import multiprocessing import multiprocessing
import multiprocessing.queues
import dataclasses import dataclasses
import queue import queue
import struct import struct
@ -225,7 +224,7 @@ class Plugin(BaseHid, multiprocessing.Process): # pylint: disable=too-many-inst
self.__gpio = _Gpio(reset_pin, reset_delay) self.__gpio = _Gpio(reset_pin, reset_delay)
self.__events_queue: multiprocessing.queues.Queue = multiprocessing.Queue() self.__events_queue: "multiprocessing.Queue[_BaseEvent]" = multiprocessing.Queue()
self.__notifier = aiomulti.AioProcessNotifier() self.__notifier = aiomulti.AioProcessNotifier()
self.__state_flags = aiomulti.AioSharedFlags({ self.__state_flags = aiomulti.AioSharedFlags({
@ -344,7 +343,7 @@ class Plugin(BaseHid, multiprocessing.Process): # pylint: disable=too-many-inst
with self.__get_serial() as tty: with self.__get_serial() as tty:
while not (self.__stop_event.is_set() and self.__events_queue.qsize() == 0): while not (self.__stop_event.is_set() and self.__events_queue.qsize() == 0):
try: try:
event: _BaseEvent = self.__events_queue.get(timeout=0.1) event = self.__events_queue.get(timeout=0.1)
except queue.Empty: except queue.Empty:
self.__process_command(tty, b"\x01\x00\x00\x00\x00") # Ping self.__process_command(tty, b"\x01\x00\x00\x00\x00") # Ping
else: else:

View File

@ -22,9 +22,10 @@
import os import os
import multiprocessing import multiprocessing
import multiprocessing.queues
import time import time
from typing import Literal
import setproctitle import setproctitle
from kvmd.apps.cleanup import main from kvmd.apps.cleanup import main
@ -32,7 +33,8 @@ from kvmd.apps.cleanup import main
# ===== # =====
def test_ok(tmpdir) -> None: # type: ignore def test_ok(tmpdir) -> None: # type: ignore
queue: multiprocessing.queues.Queue = multiprocessing.Queue() _ = Literal # Makes liters happy
queue: "multiprocessing.Queue[Literal[True]]" = multiprocessing.Queue()
ustreamer_sock_path = os.path.abspath(str(tmpdir.join("ustreamer-fake.sock"))) ustreamer_sock_path = os.path.abspath(str(tmpdir.join("ustreamer-fake.sock")))
open(ustreamer_sock_path, "w").close() open(ustreamer_sock_path, "w").close()