in src/latex2sympy2_extended/latex2sympy2.py [0:0]
def handle_integral(self, func):
if func.additive():
integrand = self.convert_add(func.additive())
elif func.frac():
integrand = self.convert_frac(func.frac())
else:
integrand = 1
int_var = None
if func.DIFFERENTIAL():
int_var = self.get_differential_var(func.DIFFERENTIAL())
else:
for sym in integrand.atoms(sympy.Symbol):
s = str(sym)
if len(s) > 1 and s[0] == 'd':
if s[1] == '\\':
int_var = self.create_symbol(s[2:], enforce_case=True)
else:
int_var = self.create_symbol(s[1:], enforce_case=True)
int_sym = sym
if int_var:
integrand = integrand.subs(int_sym, 1)
else:
# Assume dx by default
int_var = self.create_symbol('x', enforce_case=True)
if func.subexpr():
if func.subexpr().atom():
lower = self.convert_atom(func.subexpr().atom())
else:
lower = self.convert_expr(func.subexpr().expr())
if func.supexpr().atom():
upper = self.convert_atom(func.supexpr().atom())
else:
upper = self.convert_expr(func.supexpr().expr())
return sympy.Integral(integrand, (int_var, lower, upper))
else:
return sympy.Integral(integrand, int_var)