21 lines
758 B
Python
21 lines
758 B
Python
from dataclasses import dataclass, field
|
|
from datetime import datetime, timedelta
|
|
from typing import Optional
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class WaitParam:
|
|
DEFAULT_TIMEOUT: timedelta = field(default=timedelta(seconds=120), init=False)
|
|
DEFAULT_POLL_INTERVAL: timedelta = field(default=timedelta(seconds=5), init=False)
|
|
|
|
timeout: timedelta = DEFAULT_TIMEOUT
|
|
poll_interval: timedelta = DEFAULT_POLL_INTERVAL
|
|
|
|
def __post_init__(self):
|
|
if self.timeout is None:
|
|
object.__setattr__(self, 'timeout', self.DEFAULT_TIMEOUT)
|
|
if self.poll_interval is None:
|
|
object.__setattr__(self, 'poll_interval', self.DEFAULT_POLL_INTERVAL)
|
|
|
|
def get_deadline(self) -> datetime:
|
|
return datetime.now() + self.timeout
|