Source code for labgrid.util.timeout

import time

import attr


[docs]@attr.s(eq=False) class Timeout: """Reperents a timeout (as a deadline)""" timeout = attr.ib( default=120.0, validator=attr.validators.instance_of(float) )
[docs] def __attrs_post_init__(self): if self.timeout <= 0.0: raise ValueError("timeout must be positive") self._deadline = time.monotonic() + self.timeout
@property def remaining(self): result = self._deadline - time.monotonic() return result if result > 0.0 else 0.0 @property def expired(self): return self._deadline <= time.monotonic()