Source code for seutil.TimeUtils

import signal
from contextlib import contextmanager


[docs]class TimeoutException(Exception): pass
[docs]class TimeUtils:
[docs] @classmethod @contextmanager def time_limit(cls, seconds): def signal_handler(signum, frame): raise TimeoutException("Timed out after {} seconds!".format(seconds)) signal.signal(signal.SIGALRM, signal_handler) signal.alarm(seconds) try: yield finally: signal.alarm(0)