A pydantically typed, lightweight graph framework for Python that combines features from Langgraph with static type security.
A community collection of nodes will be available here.
Edgy Graph is a framework for building and executing graph-based pipelines. It supports:
- Pydantic Typing
Built on Pydantic and Generics for complete static type safety. - Inheritance and Variance:
Easily extend and specialize state and node classes. - Parallel Task Processing:
Multiple nodes can run simultaneously - Dual State Management:
- State with automatic change extraction and conflict detection
- Shared state accessible by all nodes, protected via explicit locking
- Flexible Routing:
Define simple node-to-node edges or dynamic routing based on functions. - Streaming:
A standardized interface for streaming data between nodes.
pip install edgygraphPython 3.13+ is required
from edgygraph import State, Shared, Node, START, END, Graph
import asyncioclass MyState(State):
capslock: bool = Falseclass MyNode(Node[MyState, Shared]):
async def run(self, state: MyState, shared: Shared) -> None:
if state.capslock:
print("HELLO WORLD!")
else:
print("Hello World!")state = MyState(capslock=True)
shared = Shared()
node = MyNode()Graph[MyState, Shared](
edges=[
(
START,
node
),
(
node,
END
)
]
)asyncio.run(graph(state, shared))More examples can be found in the examples folder