sec_interp.core.validation.project_validator module

Validation for QGIS project state and layer presence.

class sec_interp.core.validation.project_validator.ProjectValidator

Bases: object

Orchestrates validation of project parameters independent of the GUI.

Level 2: Business Logic Validation. Uses ValidationContext to accumulate errors and verify cross-field dependencies.

static is_dem_complete(params: ValidationParams) bool

Check if DEM configuration is complete.

Parameters:

params – Parameters to check.

Returns:

True if valid.

Return type:

bool

static is_drillhole_complete(params: ValidationParams) bool

Check if required fields are filled if drillhole layers are selected.

Parameters:

params – The parameters to check.

Returns:

True if drillhole configuration is complete and consistent.

static is_geology_complete(params: ValidationParams) bool

Check if geology configuration is complete.

Parameters:

params – Parameters to check.

Returns:

True if valid.

Return type:

bool

static is_structure_complete(params: ValidationParams) bool

Check if structural configuration is complete.

Parameters:

params – Parameters to check.

Returns:

True if valid.

Return type:

bool

static validate_all(params: ValidationParams) bool

Perform a comprehensive validation of all project parameters.

static validate_preview_requirements(params: ValidationParams) bool

Validate only the minimum requirements needed to generate a preview.

class sec_interp.core.validation.project_validator.ValidationParams(raster_layer: str | QgsRasterLayer | None = None, band_number: int | None = None, line_layer: str | QgsVectorLayer | None = None, output_path: str = '', scale: float = 1.0, vert_exag: float = 1.0, buffer_dist: float = 0.0, outcrop_layer: str | QgsVectorLayer | None = None, outcrop_field: str | None = None, struct_layer: str | QgsVectorLayer | None = None, struct_dip_field: str | None = None, struct_strike_field: str | None = None, dip_scale_factor: float = 1.0, collar_layer: str | QgsVectorLayer | None = None, collar_id: str | None = None, collar_use_geom: bool = True, collar_x: str | None = None, collar_y: str | None = None, survey_layer: str | QgsVectorLayer | None = None, survey_id: str | None = None, survey_depth: str | None = None, survey_azim: str | None = None, survey_incl: str | None = None, interval_layer: str | QgsVectorLayer | None = None, interval_id: str | None = None, interval_from: str | None = None, interval_to: str | None = None, interval_lith: str | None = None)

Bases: object

Data container for all parameters that need cross-layer validation.

band_number: int | None = None
buffer_dist: float = 0.0
collar_id: str | None = None
collar_layer: str | QgsVectorLayer | None = None
collar_use_geom: bool = True
collar_x: str | None = None
collar_y: str | None = None
dip_scale_factor: float = 1.0
interval_from: str | None = None
interval_id: str | None = None
interval_layer: str | QgsVectorLayer | None = None
interval_lith: str | None = None
interval_to: str | None = None
line_layer: str | QgsVectorLayer | None = None
outcrop_field: str | None = None
outcrop_layer: str | QgsVectorLayer | None = None
output_path: str = ''
raster_layer: str | QgsRasterLayer | None = None
scale: float = 1.0
struct_dip_field: str | None = None
struct_layer: str | QgsVectorLayer | None = None
struct_strike_field: str | None = None
survey_azim: str | None = None
survey_depth: str | None = None
survey_id: str | None = None
survey_incl: str | None = None
survey_layer: str | QgsVectorLayer | None = None
vert_exag: float = 1.0