Type DelayedEvent, also in Core.

This commit is contained in:
Emmanuel Gil Peyrot 2018-08-15 15:51:31 +02:00
parent edbbf759ce
commit a6c5ac486b
2 changed files with 9 additions and 7 deletions

View file

@ -41,6 +41,7 @@ from poezio.roster import roster
from poezio.size_manager import SizeManager from poezio.size_manager import SizeManager
from poezio.user import User from poezio.user import User
from poezio.text_buffer import TextBuffer from poezio.text_buffer import TextBuffer
from poezio.timed_events import DelayedEvent
from poezio.theming import get_theme from poezio.theming import get_theme
from poezio import keyboard, xdg from poezio import keyboard, xdg
@ -776,11 +777,11 @@ class Core:
########################## TImed Events ####################################### ########################## TImed Events #######################################
def remove_timed_event(self, event): def remove_timed_event(self, event: DelayedEvent) -> None:
"""Remove an existing timed event""" """Remove an existing timed event"""
event.handler.cancel() event.handler.cancel()
def add_timed_event(self, event): def add_timed_event(self, event: DelayedEvent) -> None:
"""Add a new timed event""" """Add a new timed event"""
event.handler = asyncio.get_event_loop().call_later( event.handler = asyncio.get_event_loop().call_later(
event.delay, event.callback, *event.args) event.delay, event.callback, *event.args)

View file

@ -13,7 +13,8 @@ Once created, they must be added to the list of checked events with
""" """
from datetime import datetime from datetime import datetime
from typing import Callable, Union from asyncio import Handle
from typing import Callable, Union, Optional, Tuple, Any
class DelayedEvent: class DelayedEvent:
@ -31,11 +32,11 @@ class DelayedEvent:
:param function callback: The handler that will be executed. :param function callback: The handler that will be executed.
:param args: Optional arguments passed to the handler. :param args: Optional arguments passed to the handler.
""" """
self.callback = callback self.callback = callback # type: Callable
self.args = args self.args = args # type: Tuple[Any, ...]
self.delay = delay self.delay = delay # type: Union[int, float]
# An asyncio handler, as returned by call_later() or call_at() # An asyncio handler, as returned by call_later() or call_at()
self.handler = None self.handler = None # type: Optional[Handle]
class TimedEvent(DelayedEvent): class TimedEvent(DelayedEvent):