math-api / src /api /v1 /symbolic.py
False45's picture
feat: Restore 100% feature parity with legacy app
aa027f8
Raw History Blame Contribute Delete
1.36 kB
"""
Symbolic Math API — /api/v1/symbolic endpoints.
Provides direct access to SymPy operations.
"""
from fastapi import APIRouter
from pydantic import BaseModel
from backend.src.math.symbolic_engine import SymbolicMathEngine
router = APIRouter(prefix="/api/v1/symbolic", tags=["symbolic"])
class SymbolicRequest(BaseModel):
expression: str
operation: str
variable: str = "x"
@router.post("")
async def compute_symbolic(req: SymbolicRequest):
engine = SymbolicMathEngine()
if req.operation == "differentiate":
result = engine.differentiate(req.expression, req.variable)
elif req.operation == "integrate":
result = engine.integrate(req.expression, req.variable)
elif req.operation == "solve":
result = engine.solve_equation(req.expression, req.variable)
elif req.operation == "simplify":
# The method in SymbolicMathEngine is likely 'simplify_expression' or 'simplify'
# Let's use try-except or check methods
if hasattr(engine, 'simplify_expression'):
result = engine.simplify_expression(req.expression)
elif hasattr(engine, 'simplify'):
result = engine.simplify(req.expression)
else:
result = "Simplify not supported"
else:
return {"error": "Invalid operation"}
return {"result": result}