27 lines
749 B
Python
27 lines
749 B
Python
"""AsyncFlow implementation for recipe finder."""
|
|
|
|
from pocketflow import AsyncFlow, Node
|
|
from nodes import FetchRecipes, SuggestRecipe, GetApproval
|
|
|
|
class NoOp(Node):
|
|
"""Node that does nothing, used to properly end the flow."""
|
|
pass
|
|
|
|
def create_flow():
|
|
"""Create and connect nodes into a flow."""
|
|
|
|
# Create nodes
|
|
fetch = FetchRecipes()
|
|
suggest = SuggestRecipe()
|
|
approve = GetApproval()
|
|
end = NoOp()
|
|
|
|
# Connect nodes
|
|
fetch - "suggest" >> suggest
|
|
suggest - "approve" >> approve
|
|
approve - "retry" >> suggest # Loop back for another suggestion
|
|
approve - "accept" >> end # Properly end the flow
|
|
|
|
# Create flow starting with fetch
|
|
flow = AsyncFlow(start=fetch)
|
|
return flow |