jumeaux/addons/did_challenge/sleep.py
# -*- coding:utf-8 -*-
import random
import time
from owlmixin import OwlMixin
from jumeaux.addons.did_challenge import DidChallengeExecutor
from jumeaux.logger import Logger
from jumeaux.models import DidChallengeAddOnPayload, DidChallengeAddOnReference
logger: Logger = Logger(__name__)
class Config(OwlMixin):
max: float
min: float
class Executor(DidChallengeExecutor):
def __init__(self, config: dict):
self.config: Config = Config.from_dict(config or {})
def exec(
self, payload: DidChallengeAddOnPayload, referenece: DidChallengeAddOnReference
) -> DidChallengeAddOnPayload:
sec: float = random.uniform(self.config.min, self.config.max)
logger.info_lv3(f"Sleep: {sec:.2f} sec")
time.sleep(sec)
return payload