venv added, updated
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Callable, Optional, TypeVar, Union
|
||||
|
||||
from .disposable import DisposableBase
|
||||
from .scheduler import RelativeTime, ScheduledAction
|
||||
|
||||
_TState = TypeVar("_TState") # Can be anything
|
||||
|
||||
ScheduledPeriodicAction = Callable[[Optional[_TState]], Optional[_TState]]
|
||||
ScheduledSingleOrPeriodicAction = Union[
|
||||
ScheduledAction[_TState], ScheduledPeriodicAction[_TState]
|
||||
]
|
||||
|
||||
|
||||
class PeriodicSchedulerBase(ABC):
|
||||
"""PeriodicScheduler abstract base class."""
|
||||
|
||||
__slots__ = ()
|
||||
|
||||
@abstractmethod
|
||||
def schedule_periodic(
|
||||
self,
|
||||
period: RelativeTime,
|
||||
action: ScheduledPeriodicAction[_TState],
|
||||
state: Optional[_TState] = None,
|
||||
) -> DisposableBase:
|
||||
"""Schedules a periodic piece of work.
|
||||
|
||||
Args:
|
||||
period: Period in seconds or timedelta for running the
|
||||
work periodically.
|
||||
action: Action to be executed.
|
||||
state: [Optional] Initial state passed to the action upon
|
||||
the first iteration.
|
||||
|
||||
Returns:
|
||||
The disposable object used to cancel the scheduled
|
||||
recurring action (best effort).
|
||||
"""
|
||||
|
||||
return NotImplemented
|
||||
|
||||
|
||||
__all__ = [
|
||||
"PeriodicSchedulerBase",
|
||||
"ScheduledPeriodicAction",
|
||||
"ScheduledSingleOrPeriodicAction",
|
||||
"RelativeTime",
|
||||
]
|
||||
Reference in New Issue
Block a user