Renamed wait plugin to sleep

This commit is contained in:
2021-04-11 13:57:56 +02:00
parent 7d30328e21
commit 203b513c9e
3 changed files with 16 additions and 16 deletions

View File

@@ -0,0 +1,56 @@
from typing import Dict
from .abstract_plugin import AbstractCommand, AbstractPlugin, AbstractCommandCompiler
import logging
import time
class SleepCommand(AbstractCommand):
def __init__(self, logger: logging.Logger, secs: float):
if type(secs) not in [float, int]:
raise ValueError("Secs must be float or int")
if secs <= 0:
raise ValueError("Secs must be a positive integer")
self._secs = secs
self._logger = logger
def execute(self):
self._logger.debug(f"Sleeping for {self._secs} seconds")
time.sleep(self._secs)
self._logger.debug(f"Slept for {self._secs} seconds")
def describe(self) -> dict:
return {
"command": "sleep",
"params": {
"secs": self._secs
}
}
class SleepCompiler(AbstractCommandCompiler):
def __init__(self, logger: logging.Logger):
self._logger = logger
def compile(self, secs: float) -> AbstractCommand:
return SleepCommand(self._logger, secs)
class SleepPlugin(AbstractPlugin):
plugin_name = "sleep"
def __init__(self):
self._logger = logging.getLogger("plugin").getChild("sleep")
def load_compilers(self) -> Dict[str, AbstractCommandCompiler]:
return {
"sleep": SleepCompiler(self._logger)
}
def close(self):
pass