capturegraph.procedures.toolkits.control_flow
#
Control Flow Toolkit#
This toolkit provides high-level control flow utilities that simplify complex conditional logic and user interaction patterns. These functions combine multiple low-level control flow nodes into easy-to-use, reusable patterns.
Key Concepts#
All functions in this toolkit return Procedure[PVoid] to ensure proper
backfilling behavior during procedure execution. This design ensures that
cached procedures can properly reconstruct the selected execution path.
Available Functions#
Switch Case Operations#
switch_case()- General switch-case branching based on procedure valuesswitch_case_strings()- String-specific switch-case with string literals
User Selection#
user_select_procedure()- Present user with choices and execute selected procedurecached_user_select_procedure()- Same as above but caches user selection
Usage Examples#
import capturegraph.procedures as cgp
# Simple switch-case based on user input
user_choice = cgp.UserInputString(label="Enter mode: photo, video, text")
cgp.switch_case_strings(
case=user_choice,
cases={
"photo": cgp.CaptureImage(label="Take a photo").require(),
"video": cgp.CaptureVideo(label="Record video").require(),
"text": cgp.UserInputString(label="Enter note").require()
},
default=cgp.CaptureImage(label="Default photo").require()
)
# User selection with menu
cgp.user_select_procedure(
label="Choose capture type:",
options={
"Single Photo": cgp.CaptureImage().require(),
"Photo Series": cgp.CaptureImageSequence().require(),
"Location Data": cgp.CaptureLocation().require()
}
)
Note: Use .require() to convert data-returning procedures to PVoid for
switch case compatibility.
Modules:
| Name | Description |
|---|---|
switch_cases |
Switch Cases Toolkit |
user_select |
User Select Procedure Toolkit |