Metadata-Version: 2.1
Name: rich-graph
Version: 0.0.2
Summary: UNKNOWN
Home-page: https://github.com/amsifontes/rich_graph
Author: Anthony Sifontes
Author-email: anthony.sifontes@gmail.com
Maintainer: Anthony Sifontes
Maintainer-email: anthony.sifontes@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pytest (>=3.7) ; extra == 'dev'
Requires-Dist: twine (>=4.0) ; extra == 'dev'

# Graph Utils

### Important:

**This library is under active development and should be considered a work in progress with no guarantees of performance, correctness, or funcationality. Just don't use it yet, it'll be great when it's ready, I promise 😉**

---

Hello! Meet `rich_graph` - a graph library that loves you and just wants you to be happy.

This library provides utility functions and pre-formed data structures for use when needing to represent data as a graph, with special attention paid to making those graphs easy to grok mentally by supporting the presence of arbitrary attributes on both nodes and edges. These attributes can be found in the node/edge's `meta` attribute, e.g. `Node.meta = {"arbitrary": "attribute", "foo": "bar"}`

Go forth and enjoy, and show some love by starring the repo on GitHub. Issues and Contributions are welcome!

## Installation

Run the following to install:

```bash
pip install rich_graph
```

## Example Usage

```python
from rich_graph import structs, traversal

# Create a simple graph with 3 nodes and edges connecting them
graph = Graph()

node1 = Node(1)
node2 = Node(2)
node3 = Node(3)

graph.add_node(node1)
graph.add_node(node2)
graph.add_node(node3)

graph.add_edge(node1, node2)
graph.add_edge(node1, node3)
graph.add_edge(node2, node3)
```

## Development

To install rich_graph, along with the tools and dependencies required to develop and run tests, run the following in your virtual environment:

```bash
pip install -e .[dev]
```


