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:
objectDefinition 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:
objectParses 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)