from fastapi import FastAPI, Response import papermill as pm import io app = FastAPI() @app.get("/") def run_notebook(fruits: str): fruit_list = fruits.split(",") with open("fruits.txt", "w") as f: f.write("\n".join(fruit_list)) # Execute the notebook with Papermill pm.execute_notebook( "fruitchecker.ipynb", parameters={"fruits": fruit_list} ) output_path = "output.csv" # Extract the CSV result with open(output_path, "r") as f: csv_output = f.read() # Return as downloadable CSV return Response(content=csv_output, media_type="text/csv", headers={"Content-Disposition": "attachment; filename=fruits.csv"})