Skip to content

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 values
  • switch_case_strings() - String-specific switch-case with string literals

User Selection#

  • user_select_procedure() - Present user with choices and execute selected procedure
  • cached_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