sec_interp.core.models.settings_model module

Settings models using dataclasses for validation.

Provides a structured and validated way to handle plugin configurations.

class sec_interp.core.models.settings_model.DemSettings(layer_id: str = '', layer_name: str = '', band: int = 1, scale: float = 50000.0, vert_exag: float = 1.0)

Bases: object

Settings for the DEM page.

__post_init__() None

Validate settings after initialization.

band: int = 1
layer_id: str = ''
layer_name: str = ''
scale: float = 50000.0
vert_exag: float = 1.0
class sec_interp.core.models.settings_model.DrillholeSettings(collar_layer_id: str = '', collar_layer_name: str = '', collar_id_field: str = '', use_geom: bool = True, collar_x_field: str = '', collar_y_field: str = '', collar_z_field: str = '', collar_depth_field: str = '', survey_layer_id: str = '', survey_layer_name: str = '', survey_id_field: str = '', survey_depth_field: str = '', survey_azim_field: str = '', survey_incl_field: str = '', interval_layer_id: str = '', interval_layer_name: str = '', interval_id_field: str = '', interval_from_field: str = '', interval_to_field: str = '', interval_lith_field: str = '', export_3d_traces: bool = True, export_3d_intervals: bool = True, export_3d_original: bool = True, export_3d_projected: bool = False)

Bases: object

Settings for the Drillhole page.

collar_depth_field: str = ''
collar_id_field: str = ''
collar_layer_id: str = ''
collar_layer_name: str = ''
collar_x_field: str = ''
collar_y_field: str = ''
collar_z_field: str = ''
export_3d_intervals: bool = True
export_3d_original: bool = True
export_3d_projected: bool = False
export_3d_traces: bool = True
interval_from_field: str = ''
interval_id_field: str = ''
interval_layer_id: str = ''
interval_layer_name: str = ''
interval_lith_field: str = ''
interval_to_field: str = ''
survey_azim_field: str = ''
survey_depth_field: str = ''
survey_id_field: str = ''
survey_incl_field: str = ''
survey_layer_id: str = ''
survey_layer_name: str = ''
use_geom: bool = True
class sec_interp.core.models.settings_model.GeologySettings(layer_id: str = '', layer_name: str = '', field: str = '')

Bases: object

Settings for the Geology page.

field: str = ''
layer_id: str = ''
layer_name: str = ''
class sec_interp.core.models.settings_model.InterpretationSettings(inherit_geol: bool = True, inherit_drill: bool = True, custom_fields: list[dict[str, ~typing.Any]]=<factory>)

Bases: object

Settings for the Interpretation page.

custom_fields: list[dict[str, Any]]
inherit_drill: bool = True
inherit_geol: bool = True
class sec_interp.core.models.settings_model.PluginSettings(section: SectionSettings = <factory>, dem: DemSettings = <factory>, geology: GeologySettings = <factory>, structure: StructureSettings = <factory>, drillhole: DrillholeSettings = <factory>, interpretation: InterpretationSettings = <factory>, preview: PreviewSettings = <factory>, last_output_dir: str = '')

Bases: object

Main container for all plugin settings.

dem: DemSettings
drillhole: DrillholeSettings
classmethod from_dict(data: dict[str, Any]) PluginSettings

Create a PluginSettings instance from a dictionary with validation.

geology: GeologySettings
interpretation: InterpretationSettings
last_output_dir: str = ''
preview: PreviewSettings
section: SectionSettings
structure: StructureSettings
to_dict() dict[str, Any]

Convert settings to a nested dictionary for easier persistence/inspection.

class sec_interp.core.models.settings_model.PreviewSettings(show_topo: bool = True, show_geol: bool = True, show_struct: bool = True, show_drillholes: bool = True, show_interpretations: bool = True, show_legend: bool = True, auto_lod: bool = False, adaptive_sampling: bool = True, max_points: int = 10000)

Bases: object

Settings for the preview widget.

__post_init__() None

Validate settings after initialization.

adaptive_sampling: bool = True
auto_lod: bool = False
max_points: int = 10000
show_drillholes: bool = True
show_geol: bool = True
show_interpretations: bool = True
show_legend: bool = True
show_struct: bool = True
show_topo: bool = True
class sec_interp.core.models.settings_model.SectionSettings(layer_id: str = '', layer_name: str = '', buffer_dist: float = 100.0)

Bases: object

Settings for the Section page.

__post_init__() None

Validate settings after initialization.

buffer_dist: float = 100.0
layer_id: str = ''
layer_name: str = ''
class sec_interp.core.models.settings_model.StructureSettings(layer_id: str = '', layer_name: str = '', dip_field: str = '', strike_field: str = '', dip_scale_factor: float = 1.0)

Bases: object

Settings for the Structure page.

__post_init__() None

Validate settings after initialization.

dip_field: str = ''
dip_scale_factor: float = 1.0
layer_id: str = ''
layer_name: str = ''
strike_field: str = ''