sec_interp.gui.adapters.validation_extractor module

Validation extraction adapter (Extract phase).

Bridges the QGIS object world and the QGIS-agnostic core validation layer by converting QgsVectorLayer/QgsRasterLayer objects (and project lookups) into detached LayerMetadata records.

sec_interp.gui.adapters.validation_extractor.build_validation_params(params: Any) → Any

Build a ValidationParams from a PreviewParams object.

Converts each QGIS layer reference held by params into detached LayerMetadata records.

Parameters:

params – A PreviewParams instance holding QGIS layer references.

Returns:

A ValidationParams with detached layer metadata.

sec_interp.gui.adapters.validation_extractor.extract_layer_metadata(layer: qgis.core.QgsMapLayer) → LayerMetadata

Extract detached metadata from a QGIS layer object.

sec_interp.gui.adapters.validation_extractor.extract_raster_metadata(layer: qgis.core.QgsRasterLayer) → LayerMetadata

Extract detached metadata from a raster layer.

sec_interp.gui.adapters.validation_extractor.extract_section_line_metrics(layer_ref: Any, feature_id: int | None = None) → tuple[int | None, float | None]

Return (vertex_count, length) of the section feature.

Best-effort and defensive (Extract phase): reads the section line geometry once so the core 2-point invariant can be validated with primitives. Returns (None, None) when the geometry cannot be read, so the core rule is simply skipped rather than failing the whole validation.

Parameters:
  • layer_ref – A layer object, ID, or name.

  • feature_id – Section feature id (first feature when None).

Returns:

Tuple of (vertex count, planar length). Both None when unavailable.

sec_interp.gui.adapters.validation_extractor.extract_vector_metadata(layer: qgis.core.QgsVectorLayer) → LayerMetadata

Extract detached metadata from a vector layer.

sec_interp.gui.adapters.validation_extractor.resolve_layer_metadata(layer_ref: Any) → LayerMetadata | None

Resolve a layer reference to detached metadata.

Parameters:

layer_ref – A layer object, ID, or name.

Returns:

A LayerMetadata, or None if the layer cannot be resolved.