graphtype
Type hinting for networkx Graphs
Installation
pip install graphtype
Usage
There are two parts in graphtype: the type-hinting part, and the validation. You can use type-hinting with the provided class to indicate attributes graphs should possess, and the validation decorator to additionally ensure the format is respected in every function call.
Type-Hinting Graph
from graphtype import Graph
def do_something_to_graph(g: Graph)
pass
Type-Hinting Graph Attributes GraphData
from graphtype import Graph, GraphData
def do_something_to_graph(g: Graph[GraphData["name"]])
pass
# Each node must have a "name" attribute
def do_something_to_graph(g: Graph[GraphData["name": str]])
pass
# type(g.graph["name"]) == str must be True
Type-Hinting Graph Attributes NodeData
from graphtype import Graph, NodeData
def do_something_to_graph(g: Graph[NodeData["feature"]])
pass
# Each node must have a "feature" attribute
def do_something_to_graph(g: Graph[NodeData["feature": np.ndarray]])
pass
# for n, d in g.nodes(data=True):
# type(d["feature"]) == np.ndarray must be True
Type-Hinting Graph Attributes NodeData
from graphtype import Graph, EdgeData
def do_something_to_graph(g: Graph[EdgeData["feature"]])
pass
# Each edge must have a "feature" attribute
def do_something_to_graph(g: Graph[EdgeData["feature": pd.DataFrame]])
pass
# for u, v, d in g.edges(data=True):
# type(d["feature"]) == pd.DataFrame must be True
Enforcing: @validate
The @validate decorator ensures that input Graphs have the right format when the function is called, otherwise raises TypeError.
@validate
def func(g: Graph[NodeData["feature1": pd.DataFrame, "feature2": int],
EdgeData["length": float, "counts": np.ndarray],
GraphData["name": str]],
h: Graph[NodeData["feature1": pd.DataFrame, "feature2": int]],
):
pass
This package is heavily inspired by Dataenforce.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graphtype-0.1.0.tar.gz
(9.1 kB
view details)
File details
Details for the file graphtype-0.1.0.tar.gz.
File metadata
- Download URL: graphtype-0.1.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.1 CPython/3.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4a68ca80b97a306451458a6297acaa4bf196cc39d3d2603bdc1365ffcb8d330
|
|
| MD5 |
a37cc45b201c6c936ca1d2c9e6486400
|
|
| BLAKE2b-256 |
0456e6703057114e1d3e5cb8626032ab68cfdab039f64174e94f8c1c8d0acb16
|