Update app.py
Browse files
app.py
CHANGED
|
@@ -62,7 +62,7 @@ def clean_latex2(latex):
|
|
| 62 |
latex = re.sub(r'\\text\s*\{.*?\}', '', latex)
|
| 63 |
latex = re.sub(r'\\mathbf\s*\{.*?\}', '', latex)
|
| 64 |
latex = re.sub(r'\\mathrm\s*\{.*?\}', '', latex)
|
| 65 |
-
latex = re.sub(r'\\[a-zA-Z]+\s*', '', latex) #
|
| 66 |
|
| 67 |
latex = latex.replace('{', '').replace('}', '')
|
| 68 |
latex = latex.replace('β', '-').replace('β', '-')
|
|
@@ -75,9 +75,9 @@ def clean_latex2(latex):
|
|
| 75 |
for wrong, right in replacements.items():
|
| 76 |
latex = re.sub(wrong, right, latex)
|
| 77 |
|
| 78 |
-
# Remove remaining junk
|
| 79 |
-
latex = re.sub(r'[^0-9a-zA-Z=+\-*/().,\n ]', '', latex)
|
| 80 |
latex = latex.strip().rstrip(',')
|
|
|
|
|
|
|
| 81 |
|
| 82 |
return latex
|
| 83 |
|
|
@@ -143,7 +143,18 @@ def solve_system_of_equations(image):
|
|
| 143 |
|
| 144 |
raw_latex = raw_latex.replace("\n", " ")
|
| 145 |
equations = re.split(r'[;,]', raw_latex)
|
| 146 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
|
| 148 |
sympy_eqs = []
|
| 149 |
symbols = set()
|
|
@@ -170,6 +181,7 @@ def solve_system_of_equations(image):
|
|
| 170 |
except Exception as e:
|
| 171 |
return f"β Error: {str(e)}"
|
| 172 |
|
|
|
|
| 173 |
# === UI ===
|
| 174 |
with gr.Blocks() as demo:
|
| 175 |
with gr.Tab("πΌοΈ Parse from Image"):
|
|
|
|
| 62 |
latex = re.sub(r'\\text\s*\{.*?\}', '', latex)
|
| 63 |
latex = re.sub(r'\\mathbf\s*\{.*?\}', '', latex)
|
| 64 |
latex = re.sub(r'\\mathrm\s*\{.*?\}', '', latex)
|
| 65 |
+
latex = re.sub(r'\\[a-zA-Z]+\s*', '', latex) # kills \cdot, \nabla, etc.
|
| 66 |
|
| 67 |
latex = latex.replace('{', '').replace('}', '')
|
| 68 |
latex = latex.replace('β', '-').replace('β', '-')
|
|
|
|
| 75 |
for wrong, right in replacements.items():
|
| 76 |
latex = re.sub(wrong, right, latex)
|
| 77 |
|
|
|
|
|
|
|
| 78 |
latex = latex.strip().rstrip(',')
|
| 79 |
+
latex = re.sub(r'(?<![=<>])=(?![=<>])', ' = ', latex) # normalize =
|
| 80 |
+
latex = re.sub(r'[^0-9a-zA-Z=+\-*/().,\n ]', '', latex)
|
| 81 |
|
| 82 |
return latex
|
| 83 |
|
|
|
|
| 143 |
|
| 144 |
raw_latex = raw_latex.replace("\n", " ")
|
| 145 |
equations = re.split(r'[;,]', raw_latex)
|
| 146 |
+
|
| 147 |
+
cleaned_equations = []
|
| 148 |
+
for eq in equations:
|
| 149 |
+
cleaned = clean_latex2(eq)
|
| 150 |
+
cleaned = re.sub(r'(?<![=<>])=(?![=<>])', ' = ', cleaned)
|
| 151 |
+
if '=' in cleaned:
|
| 152 |
+
try:
|
| 153 |
+
parsed = parse_latex(cleaned)
|
| 154 |
+
if isinstance(parsed, sp.Equality):
|
| 155 |
+
cleaned_equations.append(cleaned)
|
| 156 |
+
except Exception:
|
| 157 |
+
continue
|
| 158 |
|
| 159 |
sympy_eqs = []
|
| 160 |
symbols = set()
|
|
|
|
| 181 |
except Exception as e:
|
| 182 |
return f"β Error: {str(e)}"
|
| 183 |
|
| 184 |
+
|
| 185 |
# === UI ===
|
| 186 |
with gr.Blocks() as demo:
|
| 187 |
with gr.Tab("πΌοΈ Parse from Image"):
|