mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-17 23:27:56 +02:00
64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""Simple test to check if basic subgraph functionality still works."""
|
|
|
|
import sys
|
|
import os
|
|
|
|
# Add the langgraph library to the path
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'libs', 'langgraph'))
|
|
|
|
from dataclasses import dataclass
|
|
from langgraph.graph.state import StateGraph
|
|
from langgraph.runtime import Runtime
|
|
from typing_extensions import TypedDict
|
|
|
|
|
|
@dataclass
|
|
class Context:
|
|
username: str
|
|
|
|
class State(TypedDict):
|
|
my_key: str
|
|
|
|
# Simple subgraph without runtime context
|
|
def simple_node(state: State):
|
|
return {'my_key': state['my_key'] + ' processed'}
|
|
|
|
subgraph_builder = StateGraph(State)
|
|
subgraph_builder.add_node('simple_node', simple_node)
|
|
subgraph_builder.set_entry_point('simple_node')
|
|
subgraph_builder.set_finish_point('simple_node')
|
|
subgraph = subgraph_builder.compile()
|
|
|
|
# Parent graph
|
|
def main_node(state: State):
|
|
return {'my_key': 'hello'}
|
|
|
|
builder = StateGraph(State)
|
|
builder.add_node('main_node', main_node)
|
|
builder.add_node('subgraph_node', subgraph)
|
|
builder.set_entry_point('main_node')
|
|
builder.add_edge('main_node', 'subgraph_node')
|
|
builder.set_finish_point('subgraph_node')
|
|
graph = builder.compile()
|
|
|
|
# Test basic functionality
|
|
try:
|
|
result = graph.invoke({'my_key': 'start'})
|
|
print(f"Basic subgraph test SUCCESS: {result}")
|
|
|
|
# Test graph drawing
|
|
try:
|
|
mermaid = graph.get_graph().draw_mermaid(with_styles=False)
|
|
print("Graph drawing SUCCESS")
|
|
print(f"Mermaid: {mermaid[:100]}...")
|
|
except Exception as e:
|
|
print(f"Graph drawing FAILED: {e}")
|
|
|
|
sys.exit(0)
|
|
except Exception as e:
|
|
print(f"Basic subgraph test FAILED: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|