mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +08:00
lint fixes
This commit is contained in:
parent
60b6c219d9
commit
98a176f740
@ -20,8 +20,6 @@
|
|||||||
# ========================================================================== #
|
# ========================================================================== #
|
||||||
|
|
||||||
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
import aiohttp.web
|
import aiohttp.web
|
||||||
|
|
||||||
from ....validators.basic import valid_bool
|
from ....validators.basic import valid_bool
|
||||||
@ -44,14 +42,15 @@ class LogApi:
|
|||||||
async def __log_handler(self, request: aiohttp.web.Request) -> aiohttp.web.StreamResponse:
|
async def __log_handler(self, request: aiohttp.web.Request) -> aiohttp.web.StreamResponse:
|
||||||
seek = valid_log_seek(request.query.get("seek", "0"))
|
seek = valid_log_seek(request.query.get("seek", "0"))
|
||||||
follow = valid_bool(request.query.get("follow", "false"))
|
follow = valid_bool(request.query.get("follow", "false"))
|
||||||
response: Optional[aiohttp.web.StreamResponse] = None
|
|
||||||
|
response = aiohttp.web.StreamResponse(status=200, reason="OK", headers={"Content-Type": "text/plain"})
|
||||||
|
await response.prepare(request)
|
||||||
|
|
||||||
async for record in self.__log_reader.poll_log(seek, follow):
|
async for record in self.__log_reader.poll_log(seek, follow):
|
||||||
if response is None:
|
|
||||||
response = aiohttp.web.StreamResponse(status=200, reason="OK", headers={"Content-Type": "text/plain"})
|
|
||||||
await response.prepare(request)
|
|
||||||
await response.write(("[%s %s] --- %s" % (
|
await response.write(("[%s %s] --- %s" % (
|
||||||
record["dt"].strftime("%Y-%m-%d %H:%M:%S"),
|
record["dt"].strftime("%Y-%m-%d %H:%M:%S"),
|
||||||
record["service"],
|
record["service"],
|
||||||
record["msg"],
|
record["msg"],
|
||||||
)).encode("utf-8") + b"\r\n")
|
)).encode("utf-8") + b"\r\n")
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|||||||
@ -138,6 +138,8 @@ def make_json_exception(err: Exception, status: int) -> aiohttp.web.Response:
|
|||||||
# =====
|
# =====
|
||||||
async def get_multipart_field(reader: aiohttp.MultipartReader, name: str) -> aiohttp.BodyPartReader:
|
async def get_multipart_field(reader: aiohttp.MultipartReader, name: str) -> aiohttp.BodyPartReader:
|
||||||
field = await reader.next()
|
field = await reader.next()
|
||||||
|
if not isinstance(field, aiohttp.BodyPartReader):
|
||||||
|
raise ValidatorError(f"Expected body part as {name!r} field")
|
||||||
if not field or field.name != name:
|
if not field or field.name != name:
|
||||||
raise ValidatorError(f"Missing {name!r} field")
|
raise ValidatorError(f"Missing {name!r} field")
|
||||||
return field
|
return field
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
import contextlib
|
import contextlib
|
||||||
|
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
from typing import AsyncGenerator
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
|
|
||||||
@ -64,7 +65,7 @@ class KvmdClient:
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
@contextlib.asynccontextmanager
|
@contextlib.asynccontextmanager
|
||||||
async def ws(self, user: str, passwd: str) -> aiohttp.ClientWebSocketResponse: # pylint: disable=invalid-name
|
async def ws(self, user: str, passwd: str) -> AsyncGenerator[aiohttp.ClientWebSocketResponse, None]:
|
||||||
async with self.__make_session(user, passwd) as session:
|
async with self.__make_session(user, passwd) as session:
|
||||||
async with session.ws_connect(
|
async with session.ws_connect(
|
||||||
url=f"http://{self.__host}:{self.__port}/ws",
|
url=f"http://{self.__host}:{self.__port}/ws",
|
||||||
|
|||||||
@ -61,7 +61,9 @@ class StreamerClient:
|
|||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
reader = aiohttp.MultipartReader.from_response(response)
|
reader = aiohttp.MultipartReader.from_response(response)
|
||||||
while True:
|
while True:
|
||||||
frame = await reader.next()
|
frame = await reader.next() # pylint: disable=not-callable
|
||||||
|
if not isinstance(frame, aiohttp.BodyPartReader):
|
||||||
|
raise RuntimeError("Expected body part")
|
||||||
yield (
|
yield (
|
||||||
(frame.headers["X-UStreamer-Online"] == "true"),
|
(frame.headers["X-UStreamer-Online"] == "true"),
|
||||||
int(frame.headers["X-UStreamer-Width"]),
|
int(frame.headers["X-UStreamer-Width"]),
|
||||||
|
|||||||
@ -21,12 +21,16 @@
|
|||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
import types
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
def get_logger(depth: int=1) -> logging.Logger:
|
def get_logger(depth: int=1) -> logging.Logger:
|
||||||
frame = sys._getframe(1) # pylint: disable=protected-access
|
frame: Optional[types.FrameType] = sys._getframe(1) # pylint: disable=protected-access
|
||||||
|
assert frame
|
||||||
frames = []
|
frames = []
|
||||||
while frame:
|
while frame:
|
||||||
frames.append(frame)
|
frames.append(frame)
|
||||||
|
|||||||
@ -94,8 +94,7 @@ class BaseMsd(BasePlugin):
|
|||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
async def poll_state(self) -> AsyncGenerator[Dict, None]:
|
async def poll_state(self) -> AsyncGenerator[Dict, None]:
|
||||||
if True: # pylint: disable=using-constant-test
|
if self is not None: # XXX: Vulture and pylint hack
|
||||||
# XXX: Vulture hack
|
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
yield
|
yield
|
||||||
|
|
||||||
@ -117,9 +116,8 @@ class BaseMsd(BasePlugin):
|
|||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@contextlib.asynccontextmanager
|
@contextlib.asynccontextmanager
|
||||||
async def write_image(self, name: str) -> AsyncGenerator[None, None]:
|
async def write_image(self, name: str) -> AsyncGenerator[None, None]: # pylint: disable=unused-argument
|
||||||
if True: # pylint: disable=using-constant-test
|
if self is not None: # XXX: Vulture and pylint hack
|
||||||
# XXX: Vulture hack
|
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
|||||||
@ -74,8 +74,7 @@ class Plugin(BaseMsd):
|
|||||||
|
|
||||||
@contextlib.asynccontextmanager
|
@contextlib.asynccontextmanager
|
||||||
async def write_image(self, name: str) -> AsyncGenerator[None, None]:
|
async def write_image(self, name: str) -> AsyncGenerator[None, None]:
|
||||||
if True: # pylint: disable=using-constant-test
|
if self is not None: # XXX: Vulture and pylint hack
|
||||||
# XXX: Vulture hack
|
|
||||||
raise MsdDisabledError()
|
raise MsdDisabledError()
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
|||||||
@ -127,7 +127,7 @@ def _parse_image_info_bytes(data: bytes) -> Optional[_ImageInfo]:
|
|||||||
|
|
||||||
def _ioctl_uint32(device_file: IO, request: int) -> int:
|
def _ioctl_uint32(device_file: IO, request: int) -> int:
|
||||||
buf = b"\0" * 4
|
buf = b"\0" * 4
|
||||||
buf = fcntl.ioctl(device_file.fileno(), request, buf)
|
buf = fcntl.ioctl(device_file.fileno(), request, buf) # type: ignore
|
||||||
result = struct.unpack("I", buf)[0]
|
result = struct.unpack("I", buf)[0]
|
||||||
assert result > 0, (device_file, request, buf)
|
assert result > 0, (device_file, request, buf)
|
||||||
return result
|
return result
|
||||||
|
|||||||
@ -44,7 +44,7 @@ max-line-length = 160
|
|||||||
bad-functions =
|
bad-functions =
|
||||||
|
|
||||||
# Good variable names which should always be accepted, separated by a comma
|
# Good variable names which should always be accepted, separated by a comma
|
||||||
good-names = _, __, x, y
|
good-names = _, __, x, y, ws
|
||||||
|
|
||||||
# Regular expression matching correct method names
|
# Regular expression matching correct method names
|
||||||
method-rgx = [a-z_][a-z0-9_]{2,50}$
|
method-rgx = [a-z_][a-z0-9_]{2,50}$
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user