Something went wrong. Try again.
OR-1 dataflow CPU sketch
Something went wrong. Try again.
1.3 kB · 54 lines
Python
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455"""CLI entry point: python -m dfgraph path/to/file.dfasm [--port 8420]"""
import argparseimport sysimport threadingimport webbrowserimport timefrom pathlib import Path
import uvicorn
from dfgraph.server import create_app
def main() -> None: parser = argparse.ArgumentParser( prog="dfgraph", description="Visualise a dfasm dataflow program as an interactive graph.", ) parser.add_argument( "file", type=Path, help="Path to the .dfasm source file to visualise", ) parser.add_argument( "--port", type=int, default=8420, help="Port for the web server (default: 8420)", )
args = parser.parse_args()
if not args.file.exists(): print(f"Error: file not found: {args.file}", file=sys.stderr) sys.exit(1)
if not args.file.suffix == ".dfasm": print(f"Warning: expected .dfasm file, got: {args.file.suffix}", file=sys.stderr)
app = create_app(args.file.resolve())
def open_browser(): time.sleep(1) webbrowser.open(f"http://127.0.0.1:{args.port}", new=2)
thread = threading.Thread(target=open_browser, daemon=True) thread.start()
uvicorn.run(app, host="127.0.0.1", port=args.port, log_level="info")
if __name__ == "__main__": main()