# 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.ExportSettings(default_format: str = 'Shapefile', naming_pattern: str = '{filename}_{profile}', overwrite_existing: bool = True)

  Bases: `object`

  Settings for the Export configurable options.

  default_format: str = 'Shapefile'
  naming_pattern: str = '{filename}_{profile}'
  overwrite_existing: 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>, export: ExportSettings = <factory>, last_output_dir: str = '')

  Bases: `object`

  Main container for all plugin settings.

  dem: DemSettings
  drillhole: DrillholeSettings
  export: ExportSettings
  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 = ''