Overview
The current Config schema and validation layer (in zea/internal/config/validation.py) is planned for a full redesign in a future PR to align it with the ProbeSpec/ScanSpec pattern already used elsewhere in the codebase.
Motivation
- The current schema-library-based validation approach is inconsistent with the
Spec-based validation used for ProbeSpec and ScanSpec.
- The
parameters section of the config should accept any parameter key, reflecting the same open/extensible design of the zea.Parameters class (which supports arbitrary custom pass-through parameters via _custom_params).
- Until the redesign,
ignore_extra_keys=True is used as a pragmatic workaround at both the parameters schema level and the top-level config_schema.
Planned changes
- Remove the current schema/validation infrastructure for
Config.
- Redesign validation in line with
ProbeSpec/ScanSpec (i.e., dataclass-based Spec subclasses).
- Ensure the
parameters group allows arbitrary keys, consistent with zea.Parameters.
References
/cc @tristan-deep
Overview
The current
Configschema and validation layer (inzea/internal/config/validation.py) is planned for a full redesign in a future PR to align it with theProbeSpec/ScanSpecpattern already used elsewhere in the codebase.Motivation
Spec-based validation used forProbeSpecandScanSpec.parameterssection of the config should accept any parameter key, reflecting the same open/extensible design of thezea.Parametersclass (which supports arbitrary custom pass-through parameters via_custom_params).ignore_extra_keys=Trueis used as a pragmatic workaround at both theparametersschema level and the top-levelconfig_schema.Planned changes
Config.ProbeSpec/ScanSpec(i.e., dataclass-basedSpecsubclasses).parametersgroup allows arbitrary keys, consistent withzea.Parameters.References
/cc @tristan-deep