don't require optional sympy