counting / app.py
spagestic's picture
added more math tools
1599566
raw
history blame
4.73 kB
import gradio as gr
from utils.text_utils_interface import letter_counter_interface
from maths.elementary.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.middleschool.algebra_interface import (
solve_linear_equation_interface, evaluate_expression_interface,
solve_quadratic_interface, simplify_radical_interface, polynomial_interface # Assuming these
)
from maths.highschool.trigonometry_interface import (
trig_interface, inverse_trig_interface, solve_trig_equations_interface, trig_identities_interface # Assuming these
)
from maths.university.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.university.linear_algebra_interface import (
matrix_add_interface, matrix_subtract_interface, matrix_multiply_interface,
matrix_determinant_interface, matrix_inverse_interface,
vector_add_interface, vector_subtract_interface, vector_dot_product_interface,
vector_cross_product_interface, solve_linear_system_interface
)
from maths.university.differential_equations_interface import (
first_order_ode_interface, second_order_ode_interface
)
# Group interfaces by education level
# Note: I'm assuming previous subtasks correctly added GCD, LCM, Polynomial, Quadratic, etc. interfaces to their respective files.
# If not, this app.py will have import errors for those. I'm focusing on the current task's imports.
elementary_interfaces_list = [
add_interface, subtract_interface, multiply_interface, divide_interface,
gcd_interface, lcm_interface, is_prime_interface, # Added from subtask 1
array_calc_interface, array_calc_vis_interface
]
elementary_tab_names = [
"Addition", "Subtraction", "Multiplication", "Division",
"GCD", "LCM", "Prime Check", # Added from subtask 1
"Array Calculation", "Array Calc Viz"
]
middleschool_interfaces_list = [
solve_linear_equation_interface, evaluate_expression_interface,
solve_quadratic_interface, simplify_radical_interface, polynomial_interface # Added from subtask 2
]
middleschool_tab_names = [
"Linear Equations", "Evaluate Expressions",
"Quadratic Solver", "Radical Simplifier", "Polynomial Ops" # Added from subtask 2
]
highschool_interfaces_list = [
trig_interface, inverse_trig_interface,
solve_trig_equations_interface, trig_identities_interface # Added from subtask 3
]
highschool_tab_names = [
"Trig Functions", "Inverse Trig",
"Solve Trig Eqs", "Trig Identities" # Added from subtask 3
]
university_interfaces_list = [
derivative_interface, integral_interface,
limit_interface, taylor_series_interface, fourier_series_interface, # Added from subtask 4
partial_derivative_interface, multiple_integral_interface, # Added from subtask 4
matrix_add_interface, matrix_subtract_interface, matrix_multiply_interface,
matrix_determinant_interface, matrix_inverse_interface,
vector_add_interface, vector_subtract_interface, vector_dot_product_interface,
vector_cross_product_interface, solve_linear_system_interface,
first_order_ode_interface, second_order_ode_interface
]
university_tab_names = [
"Poly Derivatives", "Poly Integrals",
"Limits", "Taylor Series", "Fourier Series", # Added from subtask 4
"Partial Derivatives", "Multiple Integrals", # Added from subtask 4
"Matrix Add", "Matrix Subtract", "Matrix Multiply",
"Matrix Determinant", "Matrix Inverse",
"Vector Add", "Vector Subtract", "Vector Dot Product",
"Vector Cross Product", "Solve Linear System",
"1st Order ODE", "2nd Order ODE"
]
elementary_tab = gr.TabbedInterface(elementary_interfaces_list, elementary_tab_names, title="Elementary School Math")
middleschool_tab = gr.TabbedInterface(middleschool_interfaces_list, middleschool_tab_names, title="Middle School Math")
highschool_tab = gr.TabbedInterface(highschool_interfaces_list, highschool_tab_names, title="High School Math")
university_tab = gr.TabbedInterface(university_interfaces_list, university_tab_names, title="University Math")
# Main demo with tabs for each education level
demo = gr.TabbedInterface(
[letter_counter_interface, elementary_tab, middleschool_tab, highschool_tab, university_tab],
["Text Utils", "Elementary", "Middle School", "High School", "University"]
)
# Launch the Gradio app
if __name__ == "__main__":
demo.launch(mcp_server=True)