nbroad's picture
Update app.py
eee7e28 verified
raw
history blame
1.72 kB
import re
from fastapi import FastAPI, Request, Form
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse
import wandb
import os
app = FastAPI()
templates = Jinja2Templates(directory="./")
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
@app.post("/", response_class=HTMLResponse)
async def process_form(
request: Request,
token: str = Form(...),
entity: str = Form(...),
project: str = Form(...),
run_id: str = Form(...)
):
try:
# Set the token as an environment variable
os.environ["WANDB_API_KEY"] = token
# Login with the anonymous parameter set
wandb.login(key=token)
api = wandb.Api()
run_path = f"{entity}/{project}/runs/{run_id}"
run = api.run(run_path)
iframe_html = run.to_html()
# Modify the iframe height to be 100%
iframe_html = re.sub(r'height:\d+px', 'height:100%', iframe_html)
return templates.TemplateResponse(
"index.html",
{
"request": request,
"token": token,
"entity": entity,
"project": project,
"run_id": run_id,
"iframe_html": iframe_html
}
)
except Exception as e:
return templates.TemplateResponse(
"index.html",
{
"request": request,
"token": token,
"entity": entity,
"project": project,
"run_id": run_id,
"error": str(e)
}
)