refactoring

This commit is contained in:
Maxim Devaev 2022-06-18 13:10:00 +03:00
parent 53e64fe151
commit b5344a5f3a
4 changed files with 19 additions and 19 deletions

View File

@ -43,16 +43,16 @@ from .logging import get_logger
# =====
_MethodT = TypeVar("_MethodT", bound=Callable[..., Any])
_FunctionT = TypeVar("_FunctionT", bound=Callable[..., Any])
_RetvalT = TypeVar("_RetvalT")
# =====
def atomic(method: _MethodT) -> _MethodT:
@functools.wraps(method)
def atomic(func: _FunctionT) -> _FunctionT:
@functools.wraps(func)
async def wrapper(*args: Any, **kwargs: Any) -> Any:
return (await asyncio.shield(method(*args, **kwargs)))
return typing.cast(_MethodT, wrapper)
return (await asyncio.shield(func(*args, **kwargs)))
return typing.cast(_FunctionT, wrapper)
# =====
@ -109,8 +109,8 @@ async def stop_all_deadly_tasks() -> None:
# =====
async def run_async(method: Callable[..., _RetvalT], *args: Any) -> _RetvalT:
return (await asyncio.get_running_loop().run_in_executor(None, method, *args))
async def run_async(func: Callable[..., _RetvalT], *args: Any) -> _RetvalT:
return (await asyncio.get_running_loop().run_in_executor(None, func, *args))
def run_sync(coro: Coroutine[Any, Any, _RetvalT]) -> _RetvalT:
@ -254,7 +254,7 @@ class AioExclusiveRegion:
async def run_region_task(
msg: str,
region: AioExclusiveRegion,
method: Callable[..., Coroutine[Any, Any, None]],
func: Callable[..., Coroutine[Any, Any, None]],
*args: Any,
**kwargs: Any,
) -> None:
@ -265,7 +265,7 @@ async def run_region_task(
try:
async with region:
entered.set_result(None)
await method(*args, **kwargs)
await func(*args, **kwargs)
except region.get_exc_type():
raise
except Exception:

View File

@ -85,12 +85,12 @@ def main(argv: Optional[List[str]]=None) -> None:
logger = get_logger(0)
logger.info("Cleaning up ...")
for method in [
for func in [
_kill_streamer,
_remove_sockets,
]:
try:
method(config)
func(config)
except Exception:
pass

View File

@ -161,7 +161,7 @@ class IpmiServer(BaseIpmiServer): # pylint: disable=too-many-instance-attribute
code = 0xCC # Invalid request
session.send_ipmi_response(code=code)
def __make_request(self, session: IpmiServerSession, name: str, method_path: str, **kwargs): # type: ignore
def __make_request(self, session: IpmiServerSession, name: str, func_path: str, **kwargs): # type: ignore
async def runner(): # type: ignore
logger = get_logger(0)
credentials = self.__auth_manager.get_credentials(session.username.decode())
@ -169,8 +169,8 @@ class IpmiServer(BaseIpmiServer): # pylint: disable=too-many-instance-attribute
session.sockaddr[0], name, credentials.ipmi_user, credentials.kvmd_user)
try:
async with self.__kvmd.make_session(credentials.kvmd_user, credentials.kvmd_passwd) as kvmd_session:
method = functools.reduce(getattr, method_path.split("."), kvmd_session)
return (await method(**kwargs))
func = functools.reduce(getattr, func_path.split("."), kvmd_session)
return (await func(**kwargs))
except (aiohttp.ClientError, asyncio.TimeoutError) as err:
logger.error("[%s]: Can't perform request %s: %s", session.sockaddr[0], name, err)
raise

View File

@ -182,20 +182,20 @@ class _GpioOutput: # pylint: disable=too-many-instance-attributes
# =====
@aiotools.atomic
async def __run_action(self, wait: bool, name: str, method: Callable, *args: Any) -> None:
async def __run_action(self, wait: bool, name: str, func: Callable, *args: Any) -> None:
if wait:
async with self.__region:
await method(*args)
await func(*args)
else:
await aiotools.run_region_task(
f"Can't perform {name} of {self} or operation was not completed",
self.__region, self.__action_task_wrapper, name, method, *args,
self.__region, self.__action_task_wrapper, name, func, *args,
)
@aiotools.atomic
async def __action_task_wrapper(self, name: str, method: Callable, *args: Any) -> None:
async def __action_task_wrapper(self, name: str, func: Callable, *args: Any) -> None:
try:
return (await method(*args))
return (await func(*args))
except GpioDriverOfflineError:
get_logger(0).error("Can't perform %s of %s or operation was not completed: driver offline", name, self)