lynxkite / main.py
darabos's picture
Partially hook up backend to visualization.
af53b62
raw
history blame
882 Bytes
from typing import Union
import fastapi
import pydantic
import networkx as nx
class Position(pydantic.BaseModel):
x: float
y: float
class WorkspaceNodeData(pydantic.BaseModel):
title: str
params: dict
class WorkspaceNode(pydantic.BaseModel):
id: str
type: str
data: WorkspaceNodeData
position: Position
class WorkspaceEdge(pydantic.BaseModel):
id: str
source: str
target: str
class Workspace(pydantic.BaseModel):
nodes: list[WorkspaceNode]
edges: list[WorkspaceEdge]
app = fastapi.FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
@app.post("/api/save")
def save(ws: Workspace):
print(ws)
G = nx.scale_free_graph(4)
return {"graph": list(nx.to_edgelist(G))}