def signsimp(expr, evaluate=None):
    if evaluate is None:
        evaluate = global_evaluate[0]
    expr = sympify(expr)
    if not isinstance(expr, Expr) or expr.is_Atom:
        return expr
    e = sub_post(sub_pre(expr))
    if not isinstance(e, Expr) or e.is_Atom:
        return e
    if e.is_Add:
        return e.func(*[signsimp(a) for a in e.args])
    if evaluate:
        e = e.xreplace({m: -(-m) for m in e.atoms(Mul) if -(-m) != m})
    return e
A horrible, horrible way to kill the server for Python 2.6 and
dataset/ETHPy150Open sympy/sympy/sympy/simplify/simplify.py/signsimp--crossover with--dataset/ETHPy150Open Eforcers/gae-flask-todo/lib/werkzeug/serving.py/WSGIRequestHandler.initiate_shutdown