# graph

## Usage

`prism graph` is used to render your project's DAG as a website.

```
Usage: prism graph [-h] [--port PORT] [--no-browser] [--full-tb] [-l]

Visualize your Prism project as a DAG in an interactive UI

Options:
  -h, --help         show this help message and exit

Command Options:
  --port PORT        Port to use for HTTP request; default is 8080
  --no-browser       Overwrite default behavior and do not open a tab in the default web browser with the docs UI

General Options:
  --full-tb          Display the full traceback for errors in the project; default is False
  -l, --log-level    Log level, must be one of `info`, `warn`, `error`, or `debug`. Default is `info`
```

When you execute the `prism graph` command, Prism compiles the project, parses the `task.ref(...)` calls to create the DAG, and stores information about the compiled project in a JSON manifest. This manifest contains information on the DAG's topological sort and the source code for the different tasks, and it is used in the backend construction of the website.

## Example

Here's what the output looks like in Terminal:

```
$ prism graph
--------------------------------------------------------------------------------
<HH:MM:SS> | INFO  | Running with prism v0.1.9rc2...
<HH:MM:SS> | INFO  | Found project directory at /Users/my_first_project
<HH:MM:SS> | INFO  | RUNNING EVENT 'module DAG'.............................................................. [RUN]
<HH:MM:SS> | INFO  | FINISHED EVENT 'module DAG'............................................................. [DONE in 0.03s]
<HH:MM:SS> | INFO  | RUNNING EVENT 'populate docs build'..................................................... [RUN]
<HH:MM:SS> | INFO  | FINISHED EVENT 'populate docs build'.................................................... [DONE in 0.03s]
 
<HH:MM:SS> | INFO  | Serving docs at http://127.0.0.1:8080
<HH:MM:SS> | INFO  | Press Ctrl+C to exit
 
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /54968a39190c43d592b9.svg HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /ce188596011a8fa32931.png HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /manifest.json HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /311ea03002abadcdcaba.png HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /737ad70b3f2d3a9b5f6e.ico HTTP/1.1" 200 -
```
