| from fastapi import FastAPI |
| import duckdb |
| import traceback |
|
|
| app = FastAPI() |
|
|
| DB_FILE = "hf://datasets/warmifans/Userdata@main/users_data.db" |
|
|
| con = duckdb.connect() |
|
|
| try: |
| con.execute("INSTALL sqlite;") |
| con.execute("LOAD sqlite;") |
| con.execute(f"ATTACH '{DB_FILE}' AS db (TYPE sqlite)") |
| print("Database attached successfully.") |
| except Exception as e: |
| print(e) |
|
|
| @app.get("/") |
| def home(): |
| return { |
| "status": "API running" |
| } |
|
|
| @app.get("/id") |
| def search(id: str): |
| try: |
| df = con.execute( |
| """ |
| SELECT * |
| FROM db.users |
| WHERE id = ? |
| LIMIT 10 |
| """, |
| [id] |
| ).fetchdf() |
|
|
| if df.empty: |
| return { |
| "found": 0, |
| "data": [] |
| } |
|
|
| return { |
| "found": len(df), |
| "data": df.to_dict(orient="records") |
| } |
|
|
| except Exception as e: |
| traceback.print_exc() |
| return { |
| "error": str(e) |
| } |