lint fixes

This commit is contained in:
Maxim Devaev 2022-07-19 17:02:26 +03:00
parent adf4be9bf7
commit c58cc99582
3 changed files with 20 additions and 14 deletions

View File

@ -23,6 +23,7 @@
import dataclasses import dataclasses
from typing import List from typing import List
from typing import Dict
from typing import FrozenSet from typing import FrozenSet
from typing import Union from typing import Union
from typing import Any from typing import Any
@ -44,25 +45,23 @@ class RfbEncodings:
H264 = 50 # Open H.264 Encoding H264 = 50 # Open H.264 Encoding
def _feature(default: Any, variants: Union[int, FrozenSet[int]]) -> dataclasses.Field: def _make_meta(variants: Union[int, FrozenSet[int]]) -> Dict:
return dataclasses.field(default=default, metadata={ return {"variants": (frozenset([variants]) if isinstance(variants, int) else variants)}
"variants": (frozenset([variants]) if isinstance(variants, int) else variants),
})
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True)
class RfbClientEncodings: # pylint: disable=too-many-instance-attributes class RfbClientEncodings: # pylint: disable=too-many-instance-attributes
encodings: FrozenSet[int] encodings: FrozenSet[int]
has_resize: bool = _feature(False, RfbEncodings.RESIZE) has_resize: bool = dataclasses.field(default=False, metadata=_make_meta(RfbEncodings.RESIZE)) # noqa: E224
has_rename: bool = _feature(False, RfbEncodings.RENAME) has_rename: bool = dataclasses.field(default=False, metadata=_make_meta(RfbEncodings.RENAME)) # noqa: E224
has_leds_state: bool = _feature(False, RfbEncodings.LEDS_STATE) has_leds_state: bool = dataclasses.field(default=False, metadata=_make_meta(RfbEncodings.LEDS_STATE)) # noqa: E224
has_ext_keys: bool = _feature(False, RfbEncodings.EXT_KEYS) has_ext_keys: bool = dataclasses.field(default=False, metadata=_make_meta(RfbEncodings.EXT_KEYS)) # noqa: E224
has_tight: bool = _feature(False, RfbEncodings.TIGHT) has_tight: bool = dataclasses.field(default=False, metadata=_make_meta(RfbEncodings.TIGHT)) # noqa: E224
tight_jpeg_quality: int = _feature(0, frozenset(RfbEncodings.TIGHT_JPEG_QUALITIES)) tight_jpeg_quality: int = dataclasses.field(default=0, metadata=_make_meta(frozenset(RfbEncodings.TIGHT_JPEG_QUALITIES))) # noqa: E224
has_h264: bool = _feature(False, RfbEncodings.H264) has_h264: bool = dataclasses.field(default=False, metadata=_make_meta(RfbEncodings.H264)) # noqa: E224
def get_summary(self) -> List[str]: def get_summary(self) -> List[str]:
summary: List[str] = [f"encodings -- {sorted(self.encodings)}"] summary: List[str] = [f"encodings -- {sorted(self.encodings)}"]
@ -81,7 +80,7 @@ class RfbClientEncodings: # pylint: disable=too-many-instance-attributes
def __set_value(self, key: str, value: Any) -> None: def __set_value(self, key: str, value: Any) -> None:
object.__setattr__(self, key, value) object.__setattr__(self, key, value)
def __get_found(self, field: dataclasses.Field) -> None: def __get_found(self, field: dataclasses.Field) -> FrozenSet[int]:
return self.encodings.intersection(field.metadata["variants"]) return self.encodings.intersection(field.metadata["variants"])
def __get_tight_jpeg_quality(self) -> int: def __get_tight_jpeg_quality(self) -> int:

View File

@ -135,7 +135,7 @@ class KvmdClientWs:
self.__writer_queue: "asyncio.Queue[Tuple[str, Dict]]" = asyncio.Queue() self.__writer_queue: "asyncio.Queue[Tuple[str, Dict]]" = asyncio.Queue()
self.__communicated = False self.__communicated = False
async def communicate(self) -> AsyncGenerator[Tuple[str, Dict], None]: async def communicate(self) -> AsyncGenerator[Tuple[str, Dict], None]: # pylint: disable=too-many-branches
assert not self.__communicated assert not self.__communicated
self.__communicated = True self.__communicated = True
receive_task: Optional[asyncio.Task] = None receive_task: Optional[asyncio.Task] = None

View File

@ -34,8 +34,10 @@ from typing import Dict
from typing import Callable from typing import Callable
from typing import AsyncGenerator from typing import AsyncGenerator
from typing import Optional from typing import Optional
from typing import Union
from typing import Any from typing import Any
from aiohttp import ClientWebSocketResponse
from aiohttp.web import BaseRequest from aiohttp.web import BaseRequest
from aiohttp.web import Request from aiohttp.web import Request
from aiohttp.web import Response from aiohttp.web import Response
@ -208,7 +210,12 @@ async def stream_json_exception(response: StreamResponse, err: Exception) -> Non
}, False) }, False)
async def send_ws_event(wsr: WebSocketResponse, event_type: str, event: Optional[Dict]) -> None: async def send_ws_event(
wsr: Union[ClientWebSocketResponse, WebSocketResponse],
event_type: str,
event: Optional[Dict],
) -> None:
await wsr.send_str(json.dumps({ await wsr.send_str(json.dumps({
"event_type": event_type, "event_type": event_type,
"event": event, "event": event,