fix docstring missing for nlp and event handler

This commit is contained in:
yanyongyu 2020-04-11 23:04:31 +08:00
parent a67fa5107c
commit 9fbd09331c
2 changed files with 11 additions and 4 deletions

View File

@ -1,5 +1,6 @@
import asyncio
import warnings
from functools import update_wrapper
from typing import Set, Iterable, Optional, Callable, Union, NamedTuple
from aiocqhttp import Event as CQEvent
@ -14,7 +15,8 @@ from .typing import CommandName_T, CommandArgs_T
class NLProcessor:
__slots__ = ('func', 'keywords', 'permission', 'only_to_me',
'only_short_message', 'allow_empty_message')
'only_short_message', 'allow_empty_message', '__name__', '__qualname__', '__doc__',
'__annotations__', '__dict__')
def __init__(self, *, func: Callable, keywords: Optional[Iterable],
permission: int, only_to_me: bool, only_short_message: bool,
@ -125,6 +127,7 @@ def on_natural_language(
only_short_message=only_short_message,
allow_empty_message=allow_empty_message)
NLPManager.add_nl_processor(nl_processor)
update_wrapper(wrapper=nl_processor, wrapped=func) # type: ignore
return nl_processor
if isinstance(keywords, Callable):

View File

@ -1,3 +1,4 @@
from functools import update_wrapper
from typing import List, Optional, Callable, Union
from aiocqhttp import Event as CQEvent
@ -11,7 +12,8 @@ from .session import BaseSession
_bus = EventBus()
class EventHandler:
__slots__ = ('events', 'func')
__slots__ = ('events', 'func', '__name__', '__qualname__', '__doc__',
'__annotations__', '__dict__')
def __init__(self, events: List[str], func: Callable):
self.events = events
@ -26,10 +28,12 @@ def _make_event_deco(post_type: str) -> Callable:
events_tmp = list(map(lambda x: f"{post_type}.{x}", [arg] + list(events)))
for e in events_tmp:
_bus.subscribe(e, func)
return EventHandler(events_tmp, func)
handler = EventHandler(events_tmp, func)
return update_wrapper(handler, func) # type: ignore
else:
_bus.subscribe(post_type, func)
return EventHandler([post_type], func)
handler = EventHandler([post_type], func)
return update_wrapper(handler, func) # type: ignore
if isinstance(arg, Callable):
return deco(arg) # type: ignore