REMEND / remend /util.py
udiboy1209's picture
Add REMEND python module
7145fd6
raw
history blame contribute delete
505 Bytes
from contextlib import contextmanager
import signal
import sympy as sp
def timeout_handler(signum, frame):
raise TimeoutError("Block timed out")
@contextmanager
def timeout(duration):
signal.signal(signal.SIGALRM, timeout_handler)
signal.alarm(duration)
try:
yield
finally:
signal.alarm(0)
class DecodeError(Exception):
pass
def sympy_expr_ok(expr):
atoms = expr.atoms()
return not (sp.I in atoms or sp.oo in atoms or sp.zoo in atoms or sp.nan in atoms)