mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-13 01:30:31 +08:00
lint fixes
This commit is contained in:
parent
adf4be9bf7
commit
c58cc99582
@ -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:
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user