ChoosenElem2Num / app.py
OzoneAsai's picture
Update app.py
24153db verified
raw
history blame
1.82 kB
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)