from fastapi import FastAPI from pydantic import BaseModel from typing import List, Set app = FastAPI() class SetOperationInput(BaseModel): set1: List[int] set2: List[int] set3: List[int] class UniverseInput(BaseModel): initial_value: int step: int num_steps: int class ComplementInput(BaseModel): universe: List[int] target_set: List[int] class InequalityInput(BaseModel): inequality: str @app.post("/set_operations/") def set_operations(input_data: SetOperationInput): set1 = set(input_data.set1) set2 = set(input_data.set2) set3 = set(input_data.set3) result = { "union": list(set1.union(set2, set3)), "intersection": list(set1.intersection(set2, set3)), "difference": list(set1.difference(set2, set3)), "symmetric_difference": list(set1.symmetric_difference(set2)) } return result @app.post("/generate_universe/") def generate_universe(input_data: UniverseInput): initial_value = input_data.initial_value step = input_data.step num_steps = input_data.num_steps universe_set = list(range(initial_value, initial_value + step * num_steps, step)) return {"universe": universe_set} @app.post("/complement_operation/") def complement_operation(input_data: ComplementInput): universe_set = set(input_data.universe) target_set = set(input_data.target_set) complement = list(universe_set.difference(target_set)) return {"complement": complement} @app.post("/inequality_solver/") def inequality_solver(input_data: InequalityInput): x = symbols('x') inequality = eval(input_data.inequality) solution = solve(inequality, x) return {"solution": str(solution)} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7860)