plexus.cli.procedure.parameter_parser module

YAML Parameter Parser for Procedures

Extracts configurable parameter values from procedure YAML code. This allows procedures to have dynamic parameters (like scorecard_id, score_id, score_version_id) that are stored within the YAML code rather than as fixed fields on the Procedure model.

class plexus.cli.procedure.parameter_parser.ParameterDefinition(name: str, type: str, label: str, required: bool = False, default: Any | None = None, options: List[str] | None = None)

Bases: object

Definition of a configurable parameter from YAML.

__init__(name: str, type: str, label: str, required: bool = False, default: Any | None = None, options: List[str] | None = None) None
default: Any | None = None
label: str
name: str
options: List[str] | None = None
required: bool = False
type: str
class plexus.cli.procedure.parameter_parser.ProcedureParameterParser

Bases: object

Parses configurable parameters from procedure YAML code.

Parameters are defined in the YAML configuration and their values are injected into the code using placeholder syntax like {{parameter_name}}.

Example YAML:
configurable_parameters:
  • name: scorecard_id type: scorecard_select label: Scorecard required: true

  • name: score_id type: score_select label: Score required: true

  • name: score_version_id type: score_version_select label: Score Version required: false

# Values injected as: scorecard: “{{scorecard_id}}” score: “{{score_id}}” version: “{{score_version_id}}”

static extract_parameter_values(yaml_code: str) Dict[str, Any]

Extract actual parameter values from YAML code by finding injected values.

This searches for patterns like: key: “{{parameter_name}}” or key: “actual_value” and attempts to extract the current values.

Args:

yaml_code: The procedure YAML configuration with values injected

Returns:

Dictionary mapping parameter names to their current values

static get_required_parameters(yaml_code: str) Dict[str, ParameterDefinition]

Get all required parameters that must have values.

Args:

yaml_code: The procedure YAML configuration

Returns:

Dictionary mapping parameter names to their definitions (required only)

static parse_parameter_definitions(yaml_code: str) List[ParameterDefinition]

Extract parameter definitions from YAML code.

Args:

yaml_code: The procedure YAML configuration

Returns:

List of ParameterDefinition objects

static validate_parameter_values(yaml_code: str, provided_values: Dict[str, Any] | None = None) tuple[bool, List[str]]

Validate that all required parameters have values.

Args:

yaml_code: The procedure YAML configuration provided_values: Optional dict of externally provided values to check

Returns:

Tuple of (is_valid, list_of_missing_parameters)