import pygraphsp as gs
def main():
print("=== graph-sp Python Example: Simple Pipeline ===\n")
graph = gs.Graph()
def source_fn(inputs):
return {"output": 10}
def double_fn(inputs):
return {"output": inputs["input"] * 2}
def add_five_fn(inputs):
return {"output": inputs["input"] + 5}
print("Building graph...")
graph.add(
source_fn,
label="Source Node",
outputs=["output"]
)
graph.add(
double_fn,
label="Doubler Node",
inputs=["input"],
outputs=["output"]
)
graph.add(
add_five_fn,
label="Add Five Node",
inputs=["input"],
outputs=["output"]
)
graph.auto_connect()
print("✓ Graph built successfully!\n")
graph.validate()
print("✓ Graph is valid (no cycles detected)\n")
print("=== Executing Graph ===")
executor = gs.Executor()
result = executor.execute(graph)
print("✓ Execution completed successfully!\n")
print("=== Results ===")
source_output = result.get_output("source_fn", "output")
doubler_output = result.get_output("double_fn", "output")
adder_output = result.get_output("add_five_fn", "output")
print(f"Source output: {source_output}")
print(f"After doubling: {doubler_output}")
print(f"After adding 5: {adder_output}")
print(f"\nPipeline: 10 -> ×2 -> +5 = {adder_output}")
print("\n=== Example Complete ===")
if __name__ == "__main__":
main()