Skip to content

Configuration

This module validates configuration for static PF and OPF generation.

validate_static_config

Validate and normalize a static PF or OPF configuration.

Parameters:

Name Type Description Default
config Mapping[str, Any]

Parsed configuration mapping.

required

Returns:

Type Description
Dict[str, Any]

Validated configuration with established defaults applied.

Raises:

Type Description
ValueError

If required fields are missing, values have invalid types or ranges, or unknown fields are present.

Source code in gridfm_datakit/config.py
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
def validate_static_config(config: Mapping[str, Any]) -> Dict[str, Any]:
    """Validate and normalize a static PF or OPF configuration.

    Args:
        config: Parsed configuration mapping.

    Returns:
        Validated configuration with established defaults applied.

    Raises:
        ValueError: If required fields are missing, values have invalid types or
            ranges, or unknown fields are present.
    """
    try:
        validated = _StaticGenerationConfig.model_validate(config)
    except ValidationError as exc:
        messages = []
        for error in exc.errors(include_url=False):
            location = _format_error_location(error["loc"])
            message = error["msg"].removeprefix("Value error, ")
            messages.append(f"- {location}: {message}")
        raise ValueError(
            "Invalid static configuration:\n" + "\n".join(messages),
        ) from exc

    issues = _check_static_config_rules(validated)
    if issues:
        messages = [f"- {issue.location}: {issue.message}" for issue in issues]
        raise ValueError(
            "Invalid static configuration:\n" + "\n".join(messages),
        )
    return validated.model_dump(exclude_none=True)