Spaces:
Runtime error
Runtime error
import gradio as gr | |
from maths.arithmetic.arithmetic_interface import ( | |
add_interface, subtract_interface, multiply_interface, divide_interface, | |
array_calc_interface, array_calc_vis_interface, | |
gcd_interface, lcm_interface, is_prime_interface # Assuming these were added earlier from a subtask | |
) | |
from maths.algebra.algebra_interface import solve_linear_equation_interface | |
from maths.algebra.algebra_tabs import algebra_tab | |
from maths.geometry.trigonometry_interface import ( | |
trig_interface, inverse_trig_interface, solve_trig_equations_interface, trig_identities_interface # Assuming these | |
) | |
from maths.calculus.calculus_interface import ( | |
derivative_interface, integral_interface, | |
limit_interface, taylor_series_interface, fourier_series_interface, # Assuming these | |
partial_derivative_interface, multiple_integral_interface # Assuming these | |
) | |
from maths.matrices.matrices_interface import ( | |
matrix_add_interface, matrix_subtract_interface, matrix_multiply_interface, | |
matrix_determinant_interface, matrix_inverse_interface | |
) | |
from maths.vectors.vectors_interface import ( | |
vector_add_interface, vector_subtract_interface, | |
vector_dot_product_interface, vector_cross_product_interface | |
) | |
from maths.differential_equations.differential_equations_interface import ( | |
first_order_ode_interface, second_order_ode_interface | |
) | |
from maths.operations_research.operations_research_interface import ( | |
branch_and_bound_interface, dual_simplex_interface, simplex_solver_interface | |
) | |
from maths.equations.equations_interface import ( | |
equations_app, solve_quadratic_interface # equations_app is the tabbed interface, solve_quadratic_interface for direct use | |
) | |
# Categorize interfaces by topics | |
arithmetic_interfaces_list = [ | |
add_interface, subtract_interface, multiply_interface, | |
divide_interface, array_calc_interface, array_calc_vis_interface | |
] | |
arithmetic_tab_names = [ | |
"Addition", "Subtraction", "Multiplication", "Division", | |
"Array Calculation", "Array Calculation Viz" | |
] | |
number_theory_interfaces_list = [gcd_interface, lcm_interface, is_prime_interface] | |
number_theory_tab_names = ["GCD", "LCM", "Prime Check"] | |
algebra_tab = gr.TabbedInterface( | |
algebra_interfaces_list, | |
algebra_tab_names, | |
title="Algebra" | |
) | |
equations_interfaces_list = [ | |
solve_linear_equation_interface, solve_quadratic_interface, # keep direct quadratic solver for single tab | |
solve_trig_equations_interface | |
] | |
equations_tab_names = [ | |
"Linear Equation Solver", "Quadratic Solver", | |
"Trigonometric Equation Solver" | |
] | |
geometry_interfaces_list = [trig_interface, inverse_trig_interface, trig_identities_interface] | |
geometry_tab_names = ["Trig Functions", "Inverse Trig", "Trig Identities"] | |
calculus_interfaces_list = [ | |
derivative_interface, integral_interface, limit_interface, | |
taylor_series_interface, fourier_series_interface, | |
partial_derivative_interface, multiple_integral_interface | |
] | |
calculus_tab_names = [ | |
"Derivative", "Integral", "Limits", | |
"Taylor Series", "Fourier Series", | |
"Partial Derivatives", "Multiple Integrals" | |
] | |
differential_equations_interfaces_list = [first_order_ode_interface, second_order_ode_interface] | |
differential_equations_tab_names = ["First Order ODE", "Second Order ODE"] | |
matrices_interfaces_list = [ | |
matrix_add_interface, matrix_subtract_interface, | |
matrix_multiply_interface, matrix_determinant_interface, | |
matrix_inverse_interface | |
] | |
matrices_tab_names = [ | |
"Matrix Addition", "Matrix Subtraction", "Matrix Multiplication", | |
"Matrix Determinant", "Matrix Inverse" | |
] | |
vectors_interfaces_list = [ | |
vector_add_interface, vector_subtract_interface, | |
vector_dot_product_interface, vector_cross_product_interface | |
] | |
vectors_tab_names = ["Vector Addition", "Vector Subtraction", "Dot Product", "Cross Product"] | |
operations_research_interfaces_list = [ | |
branch_and_bound_interface, dual_simplex_interface, simplex_solver_interface | |
] | |
operations_research_tab_names = ["Branch & Bound", "Dual Simplex", "Simplex Steps"] | |
# Create topic-based tabbed interfaces | |
arithmetic_tab = gr.TabbedInterface(arithmetic_interfaces_list, arithmetic_tab_names, title="Arithmetic") | |
number_theory_tab = gr.TabbedInterface(number_theory_interfaces_list, number_theory_tab_names, title="Number Theory") | |
equations_tab = equations_app # Only include the composite equations_app in the equations tab to avoid duplicate Gradio blocks | |
geometry_tab = gr.TabbedInterface(geometry_interfaces_list, geometry_tab_names, title="Geometry") | |
calculus_tab = gr.TabbedInterface(calculus_interfaces_list, calculus_tab_names, title="Calculus") | |
differential_equations_tab = gr.TabbedInterface(differential_equations_interfaces_list, differential_equations_tab_names, title="Differential Equations") | |
matrices_tab = gr.TabbedInterface(matrices_interfaces_list, matrices_tab_names, title="Matrices") | |
vectors_tab = gr.TabbedInterface(vectors_interfaces_list, vectors_tab_names, title="Vectors") | |
operations_research_tab = gr.TabbedInterface(operations_research_interfaces_list, operations_research_tab_names, title="Operations Research") | |
# Main demo with topic tabs | |
demo = gr.TabbedInterface( | |
[ | |
arithmetic_tab, number_theory_tab, algebra_tab, | |
equations_tab, geometry_tab, calculus_tab, differential_equations_tab, | |
matrices_tab, vectors_tab, operations_research_tab | |
], | |
[ | |
"Arithmetic", "Number Theory", "Algebra", | |
"Equations", "Geometry", "Calculus", "Differential Equations", | |
"Matrices", "Vectors", "Operations Research" | |
] | |
) | |
# Launch the Gradio app | |
if __name__ == "__main__": | |
demo.launch(mcp_server=True) |