📊 QGIS Plugin Analysis: sec_interp

Generated on: 2026-02-15 15:00:55

Module Stability23.8/100
Maintainability69.9/100
QGIS Compliance0.0/100

🛠️ QGIS Standard Findings

medium - Untranslated user-facing string: 'source'. Use self.tr().
core/data_cache.py:59
medium - Untranslated user-facing string: 'No topographic profile data was generated.'. Use self.tr().
core/controller.py:157
medium - Untranslated user-facing string: 'Geology: No intersections'. Use self.tr().
core/controller.py:197
medium - Untranslated user-facing string: 'struct'. Use self.tr().
core/controller.py:256
medium - Untranslated user-facing string: 'section'. Use self.tr().
core/config.py:55
medium - Untranslated user-facing string: 'geology'. Use self.tr().
core/config.py:71
medium - Untranslated user-facing string: 'structure'. Use self.tr().
core/config.py:78
medium - Untranslated user-facing string: 'drillhole'. Use self.tr().
core/config.py:87
medium - Untranslated user-facing string: 'interpretation'. Use self.tr().
core/config.py:123
medium - Untranslated user-facing string: 'preview'. Use self.tr().
core/config.py:130
medium - Untranslated user-facing string: 'Failed to validate settings during load. Using defaults.'. Use self.tr().
core/config.py:146
medium - Module is missing a docstring (PEP 257).
resources/resources.py:1
Module: resources/resources.py
medium - Public function 'qInitResources' is missing a docstring.
resources/resources.py:167
def qInitResources...
medium - Public function 'qCleanupResources' is missing a docstring.
resources/resources.py:173
def qCleanupResources...
medium - Untranslated user-facing string: '&Sec Interp'. Use self.tr().
sec_interp_plugin.py:93
medium - Untranslated user-facing string: 'Sec Interp'. Use self.tr().
sec_interp_plugin.py:95
medium - Untranslated user-facing string: 'Geological data extraction'. Use self.tr().
sec_interp_plugin.py:184
medium - Untranslated user-facing string: '&Sec Interp'. Use self.tr().
sec_interp_plugin.py:195
medium - Untranslated user-facing string: 'Select a raster layer'. Use self.tr().
sec_interp_plugin.py:252
medium - Untranslated user-facing string: 'Select a crossline layer'. Use self.tr().
sec_interp_plugin.py:255
medium - Untranslated user-facing string: 'Configuration Error'. Use self.tr().
sec_interp_plugin.py:293
medium - Untranslated user-facing string: 'Input Processing Error'. Use self.tr().
sec_interp_plugin.py:296
medium - Untranslated user-facing string: 'struct'. Use self.tr().
sec_interp_plugin.py:338
medium - Untranslated user-facing string: 'struct'. Use self.tr().
sec_interp_plugin.py:374
medium - Untranslated user-facing string: 'interp'. Use self.tr().
sec_interp_plugin.py:380
medium - Untranslated user-facing string: 'performance'. Use self.tr().
core/performance_metrics.py:200
medium - Untranslated user-facing string: '%Y-%m-%d %H:%M:%S'. Use self.tr().
core/performance_metrics.py:243
medium - Untranslated user-facing string: 'section'. Use self.tr().
gui/main_dialog_status.py:39
medium - Untranslated user-facing string: 'geology'. Use self.tr().
gui/main_dialog_status.py:47
medium - Untranslated user-facing string: 'structure'. Use self.tr().
gui/main_dialog_status.py:52
medium - Untranslated user-facing string: 'drillhole'. Use self.tr().
gui/main_dialog_status.py:57
medium - Untranslated user-facing string: 'Raster layer selected'. Use self.tr().
gui/main_dialog_status.py:94
medium - Untranslated user-facing string: 'section'. Use self.tr().
gui/main_dialog_status.py:103
medium - Untranslated user-facing string: 'Section line selected'. Use self.tr().
gui/main_dialog_status.py:105
medium - Untranslated user-facing string: 'section'. Use self.tr().
gui/main_dialog_status.py:108
medium - Module is missing a docstring (PEP 257).
tests/test_translation_loading.py:1
Module: tests/test_translation_loading.py
medium - Public class 'TestTranslationLoading' is missing a docstring.
tests/test_translation_loading.py:13
class TestTranslationLoading...
medium - Public function 'setUp' is missing a docstring.
tests/test_translation_loading.py:15
def setUp...
medium - Function 'test_translation_loads_es' has no type annotations.
tests/test_translation_loading.py:25
def test_translation_loads_es...
medium - Function 'test_translation_loads_fr' has no type annotations.
tests/test_translation_loading.py:61
def test_translation_loads_fr...
medium - Function 'test_translation_loads_pt_br' has no type annotations.
tests/test_translation_loading.py:97
def test_translation_loads_pt_br...
medium - Function 'test_translation_loads_de' has no type annotations.
tests/test_translation_loading.py:133
def test_translation_loads_de...
medium - Function 'test_translation_loads_default_on_fail' has no type annotations.
tests/test_translation_loading.py:168
def test_translation_loads_default_on_fail...
medium - Function 'test_translation_loads_ru' has no type annotations.
tests/test_translation_loading.py:195
def test_translation_loads_ru...
medium - Untranslated user-facing string: 'translator'. Use self.tr().
tests/test_translation_loading.py:46
medium - Untranslated user-facing string: 'translator'. Use self.tr().
tests/test_translation_loading.py:82
medium - Untranslated user-facing string: 'translator'. Use self.tr().
tests/test_translation_loading.py:118
medium - Untranslated user-facing string: 'translator'. Use self.tr().
tests/test_translation_loading.py:154
medium - Untranslated user-facing string: 'translator'. Use self.tr().
tests/test_translation_loading.py:216
medium - Untranslated user-facing string: 'Raster DEM layer is required'. Use self.tr().
gui/main_dialog_validation_manager.py:37
medium - Untranslated user-facing string: 'Cross-section line layer is required'. Use self.tr().
gui/main_dialog_validation_manager.py:42
medium - Untranslated user-facing string: 'Output directory path is required'. Use self.tr().
gui/main_dialog_validation_manager.py:47
medium - Untranslated user-facing string: 'Geology configuration is incomplete'. Use self.tr().
gui/main_dialog_validation_manager.py:54
medium - Untranslated user-facing string: 'Structure configuration is incomplete'. Use self.tr().
gui/main_dialog_validation_manager.py:61
medium - Untranslated user-facing string: 'Drillhole configuration is incomplete'. Use self.tr().
gui/main_dialog_validation_manager.py:68
medium - Untranslated user-facing string: 'message'. Use self.tr().
gui/main_dialog_validation_manager.py:129
medium - Untranslated user-facing string: 'section'. Use self.tr().
gui/main_dialog_validation_manager.py:139
medium - Untranslated user-facing string: 'output'. Use self.tr().
gui/main_dialog_validation_manager.py:148
medium - Untranslated user-facing string: 'No preview available to export. Generate a preview first.'. Use self.tr().
gui/main_dialog_export.py:53
medium - Untranslated user-facing string: 'No layers to export.'. Use self.tr().
gui/main_dialog_export.py:59
medium - Untranslated user-facing string: 'Total Preview Export Time'. Use self.tr().
gui/main_dialog_export.py:66
medium - Untranslated user-facing string: 'Export Error'. Use self.tr().
gui/main_dialog_export.py:77
medium - Untranslated user-facing string: 'Export Error'. Use self.tr().
gui/main_dialog_export.py:83
medium - Untranslated user-facing string: 'PNG Image (*.png);;JPEG Image (*.jpg *.jpeg);;PDF Document (*.pdf);;SVG Vector (*.svg)'. Use self.tr().
gui/main_dialog_export.py:93
medium - Untranslated user-facing string: 'Export Preview'. Use self.tr().
gui/main_dialog_export.py:97
medium - Untranslated user-facing string: 'extent'. Use self.tr().
gui/main_dialog_export.py:126
medium - Untranslated user-facing string: '✓ Generating data for export...'. Use self.tr().
gui/main_dialog_export.py:167
medium - Untranslated user-facing string: 'No profile data generated.'. Use self.tr().
gui/main_dialog_export.py:175
medium - Untranslated user-facing string: 'Data Export Error'. Use self.tr().
gui/main_dialog_export.py:209
medium - Untranslated user-facing string: 'Unexpected Data Export Error'. Use self.tr().
gui/main_dialog_export.py:212
medium - Untranslated user-facing string: 'Geology Preview (Async)'. Use self.tr().
gui/preview_task_orchestrator.py:69
medium - Untranslated user-facing string: 'Drillhole Preview (Async)'. Use self.tr().
gui/preview_task_orchestrator.py:119
medium - Function 'setSourceCrs' has no type annotations.
tests/base_test.py:67
def setSourceCrs...
medium - Function 'setEllipsoid' has no type annotations.
tests/base_test.py:71
def setEllipsoid...
medium - Function 'measureLength' has no type annotations.
tests/base_test.py:75
def measureLength...
medium - Function 'measureLine' has no type annotations.
tests/base_test.py:79
def measureLine...
medium - Function 'convertLengthMeasurement' has no type annotations.
tests/base_test.py:83
def convertLengthMeasurement...
medium - Function 'setField' has no type annotations.
tests/base_test.py:95
def setField...
medium - Function 'setProperty' has no type annotations.
tests/base_test.py:107
def setProperty...
medium - Function 'setFormat' has no type annotations.
tests/base_test.py:121
def setFormat...
medium - Function 'setSize' has no type annotations.
tests/base_test.py:133
def setSize...
medium - Function 'createSimple' has no type annotations.
tests/base_test.py:158
def createSimple...
medium - Function 'createSimple' has no type annotations.
tests/base_test.py:167
def createSimple...
medium - Function 'setEnabled' has no type annotations.
tests/base_test.py:179
def setEnabled...
medium - Function 'setFillColor' has no type annotations.
tests/base_test.py:183
def setFillColor...
medium - Public function 'create_real_writer' is missing a docstring.
tests/base_test.py:280
def create_real_writer...
medium - Function 'create_real_writer' has no type annotations.
tests/base_test.py:280
def create_real_writer...
medium - Public function 'setUp' is missing a docstring.
tests/base_test.py:353
def setUp...
medium - Public function 'tearDown' is missing a docstring.
tests/base_test.py:400
def tearDown...
medium - Untranslated user-facing string: '# Mock shapefile '. Use self.tr().
tests/base_test.py:292
medium - Untranslated user-facing string: '# Mock file '. Use self.tr().
tests/base_test.py:295
medium - Untranslated user-facing string: 'processing'. Use self.tr().
tests/base_test.py:318
medium - Untranslated user-facing string: 'processing'. Use self.tr().
tests/base_test.py:336
medium - Untranslated user-facing string: 'N 30 E'. Use self.tr().
tests/base_test.py:364
medium - Untranslated user-facing string: 'N 45 W'. Use self.tr().
tests/base_test.py:364
medium - Untranslated user-facing string: 'S 60 E'. Use self.tr().
tests/base_test.py:364
medium - Untranslated user-facing string: 'S 15 W'. Use self.tr().
tests/base_test.py:364
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/base_test.py:365
medium - Untranslated user-facing string: '45 NE'. Use self.tr().
tests/base_test.py:373
medium - Untranslated user-facing string: '30 SW'. Use self.tr().
tests/base_test.py:373
medium - Untranslated user-facing string: '60 N'. Use self.tr().
tests/base_test.py:373
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/base_test.py:374
medium - Untranslated user-facing string: 'distance'. Use self.tr().
tests/base_test.py:392
medium - Untranslated user-facing string: 'elevation'. Use self.tr().
tests/base_test.py:392
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/base_test.py:394
medium - Untranslated user-facing string: 'Unit B'. Use self.tr().
tests/base_test.py:395
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/base_test.py:396
medium - Untranslated user-facing string: '✓ Cache cleared - next preview will re-process data'. Use self.tr().
gui/main_dialog_cache_handler.py:29
medium - Untranslated user-facing string: '⚠ Cache not available'. Use self.tr().
gui/main_dialog_cache_handler.py:33
medium - Public function 'interpretations' is missing a docstring.
gui/main_dialog.py:208
def interpretations...
medium - Untranslated user-facing string: 'Clear Cache'. Use self.tr().
gui/main_dialog.py:100
medium - Untranslated user-facing string: 'Clear cached data to force re-processing.'. Use self.tr().
gui/main_dialog.py:101
medium - Untranslated user-facing string: 'Reset Defaults'. Use self.tr().
gui/main_dialog.py:104
medium - Untranslated user-facing string: 'Reset all inputs to their default values.'. Use self.tr().
gui/main_dialog.py:105
medium - Untranslated user-facing string: 'Help file not found. Please run 'make doc' to generate it.'. Use self.tr().
gui/main_dialog.py:182
medium - Untranslated user-facing string: 'Preview Error'. Use self.tr().
gui/main_dialog.py:265
medium - Untranslated user-facing string: 'Validation Error'. Use self.tr().
gui/main_dialog.py:299
medium - Untranslated user-facing string: 'DEM raster layer is required'. Use self.tr().
gui/main_dialog_config.py:83
medium - Untranslated user-facing string: 'Cross-section line is required'. Use self.tr().
gui/main_dialog_config.py:84
medium - Untranslated user-facing string: 'Output path is required'. Use self.tr().
gui/main_dialog_config.py:85
medium - Untranslated user-facing string: 'Selected raster layer is not valid'. Use self.tr().
gui/main_dialog_config.py:88
medium - Untranslated user-facing string: 'Selected section line is not valid'. Use self.tr().
gui/main_dialog_config.py:89
medium - Untranslated user-facing string: 'Output path is not valid or not writable'. Use self.tr().
gui/main_dialog_config.py:90
medium - Untranslated user-facing string: 'Layer has incorrect geometry type'. Use self.tr().
gui/main_dialog_config.py:93
medium - Untranslated user-facing string: 'Layer contains no features'. Use self.tr().
gui/main_dialog_config.py:94
medium - Untranslated user-facing string: 'Layer contains invalid geometries'. Use self.tr().
gui/main_dialog_config.py:95
medium - Untranslated user-facing string: 'Required field '{}' not found in layer'. Use self.tr().
gui/main_dialog_config.py:98
medium - Untranslated user-facing string: 'Field '{}' has incorrect type'. Use self.tr().
gui/main_dialog_config.py:99
medium - Untranslated user-facing string: 'Outcrop layer is required for geological profile'. Use self.tr().
gui/main_dialog_config.py:102
medium - Untranslated user-facing string: 'Outcrop name field is required'. Use self.tr().
gui/main_dialog_config.py:103
medium - Untranslated user-facing string: 'Structural layer is required for structure projection'. Use self.tr().
gui/main_dialog_config.py:106
medium - Untranslated user-facing string: 'Dip field is required'. Use self.tr().
gui/main_dialog_config.py:107
medium - Untranslated user-facing string: 'Strike field is required'. Use self.tr().
gui/main_dialog_config.py:108
medium - Untranslated user-facing string: 'Input validation failed'. Use self.tr().
gui/main_dialog_config.py:111
medium - Untranslated user-facing string: 'An unknown error occurred'. Use self.tr().
gui/main_dialog_config.py:112
medium - Untranslated user-facing string: 'warning'. Use self.tr().
gui/main_dialog_messages.py:68
medium - Untranslated user-facing string: 'critical'. Use self.tr().
gui/main_dialog_messages.py:76
medium - Untranslated user-facing string: 'vertexag'. Use self.tr().
gui/main_dialog_data.py:63
medium - Untranslated user-facing string: 'vertexag'. Use self.tr().
gui/main_dialog_data.py:169
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
gui/main_dialog_interpretation.py:41
medium - Untranslated user-facing string: 'Failed to load interpretations'. Use self.tr().
gui/main_dialog_interpretation.py:61
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
gui/main_dialog_interpretation.py:91
medium - Untranslated user-facing string: 'Interpretation Finished'. Use self.tr().
gui/main_dialog_interpretation.py:142
medium - Untranslated user-facing string: '
'. Use self.tr().
gui/main_dialog_interpretation.py:143
medium - Untranslated user-facing string: '...'. Use self.tr().
gui/main_dialog_interpretation.py:145
medium - Untranslated user-facing string: 'intervals'. Use self.tr().
gui/main_dialog_interpretation.py:253
medium - Untranslated user-facing string: 'points'. Use self.tr().
gui/main_dialog_interpretation.py:257
medium - Untranslated user-facing string: 'Multi-Point Measurement'. Use self.tr().
gui/main_dialog_tools.py:121
medium - Untranslated user-facing string: ' | '. Use self.tr().
gui/main_dialog_tools.py:122
medium - Untranslated user-facing string: '
'. Use self.tr().
gui/main_dialog_tools.py:122
medium - Untranslated user-facing string: 'Total Distance'. Use self.tr().
gui/main_dialog_tools.py:123
medium - Untranslated user-facing string: ' m
'. Use self.tr().
gui/main_dialog_tools.py:123
medium - Untranslated user-facing string: 'Horizontal Distance'. Use self.tr().
gui/main_dialog_tools.py:124
medium - Untranslated user-facing string: ' m
'. Use self.tr().
gui/main_dialog_tools.py:124
medium - Untranslated user-facing string: 'Elevation Change'. Use self.tr().
gui/main_dialog_tools.py:125
medium - Untranslated user-facing string: ' m
'. Use self.tr().
gui/main_dialog_tools.py:125
medium - Untranslated user-facing string: 'Average Slope'. Use self.tr().
gui/main_dialog_tools.py:126
medium - Untranslated user-facing string: 'Total Preview Generation'. Use self.tr().
gui/main_dialog_preview.py:101
medium - Untranslated user-facing string: 'Invalid configuration'. Use self.tr().
gui/main_dialog_preview.py:105
medium - Untranslated user-facing string: 'Preview Error'. Use self.tr().
gui/main_dialog_preview.py:112
medium - Untranslated user-facing string: 'Unexpected UI error during preview generation'. Use self.tr().
gui/main_dialog_preview.py:115
medium - Untranslated user-facing string: 'Unexpected Preview Error'. Use self.tr().
gui/main_dialog_preview.py:116
medium - Untranslated user-facing string: 'Critical unexpected error in preview generation'. Use self.tr().
gui/main_dialog_preview.py:119
medium - Untranslated user-facing string: 'Critical Error'. Use self.tr().
gui/main_dialog_preview.py:120
medium - Untranslated user-facing string: 'Preview generated successfully'. Use self.tr().
gui/main_dialog_preview.py:124
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
gui/main_dialog_preview.py:204
medium - Untranslated user-facing string: 'struct'. Use self.tr().
gui/main_dialog_preview.py:238
medium - Untranslated user-facing string: 'drillhole'. Use self.tr().
gui/main_dialog_preview.py:239
medium - Untranslated user-facing string: 'Rendering error: '. Use self.tr().
gui/main_dialog_preview.py:244
medium - Untranslated user-facing string: 'Unexpected rendering pipeline error'. Use self.tr().
gui/main_dialog_preview.py:247
medium - Untranslated user-facing string: 'struct'. Use self.tr().
gui/main_dialog_preview.py:268
medium - Untranslated user-facing string: 'drillhole'. Use self.tr().
gui/main_dialog_preview.py:269
medium - Untranslated user-facing string: 'UI Sync error in preview: '. Use self.tr().
gui/main_dialog_preview.py:299
medium - Untranslated user-facing string: 'Unexpected error updating preview from checkboxes'. Use self.tr().
gui/main_dialog_preview.py:301
medium - Untranslated user-facing string: 'struct'. Use self.tr().
gui/main_dialog_preview.py:352
medium - Untranslated user-facing string: 'drillhole'. Use self.tr().
gui/main_dialog_preview.py:353
medium - Untranslated user-facing string: 'Generating Geology in background...'. Use self.tr().
gui/main_dialog_preview.py:370
medium - Untranslated user-facing string: 'Failed to prepare geology task: '. Use self.tr().
gui/main_dialog_preview.py:383
medium - Untranslated user-facing string: 'Unexpected error preparing geology task'. Use self.tr().
gui/main_dialog_preview.py:387
medium - Untranslated user-facing string: 'Internal error during task preparation'. Use self.tr().
gui/main_dialog_preview.py:388
medium - Untranslated user-facing string: 'Error updating UI after async geology: '. Use self.tr().
gui/main_dialog_preview.py:416
medium - Untranslated user-facing string: 'Unexpected UI error after async geology'. Use self.tr().
gui/main_dialog_preview.py:418
medium - Untranslated user-facing string: 'Geology Error'. Use self.tr().
gui/main_dialog_preview.py:462
medium - Untranslated user-facing string: 'Drillhole Error'. Use self.tr().
gui/main_dialog_preview.py:473
medium - Untranslated user-facing string: 'Generating Drillholes in background...'. Use self.tr().
gui/main_dialog_preview.py:485
medium - Untranslated user-facing string: 'Failed to prepare drillhole task: '. Use self.tr().
gui/main_dialog_preview.py:523
medium - Untranslated user-facing string: 'Unexpected error preparing drillhole task'. Use self.tr().
gui/main_dialog_preview.py:526
medium - Untranslated user-facing string: 'drillhole'. Use self.tr().
gui/main_dialog_preview.py:547
medium - Untranslated user-facing string: 'Error syncing UI after async drillhole'. Use self.tr().
gui/main_dialog_preview.py:555
medium - Untranslated user-facing string: 'Plugin instance or draw_preview method not available'. Use self.tr().
gui/main_dialog_preview.py:560
medium - Untranslated user-facing string: 'CRS: None'. Use self.tr().
gui/main_dialog_preview.py:580
medium - Untranslated user-facing string: 'CRS: Unknown'. Use self.tr().
gui/main_dialog_preview.py:584
medium - Untranslated user-facing string: 'Unexpected error updating CRS label'. Use self.tr().
gui/main_dialog_preview.py:587
medium - Untranslated user-facing string: 'memory'. Use self.tr().
gui/preview_axes_manager.py:69
medium - Untranslated user-facing string: 'Axes Labels'. Use self.tr().
gui/preview_axes_manager.py:133
medium - Untranslated user-facing string: 'memory'. Use self.tr().
gui/preview_axes_manager.py:134
medium - Untranslated user-facing string: 'quadrant'. Use self.tr().
gui/preview_axes_manager.py:164
medium - Untranslated user-facing string: 'quadrant'. Use self.tr().
gui/preview_axes_manager.py:175
medium - Untranslated user-facing string: '✓ Form reset to default values'. Use self.tr().
gui/main_dialog_settings.py:280
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
gui/main_dialog_settings.py:357
medium - Public function 'get_id' is missing a docstring.
gui/preview_param_hasher.py:28
def get_id...
medium - Untranslated user-facing string: 'margin'. Use self.tr().
gui/preview_legend_renderer.py:51
medium - Untranslated user-facing string: 'margin'. Use self.tr().
gui/preview_legend_renderer.py:52
medium - Untranslated user-facing string: 'padding'. Use self.tr().
gui/preview_legend_renderer.py:59
medium - Untranslated user-facing string: 'padding'. Use self.tr().
gui/preview_legend_renderer.py:112
medium - Untranslated user-facing string: 'padding'. Use self.tr().
gui/preview_legend_renderer.py:113
medium - Untranslated user-facing string: 'padding'. Use self.tr().
gui/preview_legend_renderer.py:141
medium - Untranslated user-facing string: 'padding'. Use self.tr().
gui/preview_legend_renderer.py:162
medium - Untranslated user-facing string: 'warning'. Use self.tr().
gui/utils.py:15
medium - Untranslated user-facing string: 'critical'. Use self.tr().
gui/utils.py:29
medium - Untranslated user-facing string: 'warning'. Use self.tr().
gui/utils.py:31
medium - Untranslated user-facing string: 'warning'. Use self.tr().
gui/utils.py:37
medium - Untranslated user-facing string: 'critical'. Use self.tr().
gui/utils.py:41
medium - Untranslated user-facing string: 'question'. Use self.tr().
gui/utils.py:43
medium - Untranslated user-facing string: '✓ Preview generated!'. Use self.tr().
gui/preview_reporter.py:37
medium - Untranslated user-facing string: 'Adjust 'Vert. Exag.' and click Preview to update.'. Use self.tr().
gui/preview_reporter.py:61
medium - Untranslated user-facing string: 'Geology: No data'. Use self.tr().
gui/preview_reporter.py:72
medium - Untranslated user-facing string: 'Structures: No data'. Use self.tr().
gui/preview_reporter.py:81
medium - Untranslated user-facing string: 'Drillholes: No data'. Use self.tr().
gui/preview_reporter.py:90
medium - Untranslated user-facing string: 'Geometry Range:'. Use self.tr().
gui/preview_reporter.py:103
medium - Untranslated user-facing string: 'Performance:'. Use self.tr().
gui/preview_reporter.py:119
medium - Untranslated user-facing string: 'Geology Generation'. Use self.tr().
gui/preview_reporter.py:132
medium - Untranslated user-facing string: 'Structure Generation'. Use self.tr().
gui/preview_reporter.py:134
medium - Untranslated user-facing string: 'Invalid export path: '. Use self.tr().
exporters/base_exporter.py:76
medium - Untranslated user-facing string: 'memory'. Use self.tr().
gui/preview_layer_factory.py:86
medium - Untranslated user-facing string: 'field=elev:double'. Use self.tr().
gui/preview_layer_factory.py:119
medium - Untranslated user-facing string: 'Topography Fill'. Use self.tr().
gui/preview_layer_factory.py:165
medium - Untranslated user-facing string: 'field=unit:string'. Use self.tr().
gui/preview_layer_factory.py:206
medium - Untranslated user-facing string: 'Drillhole Traces'. Use self.tr().
gui/preview_layer_factory.py:294
medium - Untranslated user-facing string: 'Drillhole Intervals'. Use self.tr().
gui/preview_layer_factory.py:351
medium - Untranslated user-facing string: 'field=unit:string'. Use self.tr().
gui/preview_layer_factory.py:351
medium - Untranslated user-facing string: 'interval'. Use self.tr().
gui/preview_layer_factory.py:373
medium - Untranslated user-facing string: 'CSV export failed for '. Use self.tr().
exporters/csv_exporter.py:52
medium - Untranslated user-facing string: 'height'. Use self.tr().
exporters/image_exporter.py:40
medium - Untranslated user-facing string: 'Image export failed for '. Use self.tr().
exporters/image_exporter.py:70
medium - Untranslated user-facing string: 'Error exporting preview'. Use self.tr().
gui/preview_renderer.py:255
medium - Untranslated user-facing string: 'Error exporting 3D traces to '. Use self.tr().
exporters/drillhole_3d_exporter.py:69
medium - Untranslated user-facing string: 'Error exporting 3D intervals to '. Use self.tr().
exporters/drillhole_3d_exporter.py:160
medium - Untranslated user-facing string: 'Failed to export drillhole traces to '. Use self.tr().
exporters/drillhole_exporters.py:66
medium - Untranslated user-facing string: 'Failed to export drillhole intervals to '. Use self.tr().
exporters/drillhole_exporters.py:161
medium - Untranslated user-facing string: 'memory'. Use self.tr().
exporters/interpretation_exporters.py:66
medium - Untranslated user-facing string: 'Failed to export interpretations to '. Use self.tr().
exporters/interpretation_exporters.py:81
medium - Untranslated user-facing string: 'ESRI Shapefile'. Use self.tr().
exporters/interpretation_exporters.py:136
medium - Untranslated user-facing string: 'height'. Use self.tr().
exporters/pdf_exporter.py:40
medium - Untranslated user-facing string: 'PDF export failed for '. Use self.tr().
exporters/pdf_exporter.py:76
medium - Untranslated user-facing string: 'height'. Use self.tr().
exporters/svg_exporter.py:41
medium - Untranslated user-facing string: 'Section Interpretation Preview'. Use self.tr().
exporters/svg_exporter.py:42
medium - Untranslated user-facing string: 'description'. Use self.tr().
exporters/svg_exporter.py:43
medium - Untranslated user-facing string: 'Generated by SecInterp QGIS Plugin'. Use self.tr().
exporters/svg_exporter.py:43
medium - Untranslated user-facing string: 'SVG export failed for '. Use self.tr().
exporters/svg_exporter.py:78
medium - Untranslated user-facing string: 'Shapefile export failed for '. Use self.tr().
exporters/shp_exporter.py:66
medium - Untranslated user-facing string: 'geometry'. Use self.tr().
exporters/shp_exporter.py:87
medium - Untranslated user-facing string: 'geometry'. Use self.tr().
exporters/shp_exporter.py:88
medium - Untranslated user-facing string: 'attributes'. Use self.tr().
exporters/shp_exporter.py:89
medium - Untranslated user-facing string: 'attributes'. Use self.tr().
exporters/shp_exporter.py:90
medium - Untranslated user-facing string: 'attributes'. Use self.tr().
exporters/shp_exporter.py:97
medium - Untranslated user-facing string: 'attributes'. Use self.tr().
exporters/shp_exporter.py:98
medium - Untranslated user-facing string: 'ESRI Shapefile'. Use self.tr().
exporters/shp_exporter.py:117
medium - Module is missing a docstring (PEP 257).
.gemini-temp/reproduce_proxy.py:1
Module: .gemini-temp/reproduce_proxy.py
medium - Public class 'ModuleProxy' is missing a docstring.
.gemini-temp/reproduce_proxy.py:5
class ModuleProxy...
medium - Function '__getattr__' has no type annotations.
.gemini-temp/reproduce_proxy.py:10
def __getattr__...
medium - Function '__setattr__' has no type annotations.
.gemini-temp/reproduce_proxy.py:16
def __setattr__...
medium - Public function 'reset_mock' is missing a docstring.
.gemini-temp/reproduce_proxy.py:22
def reset_mock...
medium - Public class 'MockClass' is missing a docstring.
.gemini-temp/reproduce_proxy.py:26
class MockClass...
medium - Public function 'value' is missing a docstring.
.gemini-temp/reproduce_proxy.py:30
def value...
medium - Untranslated user-facing string: 'MockClass init'. Use self.tr().
.gemini-temp/reproduce_proxy.py:28
medium - Untranslated user-facing string: 'Proxy MockClass: '. Use self.tr().
.gemini-temp/reproduce_proxy.py:37
medium - Untranslated user-facing string: 'Instance value: '. Use self.tr().
.gemini-temp/reproduce_proxy.py:39
medium - Untranslated user-facing string: 'After reset, Proxy MockClass: '. Use self.tr().
.gemini-temp/reproduce_proxy.py:42
medium - Untranslated user-facing string: 'After reset, Instance value: '. Use self.tr().
.gemini-temp/reproduce_proxy.py:44
medium - print() usage detected. Use QgsMessageLog.
.gemini-temp/reproduce_proxy.py:1
import types
from unittest.mock import MagicMock


class ModuleProxy(types.ModuleType):
    def __init__(self, name):
        super().__init__(name)
        self._mock = MagicMock(name=name)

    def __getattr__(self, name):
        try:
            return super().__getattribute__(name)
        except AttributeError:
            return getattr(self._mock, name)

    def __setattr__(self, name, value):
        if name.startswith("_"):
            super().__setattr__(name, value)
        else:
            super().__setattr__(name, value)

    def reset_mock(self):
        self._mock.reset_mock()


class MockClass:
    def __init__(self):
        print("MockClass init")

    def value(self):
        return "RealValue"


proxy = ModuleProxy("test_module")
proxy.MockClass = MockClass

print(f"Proxy MockClass: {proxy.MockClass}")
instance = proxy.MockClass()
print(f"Instance value: {instance.value()}")

proxy.reset_mock()
print(f"After reset, Proxy MockClass: {proxy.MockClass}")
instance = proxy.MockClass()
print(f"After reset, Insta
medium - Untranslated user-facing string: ' QListWidget { background-color: #f0f0f0; border-right: 1px solid #d0d0d0; outline: none; } QListWidget::item { padding: 10px; border-bottom: 1px solid #e0e0e0; color: #404040; } QListWidget::item:selected { background-color: #ffffff; color: #000000; border-left: 3px solid #0078d7; } QListWidget::item:hover { background-color: #e8e8e8; } '. Use self.tr().
gui/ui/sidebar.py:28
medium - Untranslated user-facing string: 'Sec Interp'. Use self.tr().
gui/ui/main_window.py:42
medium - Untranslated user-facing string: ' QSplitter::handle { background-color: #e0e0e0; border: 1px solid #c0c0c0; margin: 1px; border-radius: 2px; } QSplitter::handle:hover { background-color: #d0d0d0; border-color: #a0a0a0; } QSplitter::handle:pressed { background-color: #b0b0b0; border-color: #808080; } '. Use self.tr().
gui/ui/main_window.py:82
medium - Untranslated user-facing string: 'Output Folder'. Use self.tr().
gui/ui/main_window.py:132
medium - Untranslated user-facing string: 'Section Line'. Use self.tr().
gui/ui/main_window.py:142
medium - Untranslated user-facing string: 'Failed to calculate section geometry: '. Use self.tr().
exporters/interpretation_3d_exporter.py:61
medium - Untranslated user-facing string: 'Section line geometry is required for 3D projection.'. Use self.tr().
exporters/interpretation_3d_exporter.py:84
medium - Untranslated user-facing string: 'memory'. Use self.tr().
exporters/interpretation_3d_exporter.py:120
medium - Untranslated user-facing string: 'ESRI Shapefile'. Use self.tr().
exporters/interpretation_3d_exporter.py:271
medium - Untranslated user-facing string: 'Failed to export profile line to '. Use self.tr().
exporters/profile_exporters.py:73
medium - Untranslated user-facing string: 'Failed to export geology profile to '. Use self.tr().
exporters/profile_exporters.py:113
medium - Untranslated user-facing string: 'Failed to export structural profile to '. Use self.tr().
exporters/profile_exporters.py:198
medium - Untranslated user-facing string: 'Failed to export axes to '. Use self.tr().
exporters/profile_exporters.py:323
medium - Untranslated user-facing string: 'Drillhole Task Failed: '. Use self.tr().
gui/tasks/drillhole_task.py:83
medium - Untranslated user-facing string: 'Interpretation Properties'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:50
medium - Untranslated user-facing string: 'Name:'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:64
medium - Untranslated user-facing string: 'Type:'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:67
medium - Untranslated user-facing string: 'Change...'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:75
medium - Untranslated user-facing string: 'Color:'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:81
medium - Untranslated user-facing string: 'Custom Attributes'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:87
medium - Untranslated user-facing string: 'default'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:90
medium - Untranslated user-facing string: 'background-color: '. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:112
medium - Untranslated user-facing string: '; border: 1px solid black;'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:112
medium - Untranslated user-facing string: 'Select Color'. Use self.tr().
gui/dialogs/interpretation_properties_dialog.py:117
medium - Untranslated user-facing string: 'Geology Task Failed: '. Use self.tr().
gui/tasks/geology_task.py:78
medium - Untranslated user-facing string: 'New Interpretation'. Use self.tr().
gui/tools/interpretation_tool.py:334
medium - Untranslated user-facing string: 'lithology'. Use self.tr().
gui/tools/interpretation_tool.py:335
medium - Untranslated user-facing string: 'Subclasses must implement get_data()'. Use self.tr().
gui/ui/pages/base_page.py:47
medium - Untranslated user-facing string: 'Geological Outcrops'. Use self.tr().
gui/ui/pages/geology_page.py:32
medium - Untranslated user-facing string: 'Outcrops Layer'. Use self.tr().
gui/ui/pages/geology_page.py:41
medium - Untranslated user-facing string: 'Select the polygon layer with geological outcrops'. Use self.tr().
gui/ui/pages/geology_page.py:54
medium - Untranslated user-facing string: 'Name Field'. Use self.tr().
gui/ui/pages/geology_page.py:59
medium - Untranslated user-facing string: 'Select the field containing unit names'. Use self.tr().
gui/ui/pages/geology_page.py:62
medium - Untranslated user-facing string: 'Digital Elevation Model'. Use self.tr().
gui/ui/pages/dem_page.py:36
medium - Untranslated user-facing string: 'Raster Layer *'. Use self.tr().
gui/ui/pages/dem_page.py:56
medium - Untranslated user-facing string: 'Select the raster DEM layer'. Use self.tr().
gui/ui/pages/dem_page.py:61
medium - Untranslated user-facing string: 'Select the raster band'. Use self.tr().
gui/ui/pages/dem_page.py:76
medium - Untranslated user-facing string: 'Raster resolution (auto-calculated)'. Use self.tr().
gui/ui/pages/dem_page.py:84
medium - Untranslated user-facing string: 'Profile Settings'. Use self.tr().
gui/ui/pages/dem_page.py:96
medium - Untranslated user-facing string: 'Scale 1:'. Use self.tr().
gui/ui/pages/dem_page.py:100
medium - Untranslated user-facing string: 'Vert. Exag.'. Use self.tr().
gui/ui/pages/dem_page.py:108
medium - Untranslated user-facing string: 'Raster layer is required'. Use self.tr().
gui/ui/pages/dem_page.py:163
medium - Untranslated user-facing string: 'Interpretation Settings'. Use self.tr().
gui/ui/pages/interpretation_page.py:29
medium - Untranslated user-facing string: 'Custom Attributes'. Use self.tr().
gui/ui/pages/interpretation_page.py:41
medium - Untranslated user-facing string: 'Field Name'. Use self.tr().
gui/ui/pages/interpretation_page.py:45
medium - Untranslated user-facing string: 'Default Value'. Use self.tr().
gui/ui/pages/interpretation_page.py:45
medium - Untranslated user-facing string: 'Add Field'. Use self.tr().
gui/ui/pages/interpretation_page.py:52
medium - Untranslated user-facing string: 'Remove Field'. Use self.tr().
gui/ui/pages/interpretation_page.py:53
medium - Untranslated user-facing string: 'Attribute Inheritance'. Use self.tr().
gui/ui/pages/interpretation_page.py:63
medium - Untranslated user-facing string: 'Auto-inherit from Geology layers'. Use self.tr().
gui/ui/pages/interpretation_page.py:65
medium - Untranslated user-facing string: 'Automatically copy unit name and attributes from the nearest geology segment.'. Use self.tr().
gui/ui/pages/interpretation_page.py:68
medium - Untranslated user-facing string: 'Auto-inherit from Drillhole intervals'. Use self.tr().
gui/ui/pages/interpretation_page.py:71
medium - Untranslated user-facing string: 'Automatically copy rock code and attributes from the nearest drillhole interval.'. Use self.tr().
gui/ui/pages/interpretation_page.py:75
medium - Untranslated user-facing string: 'Field name cannot be empty'. Use self.tr().
gui/ui/pages/interpretation_page.py:137
medium - Untranslated user-facing string: 'Cross Section Line'. Use self.tr().
gui/ui/pages/section_page.py:26
medium - Untranslated user-facing string: 'Section Line *'. Use self.tr().
gui/ui/pages/section_page.py:35
medium - Untranslated user-facing string: 'Select the line layer defining the cross-section'. Use self.tr().
gui/ui/pages/section_page.py:48
medium - Untranslated user-facing string: 'Buffer Dist. (m)'. Use self.tr().
gui/ui/pages/section_page.py:57
medium - Untranslated user-facing string: 'Distance to include structures around the section line'. Use self.tr().
gui/ui/pages/section_page.py:64
medium - Untranslated user-facing string: 'Section line layer is required'. Use self.tr().
gui/ui/pages/section_page.py:83
medium - Untranslated user-facing string: 'Coords: - , -'. Use self.tr().
gui/ui/pages/preview_page.py:69
medium - Untranslated user-facing string: 'Scale 1: -'. Use self.tr().
gui/ui/pages/preview_page.py:70
medium - Untranslated user-facing string: 'CRS: -'. Use self.tr().
gui/ui/pages/preview_page.py:71
medium - Untranslated user-facing string: 'color: #666; font-size: 9pt;'. Use self.tr().
gui/ui/pages/preview_page.py:74
medium - Untranslated user-facing string: 'Export preview to file'. Use self.tr().
gui/ui/pages/preview_page.py:90
medium - Untranslated user-facing string: 'Measure distance and slope'. Use self.tr().
gui/ui/pages/preview_page.py:95
medium - Untranslated user-facing string: 'Draw interpretation polygons'. Use self.tr().
gui/ui/pages/preview_page.py:100
medium - Untranslated user-facing string: 'Finalize multi-point measurement'. Use self.tr().
gui/ui/pages/preview_page.py:104
medium - Untranslated user-facing string: 'Max Points:'. Use self.tr().
gui/ui/pages/preview_page.py:118
medium - Untranslated user-facing string: 'Maximum points to render in preview (LOD Optimization)'. Use self.tr().
gui/ui/pages/preview_page.py:125
medium - Untranslated user-facing string: 'Automatically adjust details based on preview size'. Use self.tr().
gui/ui/pages/preview_page.py:130
medium - Untranslated user-facing string: 'Use adaptive sampling based on curvature (Phase 2)'. Use self.tr().
gui/ui/pages/preview_page.py:136
medium - Untranslated user-facing string: 'Show Topography'. Use self.tr().
gui/ui/pages/preview_page.py:147
medium - Untranslated user-facing string: 'Show Geology'. Use self.tr().
gui/ui/pages/preview_page.py:149
medium - Untranslated user-facing string: 'Show Structures'. Use self.tr().
gui/ui/pages/preview_page.py:151
medium - Untranslated user-facing string: 'Show Drillholes'. Use self.tr().
gui/ui/pages/preview_page.py:153
medium - Untranslated user-facing string: 'Show Interpretations'. Use self.tr().
gui/ui/pages/preview_page.py:155
medium - Untranslated user-facing string: 'Show Legend'. Use self.tr().
gui/ui/pages/preview_page.py:157
medium - Public class 'TestAlgorithms' is missing a docstring.
tests/core/test_algorithms.py:10
class TestAlgorithms...
medium - Untranslated user-facing string: 'Structural Measurements'. Use self.tr().
gui/ui/pages/structure_page.py:35
medium - Untranslated user-facing string: 'Structural Layer'. Use self.tr().
gui/ui/pages/structure_page.py:46
medium - Untranslated user-facing string: 'Select the point layer with structural measurements'. Use self.tr().
gui/ui/pages/structure_page.py:59
medium - Untranslated user-facing string: 'Dip Field'. Use self.tr().
gui/ui/pages/structure_page.py:64
medium - Untranslated user-facing string: 'Select field with dip values (0-90)'. Use self.tr().
gui/ui/pages/structure_page.py:67
medium - Untranslated user-facing string: 'Strike Field'. Use self.tr().
gui/ui/pages/structure_page.py:71
medium - Untranslated user-facing string: 'Select field with strike values (0-360)'. Use self.tr().
gui/ui/pages/structure_page.py:74
medium - Untranslated user-facing string: 'Dip Line Scale'. Use self.tr().
gui/ui/pages/structure_page.py:78
medium - Untranslated user-facing string: 'Length factor for drawing dip lines'. Use self.tr().
gui/ui/pages/structure_page.py:84
medium - Untranslated user-facing string: 'Drillhole Data'. Use self.tr().
gui/ui/pages/drillhole_page.py:43
medium - Untranslated user-facing string: 'Collar Layer:'. Use self.tr().
gui/ui/pages/drillhole_page.py:97
medium - Untranslated user-facing string: 'Hole ID:'. Use self.tr().
gui/ui/pages/drillhole_page.py:105
medium - Untranslated user-facing string: 'Use Layer Geometry for Coordinates'. Use self.tr().
gui/ui/pages/drillhole_page.py:112
medium - Untranslated user-facing string: 'East (X):'. Use self.tr().
gui/ui/pages/drillhole_page.py:117
medium - Untranslated user-facing string: 'North (Y):'. Use self.tr().
gui/ui/pages/drillhole_page.py:123
medium - Untranslated user-facing string: 'Elevation (Z):'. Use self.tr().
gui/ui/pages/drillhole_page.py:130
medium - Untranslated user-facing string: 'Leave empty to use DEM elevation'. Use self.tr().
gui/ui/pages/drillhole_page.py:133
medium - Untranslated user-facing string: 'Total Depth:'. Use self.tr().
gui/ui/pages/drillhole_page.py:139
medium - Untranslated user-facing string: 'toggled'. Use self.tr().
gui/ui/pages/drillhole_page.py:168
medium - Untranslated user-facing string: 'Survey Layer:'. Use self.tr().
gui/ui/pages/drillhole_page.py:175
medium - Untranslated user-facing string: 'Hole ID:'. Use self.tr().
gui/ui/pages/drillhole_page.py:193
medium - Untranslated user-facing string: 'Depth:'. Use self.tr().
gui/ui/pages/drillhole_page.py:198
medium - Untranslated user-facing string: 'Azimuth:'. Use self.tr().
gui/ui/pages/drillhole_page.py:203
medium - Untranslated user-facing string: 'Inclination:'. Use self.tr().
gui/ui/pages/drillhole_page.py:208
medium - Untranslated user-facing string: 'Interval Layer:'. Use self.tr().
gui/ui/pages/drillhole_page.py:228
medium - Untranslated user-facing string: 'Hole ID:'. Use self.tr().
gui/ui/pages/drillhole_page.py:246
medium - Untranslated user-facing string: 'From Depth:'. Use self.tr().
gui/ui/pages/drillhole_page.py:251
medium - Untranslated user-facing string: 'To Depth:'. Use self.tr().
gui/ui/pages/drillhole_page.py:256
medium - Public function 'setUp' is missing a docstring.
tests/core/test_config.py:11
def setUp...
medium - Module is missing a docstring (PEP 257).
tests/core/test_config_integration.py:1
Module: tests/core/test_config_integration.py
medium - Public function 'setUp' is missing a docstring.
tests/core/test_config_integration.py:11
def setUp...
medium - Public function 'tearDown' is missing a docstring.
tests/core/test_config_integration.py:21
def tearDown...
medium - Public function 'mock_value' is missing a docstring.
tests/core/test_config_integration.py:28
def mock_value...
medium - Function 'mock_value' has no type annotations.
tests/core/test_config_integration.py:28
def mock_value...
medium - Module is missing a docstring (PEP 257).
tests/core/test_data_cache_fix.py:1
Module: tests/core/test_data_cache_fix.py
medium - Public class 'TestDataCache' is missing a docstring.
tests/core/test_data_cache_fix.py:7
class TestDataCache...
medium - Public function 'setUp' is missing a docstring.
tests/core/test_data_cache_fix.py:8
def setUp...
medium - Public function 'test_get_cache_key' is missing a docstring.
tests/core/test_data_cache_fix.py:12
def test_get_cache_key...
medium - Public function 'test_set_and_get' is missing a docstring.
tests/core/test_data_cache_fix.py:27
def test_set_and_get...
medium - Public function 'test_get_missing' is missing a docstring.
tests/core/test_data_cache_fix.py:53
def test_get_missing...
medium - Untranslated user-facing string: 'Keys should be identical for same params regardless of order'. Use self.tr().
tests/core/test_data_cache_fix.py:23
medium - Untranslated user-facing string: 'Keys should differ for different params'. Use self.tr().
tests/core/test_data_cache_fix.py:25
medium - Untranslated user-facing string: 'struct'. Use self.tr().
tests/core/test_data_cache_fix.py:50
medium - Untranslated user-facing string: 'Plugin Settings'. Use self.tr().
gui/ui/pages/settings_page.py:34
medium - Untranslated user-facing string: 'Plugin Information'. Use self.tr().
gui/ui/pages/settings_page.py:64
medium - Untranslated user-facing string: 'Topographic Profile'. Use self.tr().
gui/ui/pages/settings_page.py:78
medium - Untranslated user-facing string: 'Geological Profile'. Use self.tr().
gui/ui/pages/settings_page.py:79
medium - Untranslated user-facing string: 'Structural Data'. Use self.tr().
gui/ui/pages/settings_page.py:80
medium - Untranslated user-facing string: 'Drillhole Data'. Use self.tr().
gui/ui/pages/settings_page.py:81
medium - Untranslated user-facing string: 'Interpretations (2D)'. Use self.tr().
gui/ui/pages/settings_page.py:82
medium - Untranslated user-facing string: 'Enable 3D Interpretation Export'. Use self.tr().
gui/ui/pages/settings_page.py:103
medium - Untranslated user-facing string: 'Enables the generation of 3D Shapefiles (.shp) during export.'. Use self.tr().
gui/ui/pages/settings_page.py:105
medium - Untranslated user-facing string: 'Export 3D Traces'. Use self.tr().
gui/ui/pages/settings_page.py:112
medium - Untranslated user-facing string: 'Export 3D Intervals'. Use self.tr().
gui/ui/pages/settings_page.py:113
medium - Untranslated user-facing string: 'Use Original Coordinates (Real 3D)'. Use self.tr().
gui/ui/pages/settings_page.py:114
medium - Untranslated user-facing string: 'Use Projected Coordinates (Section Plane)'. Use self.tr().
gui/ui/pages/settings_page.py:115
medium - Untranslated user-facing string: 'version'. Use self.tr().
gui/ui/pages/settings_page.py:136
medium - Untranslated user-facing string: 'Developed by '. Use self.tr().
gui/ui/pages/settings_page.py:137
medium - Untranslated user-facing string: 'author'. Use self.tr().
gui/ui/pages/settings_page.py:137
medium - Untranslated user-facing string: 'Contact: '. Use self.tr().
gui/ui/pages/settings_page.py:138
medium - Untranslated user-facing string: 'gui/ui/pages/settings_page.py:143
medium - Untranslated user-facing string: 'homepage'. Use self.tr().
gui/ui/pages/settings_page.py:143
medium - Untranslated user-facing string: 'Sec Interp (version unavailable)'. Use self.tr().
gui/ui/pages/settings_page.py:151
medium - Untranslated user-facing string: 'Metadata missing'. Use self.tr().
gui/ui/pages/settings_page.py:152
medium - Public function 'setUp' is missing a docstring.
tests/core/test_drillhole_service.py:27
def setUp...
medium - Function 'test_process_intervals' has no type annotations.
tests/core/test_drillhole_service.py:118
def test_process_intervals...
medium - Untranslated user-facing string: 'between 0.0 and 360.0'. Use self.tr().
tests/core/test_field_validator.py:69
medium - Untranslated user-facing string: 'not found'. Use self.tr().
tests/core/test_field_validator.py:86
medium - Untranslated user-facing string: 'Invalid data type'. Use self.tr().
tests/core/test_field_validator.py:101
medium - Untranslated user-facing string: 'unknown'. Use self.tr().
tests/core/test_field_validator.py:106
medium - Untranslated user-facing string: 'not found'. Use self.tr().
tests/core/test_field_validator.py:108
medium - Public function 'setUp' is missing a docstring.
tests/core/test_geology_service.py:22
def setUp...
medium - Function 'test_generate_geological_profile' has no type annotations.
tests/core/test_geology_service.py:57
def test_generate_geological_profile...
medium - Untranslated user-facing string: 'Line Layer'. Use self.tr().
tests/core/test_geology_service.py:41
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_geology_service.py:77
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_geology_service.py:90
medium - Public function 'setUp' is missing a docstring.
tests/core/test_drillhole_utils.py:23
def setUp...
medium - Public function 'setUp' is missing a docstring.
tests/core/test_drillhole_utils.py:190
def setUp...
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_drillhole_utils.py:279
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_drillhole_utils.py:290
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_drillhole_utils.py:304
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_drillhole_utils.py:328
medium - Untranslated user-facing string: 'Unit B'. Use self.tr().
tests/core/test_drillhole_utils.py:329
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_drillhole_utils.py:342
medium - Untranslated user-facing string: 'Unit B'. Use self.tr().
tests/core/test_drillhole_utils.py:347
medium - Untranslated user-facing string: 'Unit C'. Use self.tr().
tests/core/test_drillhole_utils.py:358
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_drillhole_utils.py:378
medium - Public function 'setUp' is missing a docstring.
tests/core/test_layer_validator.py:27
def setUp...
medium - Untranslated user-facing string: 'Layer name is required'. Use self.tr().
tests/core/test_layer_validator.py:37
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/core/test_layer_validator.py:42
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/core/test_layer_validator.py:46
medium - Untranslated user-facing string: 'My Layer'. Use self.tr().
tests/core/test_layer_validator.py:54
medium - Untranslated user-facing string: 'My Layer'. Use self.tr().
tests/core/test_layer_validator.py:58
medium - Untranslated user-facing string: 'not found'. Use self.tr().
tests/core/test_layer_validator.py:68
medium - Untranslated user-facing string: 'has no features'. Use self.tr().
tests/core/test_layer_validator.py:82
medium - Untranslated user-facing string: 'Found Point, but expected Line'. Use self.tr().
tests/core/test_layer_validator.py:96
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/core/test_layer_validator.py:108
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_layer_validator.py:129
medium - Untranslated user-facing string: 'CRS mismatch detected'. Use self.tr().
tests/core/test_layer_validator.py:149
medium - Untranslated user-facing string: 'required'. Use self.tr().
tests/core/test_path_validator.py:26
medium - Untranslated user-facing string: 'pathwithnull'. Use self.tr().
tests/core/test_path_validator.py:31
medium - Untranslated user-facing string: 'null bytes'. Use self.tr().
tests/core/test_path_validator.py:33
medium - Untranslated user-facing string: 'directory traversal'. Use self.tr().
tests/core/test_path_validator.py:38
medium - Untranslated user-facing string: 'escapes base directory'. Use self.tr().
tests/core/test_path_validator.py:53
medium - Untranslated user-facing string: 'not a directory'. Use self.tr().
tests/core/test_path_validator.py:79
medium - Module is missing a docstring (PEP 257).
tests/core/test_settings_model.py:1
Module: tests/core/test_settings_model.py
medium - Untranslated user-facing string: 'section'. Use self.tr().
tests/core/test_settings_model.py:72
medium - Untranslated user-facing string: 'section'. Use self.tr().
tests/core/test_settings_model.py:74
medium - Function 'test_validate_all_success' has no type annotations.
tests/core/test_project_validator.py:50
def test_validate_all_success...
medium - Function 'test_is_geology_complete' has no type annotations.
tests/core/test_project_validator.py:123
def test_is_geology_complete...
medium - Function 'test_is_structure_complete' has no type annotations.
tests/core/test_project_validator.py:139
def test_is_structure_complete...
medium - Untranslated user-facing string: 'very high'. Use self.tr().
tests/core/test_project_validator.py:27
medium - Untranslated user-facing string: 'cannot be negative'. Use self.tr().
tests/core/test_project_validator.py:32
medium - Untranslated user-facing string: 'Scale must be >= 1'. Use self.tr().
tests/core/test_project_validator.py:95
medium - Untranslated user-facing string: 'Vertical exaggeration must be >= 0.1'. Use self.tr().
tests/core/test_project_validator.py:96
medium - Public function 'setUp' is missing a docstring.
tests/core/test_profile_exporters.py:27
def setUp...
medium - Function 'test_profile_line_exporter_success' has no type annotations.
tests/core/test_profile_exporters.py:34
def test_profile_line_exporter_success...
medium - Function 'test_geology_exporter_success' has no type annotations.
tests/core/test_profile_exporters.py:51
def test_geology_exporter_success...
medium - Function 'test_structure_exporter_success' has no type annotations.
tests/core/test_profile_exporters.py:78
def test_structure_exporter_success...
medium - Function 'test_axes_exporter_success' has no type annotations.
tests/core/test_profile_exporters.py:106
def test_axes_exporter_success...
medium - Function 'test_axes_exporter_single_point' has no type annotations.
tests/core/test_profile_exporters.py:119
def test_axes_exporter_single_point...
medium - Function 'test_profile_line_exporter_null_geom' has no type annotations.
tests/core/test_profile_exporters.py:174
def test_profile_line_exporter_null_geom...
medium - Public function 'setUp' is missing a docstring.
tests/core/test_structure_service.py:21
def setUp...
medium - Untranslated user-facing string: 'Line Layer'. Use self.tr().
tests/core/test_structure_service.py:39
medium - Untranslated user-facing string: 'Structure Layer'. Use self.tr().
tests/core/test_structure_service.py:44
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_structure_service.py:51
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_structure_service.py:56
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_structure_service.py:103
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_structure_service.py:112
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_structure_service.py:144
medium - Public function 'setUp' is missing a docstring.
tests/core/test_preview_service.py:20
def setUp...
medium - Untranslated user-facing string: 'Section Line'. Use self.tr().
tests/core/test_preview_service.py:28
medium - Untranslated user-facing string: 'strike'. Use self.tr().
tests/core/test_preview_service.py:95
medium - Untranslated user-facing string: 'no vertices'. Use self.tr().
tests/core/test_preview_service.py:241
medium - Untranslated user-facing string: 'Interval failure'. Use self.tr().
tests/core/test_preview_service.py:274
medium - Untranslated user-facing string: 'Mock Line'. Use self.tr().
tests/core/test_preview_service.py:308
medium - Untranslated user-facing string: 'Test failure'. Use self.tr().
tests/core/test_preview_service.py:333
medium - Module is missing a docstring (PEP 257).
tests/core/test_validation_refactor.py:1
Module: tests/core/test_validation_refactor.py
medium - Public function 'test_numeric_input' is missing a docstring.
tests/core/test_validation_refactor.py:17
def test_numeric_input...
medium - Public function 'test_integer_input' is missing a docstring.
tests/core/test_validation_refactor.py:22
def test_integer_input...
medium - Public function 'test_angle_range' is missing a docstring.
tests/core/test_validation_refactor.py:26
def test_angle_range...
medium - Public function 'test_valid_path' is missing a docstring.
tests/core/test_validation_refactor.py:34
def test_valid_path...
medium - Untranslated user-facing string: 'valid number'. Use self.tr().
tests/core/test_validation.py:24
medium - Untranslated user-facing string: 'at most'. Use self.tr().
tests/core/test_validation.py:37
medium - Untranslated user-facing string: 'nonexistent'. Use self.tr().
tests/core/test_validation.py:88
medium - Untranslated user-facing string: 'not exist'. Use self.tr().
tests/core/test_validation.py:92
medium - Untranslated user-facing string: 'does not exist'. Use self.tr().
tests/core/test_validation.py:92
medium - Untranslated user-facing string: 'directory'. Use self.tr().
tests/core/test_validation.py:101
medium - Untranslated user-facing string: 'N 30 E'. Use self.tr().
tests/core/test_utils_standalone.py:37
medium - Untranslated user-facing string: 'N 45 W'. Use self.tr().
tests/core/test_utils_standalone.py:42
medium - Untranslated user-facing string: 'S 60 E'. Use self.tr().
tests/core/test_utils_standalone.py:47
medium - Untranslated user-facing string: 'S 15 W'. Use self.tr().
tests/core/test_utils_standalone.py:52
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/core/test_utils_standalone.py:58
medium - Untranslated user-facing string: '45 NE'. Use self.tr().
tests/core/test_utils_standalone.py:73
medium - Untranslated user-facing string: '30 N'. Use self.tr().
tests/core/test_utils_standalone.py:80
medium - Untranslated user-facing string: '45 NE'. Use self.tr().
tests/core/test_utils_standalone.py:81
medium - Untranslated user-facing string: '60 E'. Use self.tr().
tests/core/test_utils_standalone.py:82
medium - Untranslated user-facing string: '30 SE'. Use self.tr().
tests/core/test_utils_standalone.py:83
medium - Untranslated user-facing string: '45 S'. Use self.tr().
tests/core/test_utils_standalone.py:84
medium - Untranslated user-facing string: '60 SW'. Use self.tr().
tests/core/test_utils_standalone.py:85
medium - Untranslated user-facing string: '30 W'. Use self.tr().
tests/core/test_utils_standalone.py:86
medium - Untranslated user-facing string: '45 NW'. Use self.tr().
tests/core/test_utils_standalone.py:87
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/core/test_utils_standalone.py:97
medium - Public function 'test_create_buffer_geometry_no_features' is missing a docstring.
tests/core/test_utils.py:218
def test_create_buffer_geometry_no_features...
medium - Public function 'test_create_buffer_geometry_processing_error' is missing a docstring.
tests/core/test_utils.py:222
def test_create_buffer_geometry_processing_error...
medium - Public function 'test_filter_features_by_buffer_basic' is missing a docstring.
tests/core/test_utils.py:230
def test_filter_features_by_buffer_basic...
medium - Untranslated user-facing string: 'N 30 E'. Use self.tr().
tests/core/test_utils.py:32
medium - Untranslated user-facing string: 'N 45 W'. Use self.tr().
tests/core/test_utils.py:37
medium - Untranslated user-facing string: 'S 60 E'. Use self.tr().
tests/core/test_utils.py:42
medium - Untranslated user-facing string: 'S 15 W'. Use self.tr().
tests/core/test_utils.py:47
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/core/test_utils.py:53
medium - Untranslated user-facing string: '45 NE'. Use self.tr().
tests/core/test_utils.py:68
medium - Untranslated user-facing string: '30 N'. Use self.tr().
tests/core/test_utils.py:75
medium - Untranslated user-facing string: '45 NE'. Use self.tr().
tests/core/test_utils.py:76
medium - Untranslated user-facing string: '60 E'. Use self.tr().
tests/core/test_utils.py:77
medium - Untranslated user-facing string: '30 SE'. Use self.tr().
tests/core/test_utils.py:78
medium - Untranslated user-facing string: '45 S'. Use self.tr().
tests/core/test_utils.py:79
medium - Untranslated user-facing string: '60 SW'. Use self.tr().
tests/core/test_utils.py:80
medium - Untranslated user-facing string: '30 W'. Use self.tr().
tests/core/test_utils.py:81
medium - Untranslated user-facing string: '45 NW'. Use self.tr().
tests/core/test_utils.py:82
medium - Untranslated user-facing string: 'invalid'. Use self.tr().
tests/core/test_utils.py:92
medium - Untranslated user-facing string: 'Requires fixing mocks for processing.run'. Use self.tr().
tests/core/test_utils.py:168
medium - Untranslated user-facing string: 'Geometry is null or invalid'. Use self.tr().
tests/core/test_utils.py:214
medium - Untranslated user-facing string: 'Implementation changed to use geometry.buffer directly'. Use self.tr().
tests/core/test_utils.py:217
medium - Untranslated user-facing string: 'Requires fixing mocks for processing.run'. Use self.tr().
tests/core/test_utils.py:221
medium - Untranslated user-facing string: 'Requires fixing mocks for spatial index'. Use self.tr().
tests/core/test_utils.py:229
medium - Untranslated user-facing string: 'Invalid features layer'. Use self.tr().
tests/core/test_utils.py:244
medium - Untranslated user-facing string: 'Invalid buffer geometry'. Use self.tr().
tests/core/test_utils.py:260
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_rendering_utils.py:36
medium - Untranslated user-facing string: 'Unit B'. Use self.tr().
tests/core/test_rendering_utils.py:37
medium - Module is missing a docstring (PEP 257).
tests/core/test_geology_service_optional.py:1
Module: tests/core/test_geology_service_optional.py
medium - Public class 'TestGeologyServiceOptionalLayer' is missing a docstring.
tests/core/test_geology_service_optional.py:9
class TestGeologyServiceOptionalLayer...
medium - Public function 'setUp' is missing a docstring.
tests/core/test_geology_service_optional.py:10
def setUp...
medium - Untranslated user-facing string: 'GeologyService raised DataMissingError for optional layer: '. Use self.tr().
tests/core/test_geology_service_optional.py:38
medium - Module is missing a docstring (PEP 257).
tests/core/test_drillhole_service_optional.py:1
Module: tests/core/test_drillhole_service_optional.py
medium - Public class 'TestDrillholeServiceOptionalLayer' is missing a docstring.
tests/core/test_drillhole_service_optional.py:7
class TestDrillholeServiceOptionalLayer...
medium - Public function 'setUp' is missing a docstring.
tests/core/test_drillhole_service_optional.py:8
def setUp...
medium - Module is missing a docstring (PEP 257).
tests/gui/test_cache_fix.py:1
Module: tests/gui/test_cache_fix.py
medium - Public class 'TestCacheRegression' is missing a docstring.
tests/gui/test_cache_fix.py:5
class TestCacheRegression...
medium - Public function 'setUp' is missing a docstring.
tests/core/test_async_drillhole.py:22
def setUp...
medium - Module is missing a docstring (PEP 257).
tests/gui/test_attribute_inheritance.py:1
Module: tests/gui/test_attribute_inheritance.py
medium - Public class 'TestAttributeInheritance' is missing a docstring.
tests/gui/test_attribute_inheritance.py:8
class TestAttributeInheritance...
medium - Public function 'setUpClass' is missing a docstring.
tests/gui/test_attribute_inheritance.py:11
def setUpClass...
medium - Public function 'tearDownClass' is missing a docstring.
tests/gui/test_attribute_inheritance.py:17
def tearDownClass...
medium - Untranslated user-facing string: 'lithology'. Use self.tr().
tests/gui/test_attribute_inheritance.py:79
medium - Untranslated user-facing string: 'Inherited Name: '. Use self.tr().
tests/gui/test_attribute_inheritance.py:98
medium - Untranslated user-facing string: 'Should inherit from closest geometry (Geology), not closest midpoint (Drillhole)'. Use self.tr().
tests/gui/test_attribute_inheritance.py:102
medium - Function 'test_show_user_message_warning' has no type annotations.
tests/gui/test_gui_utils.py:12
def test_show_user_message_warning...
medium - Function 'test_show_user_message_info' has no type annotations.
tests/gui/test_gui_utils.py:23
def test_show_user_message_info...
medium - Function 'test_show_user_message_error' has no type annotations.
tests/gui/test_gui_utils.py:34
def test_show_user_message_error...
medium - Untranslated user-facing string: 'Test Title'. Use self.tr().
tests/gui/test_gui_utils.py:15
medium - Untranslated user-facing string: 'Test Message'. Use self.tr().
tests/gui/test_gui_utils.py:15
medium - Untranslated user-facing string: 'warning'. Use self.tr().
tests/gui/test_gui_utils.py:15
medium - Untranslated user-facing string: 'Test Title'. Use self.tr().
tests/gui/test_gui_utils.py:19
medium - Untranslated user-facing string: 'Test Message'. Use self.tr().
tests/gui/test_gui_utils.py:19
medium - Untranslated user-facing string: 'Test Title'. Use self.tr().
tests/gui/test_gui_utils.py:26
medium - Untranslated user-facing string: 'Test Message'. Use self.tr().
tests/gui/test_gui_utils.py:26
medium - Untranslated user-facing string: 'Test Title'. Use self.tr().
tests/gui/test_gui_utils.py:30
medium - Untranslated user-facing string: 'Test Message'. Use self.tr().
tests/gui/test_gui_utils.py:30
medium - Untranslated user-facing string: 'Test Title'. Use self.tr().
tests/gui/test_gui_utils.py:37
medium - Untranslated user-facing string: 'Test Message'. Use self.tr().
tests/gui/test_gui_utils.py:37
medium - Untranslated user-facing string: 'Test Title'. Use self.tr().
tests/gui/test_gui_utils.py:41
medium - Untranslated user-facing string: 'Test Message'. Use self.tr().
tests/gui/test_gui_utils.py:41
medium - Module is missing a docstring (PEP 257).
tests/gui/test_geology_task.py:1
Module: tests/gui/test_geology_task.py
medium - Public class 'TestGeologyGenerationTask' is missing a docstring.
tests/gui/test_geology_task.py:8
class TestGeologyGenerationTask...
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_geology_task.py:9
def setUp...
medium - Public function 'tearDown' is missing a docstring.
tests/gui/test_geology_task.py:27
def tearDown...
medium - Untranslated user-facing string: 'Test Task'. Use self.tr().
tests/gui/test_geology_task.py:21
medium - Untranslated user-facing string: 'DEBUG: Task Service ID: '. Use self.tr().
tests/gui/test_geology_task.py:38
medium - Untranslated user-facing string: 'DEBUG: Mock Service ID: '. Use self.tr().
tests/gui/test_geology_task.py:39
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_main_dialog_interpretation.py:13
def setUp...
medium - Function 'test_apply_attribute_inheritance_geology' has no type annotations.
tests/gui/test_main_dialog_interpretation.py:54
def test_apply_attribute_inheritance_geology...
medium - Untranslated user-facing string: '[{"id": "1", "name": "Unit A", "type": "lithology", "vertices_2d": [[0,0], [10,10]]}]'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:27
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:33
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:41
medium - Untranslated user-facing string: 'lithology'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:41
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:50
medium - Untranslated user-facing string: '"name": "Unit A"'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:51
medium - Untranslated user-facing string: 'lithology'. Use self.tr().
tests/gui/test_main_dialog_interpretation.py:83
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_main_dialog_settings.py:13
def setUp...
medium - Untranslated user-facing string: 'interp1'. Use self.tr().
tests/gui/test_main_dialog_settings.py:91
medium - Untranslated user-facing string: 'interp2'. Use self.tr().
tests/gui/test_main_dialog_settings.py:91
medium - Untranslated user-facing string: 'Interpretations list should be cleared'. Use self.tr().
tests/gui/test_main_dialog_settings.py:99
medium - Public function 'setUp' is missing a docstring.
tests/core/test_export_service.py:21
def setUp...
medium - Function 'test_export_data_minimal' has no type annotations.
tests/core/test_export_service.py:40
def test_export_data_minimal...
medium - Function 'test_export_data_all_types' has no type annotations.
tests/core/test_export_service.py:66
def test_export_data_all_types...
medium - Function 'test_export_data_3d_restricted' has no type annotations.
tests/core/test_export_service.py:127
def test_export_data_3d_restricted...
medium - Function 'test_export_data_no_line_layer' has no type annotations.
tests/core/test_export_service.py:182
def test_export_data_no_line_layer...
medium - Function 'test_export_geology_error' has no type annotations.
tests/core/test_export_service.py:197
def test_export_geology_error...
medium - Function 'test_export_structures_error' has no type annotations.
tests/core/test_export_service.py:211
def test_export_structures_error...
medium - Function 'test_export_drillholes_error' has no type annotations.
tests/core/test_export_service.py:230
def test_export_drillholes_error...
medium - Function 'test_export_axes_error' has no type annotations.
tests/core/test_export_service.py:242
def test_export_axes_error...
medium - Function 'test_export_interpretation_3d_invalid_line' has no type annotations.
tests/core/test_export_service.py:253
def test_export_interpretation_3d_invalid_line...
medium - Function 'test_export_interpretation_error' has no type annotations.
tests/core/test_export_service.py:268
def test_export_interpretation_error...
medium - Function 'test_export_topography_error' has no type annotations.
tests/core/test_export_service.py:301
def test_export_topography_error...
medium - Untranslated user-facing string: '✓ Saving files...'. Use self.tr().
tests/core/test_export_service.py:52
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/core/test_export_service.py:84
medium - Public class 'TestDialogValidationManager' is missing a docstring.
tests/gui/test_main_dialog_validation_manager.py:13
class TestDialogValidationManager...
medium - Untranslated user-facing string: 'Invalid raster layer'. Use self.tr().
tests/gui/test_main_dialog_validation_manager.py:48
medium - Untranslated user-facing string: 'Invalid raster layer'. Use self.tr().
tests/gui/test_main_dialog_validation_manager.py:53
medium - Untranslated user-facing string: 'section'. Use self.tr().
tests/gui/test_main_dialog_validation_manager.py:62
medium - Untranslated user-facing string: 'Raster DEM layer is required'. Use self.tr().
tests/gui/test_main_dialog_validation_manager.py:77
medium - Untranslated user-facing string: 'Missing DEM layer'. Use self.tr().
tests/gui/test_main_dialog_validation_manager.py:100
medium - Untranslated user-facing string: 'Missing DEM layer'. Use self.tr().
tests/gui/test_main_dialog_validation_manager.py:105
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_message_manager.py:14
def setUp...
medium - Function 'test_show_dialog' has no type annotations.
tests/gui/test_message_manager.py:35
def test_show_dialog...
medium - Function 'test_handle_error_sec_interp_error' has no type annotations.
tests/gui/test_message_manager.py:43
def test_handle_error_sec_interp_error...
medium - Function 'test_handle_error_unexpected' has no type annotations.
tests/gui/test_message_manager.py:54
def test_handle_error_unexpected...
medium - Untranslated user-facing string: 'warning'. Use self.tr().
tests/gui/test_message_manager.py:37
medium - Untranslated user-facing string: 'warning'. Use self.tr().
tests/gui/test_message_manager.py:39
medium - Untranslated user-facing string: 'Validation failed'. Use self.tr().
tests/gui/test_message_manager.py:45
medium - Untranslated user-facing string: 'Check inputs'. Use self.tr().
tests/gui/test_message_manager.py:45
medium - Untranslated user-facing string: 'App Error'. Use self.tr().
tests/gui/test_message_manager.py:46
medium - Untranslated user-facing string: 'App Error'. Use self.tr().
tests/gui/test_message_manager.py:49
medium - Untranslated user-facing string: 'Validation failed'. Use self.tr().
tests/gui/test_message_manager.py:49
medium - Untranslated user-facing string: 'warning'. Use self.tr().
tests/gui/test_message_manager.py:49
medium - Untranslated user-facing string: 'Stack trace details'. Use self.tr().
tests/gui/test_message_manager.py:56
medium - Untranslated user-facing string: 'System Error'. Use self.tr().
tests/gui/test_message_manager.py:59
medium - Untranslated user-facing string: 'System Error'. Use self.tr().
tests/gui/test_message_manager.py:63
medium - Untranslated user-facing string: 'An unexpected error occurred: Something went wrong'. Use self.tr().
tests/gui/test_message_manager.py:64
medium - Untranslated user-facing string: 'critical'. Use self.tr().
tests/gui/test_message_manager.py:65
medium - Public class 'TestDialogToolManager' is missing a docstring.
tests/gui/test_main_dialog_tools.py:12
class TestDialogToolManager...
medium - Public class 'TestNavigationManager' is missing a docstring.
tests/gui/test_main_dialog_tools.py:194
class TestNavigationManager...
medium - Module is missing a docstring (PEP 257).
tests/gui/test_preview_renderer_custom.py:1
Module: tests/gui/test_preview_renderer_custom.py
medium - Public class 'TestPreviewRendererCustom' is missing a docstring.
tests/gui/test_preview_renderer_custom.py:10
class TestPreviewRendererCustom...
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_preview_renderer_custom.py:11
def setUp...
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_interpretation_tool.py:18
def setUp...
medium - Untranslated user-facing string: 'New Interpretation'. Use self.tr().
tests/gui/test_interpretation_tool.py:129
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_interpretation_tool.py:171
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_interpretation_tool.py:195
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_interpretation_tool.py:222
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_interpretation_tool.py:235
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_interpretation_tool.py:246
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_settings_page.py:26
def setUp...
medium - Untranslated user-facing string: ' DEBUG: ImportedQgsSettings: '. Use self.tr().
tests/gui/test_settings_page.py:32
medium - Untranslated user-facing string: ' (id: '. Use self.tr().
tests/gui/test_settings_page.py:32
medium - Untranslated user-facing string: 'DEBUG: MockQgsSettings: '. Use self.tr().
tests/gui/test_settings_page.py:34
medium - Untranslated user-facing string: ' (id: '. Use self.tr().
tests/gui/test_settings_page.py:34
medium - Untranslated user-facing string: 'DEBUG: mock_core.QgsSettings: '. Use self.tr().
tests/gui/test_settings_page.py:36
medium - Untranslated user-facing string: ' (id: '. Use self.tr().
tests/gui/test_settings_page.py:36
medium - Module is missing a docstring (PEP 257).
tests/exporters/test_dynamic_attrs.py:1
Module: tests/exporters/test_dynamic_attrs.py
medium - Public class 'TestDynamicAttributes' is missing a docstring.
tests/exporters/test_dynamic_attrs.py:10
class TestDynamicAttributes...
medium - Untranslated user-facing string: '2024-01-01'. Use self.tr().
tests/exporters/test_dynamic_attrs.py:25
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_measure_tool.py:15
def setUp...
medium - Function 'test_snapper_with_layer' has no type annotations.
tests/gui/test_measure_tool.py:44
def test_snapper_with_layer...
medium - Public function 'get_locator_side_effect' is missing a docstring.
tests/gui/test_measure_tool.py:301
def get_locator_side_effect...
medium - Function 'get_locator_side_effect' has no type annotations.
tests/gui/test_measure_tool.py:301
def get_locator_side_effect...
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_measure_tool.py:47
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_measure_tool.py:196
medium - Untranslated user-facing string: 'layer1'. Use self.tr().
tests/gui/test_measure_tool.py:243
medium - Public function 'setUp' is missing a docstring.
tests/exporters/test_drillhole_3d_exporter.py:27
def setUp...
medium - Function 'test_trace_exporter_real' has no type annotations.
tests/exporters/test_drillhole_3d_exporter.py:56
def test_trace_exporter_real...
medium - Function 'test_trace_exporter_projected' has no type annotations.
tests/exporters/test_drillhole_3d_exporter.py:82
def test_trace_exporter_projected...
medium - Function 'test_interval_exporter_real' has no type annotations.
tests/exporters/test_drillhole_3d_exporter.py:103
def test_interval_exporter_real...
medium - Function 'test_interval_exporter_projected' has no type annotations.
tests/exporters/test_drillhole_3d_exporter.py:124
def test_interval_exporter_projected...
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/exporters/test_drillhole_3d_exporter.py:45
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/exporters/test_drillhole_3d_exporter.py:119
medium - Module is missing a docstring (PEP 257).
tests/integration/base_integration.py:1
Module: tests/integration/base_integration.py
medium - Untranslated user-facing string: 'distance'. Use self.tr().
tests/exporters/test_exporters.py:33
medium - Untranslated user-facing string: 'elevation'. Use self.tr().
tests/exporters/test_exporters.py:34
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/exporters/test_exporters.py:35
medium - Untranslated user-facing string: 'nonexistent'. Use self.tr().
tests/exporters/test_exporters.py:70
medium - Untranslated user-facing string: 'default'. Use self.tr().
tests/exporters/test_exporters.py:70
medium - Untranslated user-facing string: 'default'. Use self.tr().
tests/exporters/test_exporters.py:70
medium - Untranslated user-facing string: 'nonexistent'. Use self.tr().
tests/exporters/test_exporters.py:75
medium - Module is missing a docstring (PEP 257).
tests/exporters/test_interpretation_3d_exporter.py:1
Module: tests/exporters/test_interpretation_3d_exporter.py
medium - Untranslated user-facing string: 'Test Unit'. Use self.tr().
tests/exporters/test_interpretation_3d_exporter.py:25
medium - Untranslated user-facing string: 'lithology'. Use self.tr().
tests/exporters/test_interpretation_3d_exporter.py:26
medium - Untranslated user-facing string: '2024-01-01'. Use self.tr().
tests/exporters/test_interpretation_3d_exporter.py:28
medium - Module is missing a docstring (PEP 257).
tests/integration/test_interpretation_workflow.py:1
Module: tests/integration/test_interpretation_workflow.py
medium - Public function 'setUp' is missing a docstring.
tests/integration/test_interpretation_workflow.py:18
def setUp...
medium - Untranslated user-facing string: 'test-id-1'. Use self.tr().
tests/integration/test_interpretation_workflow.py:30
medium - Untranslated user-facing string: 'Test Unit'. Use self.tr().
tests/integration/test_interpretation_workflow.py:31
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
tests/integration/test_interpretation_workflow.py:43
medium - Untranslated user-facing string: 'Test Unit'. Use self.tr().
tests/integration/test_interpretation_workflow.py:47
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
tests/integration/test_interpretation_workflow.py:64
medium - Untranslated user-facing string: 'Stored Unit'. Use self.tr().
tests/integration/test_interpretation_workflow.py:71
medium - Untranslated user-facing string: 'source'. Use self.tr().
tests/integration/test_interpretation_workflow.py:73
medium - Untranslated user-facing string: 'manual'. Use self.tr().
tests/integration/test_interpretation_workflow.py:73
medium - Untranslated user-facing string: 'interpretations'. Use self.tr().
tests/integration/test_interpretation_workflow.py:89
medium - Module is missing a docstring (PEP 257).
tests/integration/test_measurement_workflow.py:1
Module: tests/integration/test_measurement_workflow.py
medium - Public function 'setUp' is missing a docstring.
tests/integration/test_measurement_workflow.py:17
def setUp...
medium - Module is missing a docstring (PEP 257).
tests/integration/test_qgis_smoke.py:1
Module: tests/integration/test_qgis_smoke.py
medium - Public class 'DummyPlugin' is missing a docstring.
tests/integration/test_qgis_smoke.py:39
class DummyPlugin...
medium - Untranslated user-facing string: 'memory'. Use self.tr().
tests/integration/test_qgis_smoke.py:18
medium - Untranslated user-facing string: 'DEBUG: Project CRS: '. Use self.tr().
tests/integration/test_qgis_smoke.py:30
medium - Untranslated user-facing string: 'Sec Interp'. Use self.tr().
tests/integration/test_qgis_smoke.py:45
medium - Module is missing a docstring (PEP 257).
tests/integration/test_3d_integration.py:1
Module: tests/integration/test_3d_integration.py
medium - Public function 'setUpClass' is missing a docstring.
tests/integration/test_3d_integration.py:33
def setUpClass...
medium - Public function 'tearDownClass' is missing a docstring.
tests/integration/test_3d_integration.py:39
def tearDownClass...
medium - Public function 'setUp' is missing a docstring.
tests/integration/test_3d_integration.py:44
def setUp...
medium - Untranslated user-facing string: 'DEBUG: Exporting to '. Use self.tr().
tests/integration/test_3d_integration.py:71
medium - Untranslated user-facing string: 'Exporter returned False'. Use self.tr().
tests/integration/test_3d_integration.py:81
medium - Untranslated user-facing string: 'File '. Use self.tr().
tests/integration/test_3d_integration.py:84
medium - Untranslated user-facing string: ' does not exist after success'. Use self.tr().
tests/integration/test_3d_integration.py:84
medium - Untranslated user-facing string: 'intervals'. Use self.tr().
tests/integration/test_3d_integration.py:145
medium - Untranslated user-facing string: 'Interpretation exporter returned False'. Use self.tr().
tests/integration/test_3d_integration.py:180
medium - Untranslated user-facing string: 'QML style '. Use self.tr().
tests/integration/test_3d_integration.py:186
medium - Untranslated user-facing string: ' was not generated'. Use self.tr().
tests/integration/test_3d_integration.py:186
medium - Untranslated user-facing string: 'interp'. Use self.tr().
tests/integration/test_3d_integration.py:189
medium - Untranslated user-facing string: 'Layer is not valid'. Use self.tr().
tests/integration/test_3d_integration.py:190
medium - Untranslated user-facing string: 'Performance check failed: '. Use self.tr().
tests/benchmarks/benchmark_utils.py:63
medium - Untranslated user-facing string: ' took '. Use self.tr().
tests/benchmarks/benchmark_utils.py:63
medium - Untranslated user-facing string: 's (limit: '. Use self.tr().
tests/benchmarks/benchmark_utils.py:63
medium - Public function 'setUp' is missing a docstring.
tests/gui/test_preview_components.py:31
def setUp...
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/gui/test_preview_components.py:42
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/gui/test_preview_components.py:43
medium - Untranslated user-facing string: 'Unit B'. Use self.tr().
tests/gui/test_preview_components.py:44
medium - Untranslated user-facing string: 'Unit A'. Use self.tr().
tests/gui/test_preview_components.py:49
medium - Untranslated user-facing string: 'Test Layer'. Use self.tr().
tests/gui/test_preview_components.py:54
medium - Untranslated user-facing string: 'field=id:integer'. Use self.tr().
tests/gui/test_preview_components.py:54
medium - Untranslated user-facing string: 'Test Layer'. Use self.tr().
tests/gui/test_preview_components.py:58
medium - Untranslated user-facing string: 'memory'. Use self.tr().
tests/gui/test_preview_components.py:303
medium - Untranslated user-facing string: 'lithology'. Use self.tr().
tests/gui/test_preview_components.py:497
medium - Public function 'setUpClass' is missing a docstring.
tests/benchmarks/test_geometry_benchmarks.py:22
def setUpClass...
medium - Public function 'create_polygon' is missing a docstring.
tests/benchmarks/test_geometry_benchmarks.py:33
def create_polygon...
medium - Public function 'validate' is missing a docstring.
tests/benchmarks/test_geometry_benchmarks.py:44
def validate...
medium - Public function 'project_points' is missing a docstring.
tests/benchmarks/test_geometry_benchmarks.py:59
def project_points...
medium - Public function 'construct_3d' is missing a docstring.
tests/benchmarks/test_geometry_benchmarks.py:74
def construct_3d...
medium - Public function 'constGet' is missing a docstring.
tests/mocks/qgis_base.py:17
def constGet...
medium - Public function 'get' is missing a docstring.
tests/mocks/qgis_base.py:20
def get...
medium - Function 'tr' has no type annotations.
tests/mocks/qgis_base.py:31
def tr...
medium - Function 'setObjectName' has no type annotations.
tests/mocks/qgis_base.py:35
def setObjectName...
medium - Function 'setToolTip' has no type annotations.
tests/mocks/qgis_base.py:39
def setToolTip...
medium - Function 'property' has no type annotations.
tests/mocks/qgis_base.py:43
def property...
medium - Function 'setProperty' has no type annotations.
tests/mocks/qgis_base.py:47
def setProperty...
medium - Function '__getattr__' has no type annotations.
tests/mocks/qgis_base.py:58
def __getattr__...
medium - Public function 'reset_mock' is missing a docstring.
tests/mocks/qgis_base.py:65
def reset_mock...
medium - Public function 'setUp' is missing a docstring.
tests/benchmarks/test_export_benchmarks.py:27
def setUp...
medium - Public function 'tearDown' is missing a docstring.
tests/benchmarks/test_export_benchmarks.py:32
def tearDown...
medium - Public function 'write_shp' is missing a docstring.
tests/benchmarks/test_export_benchmarks.py:56
def write_shp...
medium - Public function 'write_shp' is missing a docstring.
tests/benchmarks/test_export_benchmarks.py:85
def write_shp...
medium - Untranslated user-facing string: 'Feature '. Use self.tr().
tests/benchmarks/test_export_benchmarks.py:45
medium - Untranslated user-facing string: 'ESRI Shapefile'. Use self.tr().
tests/benchmarks/test_export_benchmarks.py:58
medium - Untranslated user-facing string: 'ESRI Shapefile'. Use self.tr().
tests/benchmarks/test_export_benchmarks.py:87
medium - Module is missing a docstring (PEP 257).
tests/integration/test_3d_integration_advanced.py:1
Module: tests/integration/test_3d_integration_advanced.py
medium - Public class 'Test3DIntegrationAdvanced' is missing a docstring.
tests/integration/test_3d_integration_advanced.py:22
class Test3DIntegrationAdvanced...
medium - Public function 'setUp' is missing a docstring.
tests/integration/test_3d_integration_advanced.py:24
def setUp...
medium - Function '_create_memory_layer' has no type annotations.
tests/integration/test_3d_integration_advanced.py:32
def _create_memory_layer...
medium - Untranslated user-facing string: 'memory'. Use self.tr().
tests/integration/test_3d_integration_advanced.py:34
medium - Public class 'MockQgsMapCanvas' is missing a docstring.
tests/mocks/qgis_gui.py:7
class MockQgsMapCanvas...
medium - Public function 'mapSettings' is missing a docstring.
tests/mocks/qgis_gui.py:25
def mapSettings...
medium - Public function 'setLayers' is missing a docstring.
tests/mocks/qgis_gui.py:28
def setLayers...
medium - Function 'setLayers' has no type annotations.
tests/mocks/qgis_gui.py:28
def setLayers...
medium - Public function 'refresh' is missing a docstring.
tests/mocks/qgis_gui.py:31
def refresh...
medium - Public function 'xyCoords' is missing a docstring.
tests/mocks/qgis_gui.py:34
def xyCoords...
medium - Function 'xyCoords' has no type annotations.
tests/mocks/qgis_gui.py:34
def xyCoords...
medium - Public function 'mapUnitsPerPixel' is missing a docstring.
tests/mocks/qgis_gui.py:37
def mapUnitsPerPixel...
medium - Public function 'width' is missing a docstring.
tests/mocks/qgis_gui.py:40
def width...
medium - Public function 'height' is missing a docstring.
tests/mocks/qgis_gui.py:43
def height...
medium - Public class 'MockQgsMapTool' is missing a docstring.
tests/mocks/qgis_gui.py:47
class MockQgsMapTool...
medium - Public function 'activate' is missing a docstring.
tests/mocks/qgis_gui.py:54
def activate...
medium - Public function 'deactivate' is missing a docstring.
tests/mocks/qgis_gui.py:57
def deactivate...
medium - Public function 'canvasReleaseEvent' is missing a docstring.
tests/mocks/qgis_gui.py:60
def canvasReleaseEvent...
medium - Function 'canvasReleaseEvent' has no type annotations.
tests/mocks/qgis_gui.py:60
def canvasReleaseEvent...
medium - Public function 'canvasMoveEvent' is missing a docstring.
tests/mocks/qgis_gui.py:63
def canvasMoveEvent...
medium - Function 'canvasMoveEvent' has no type annotations.
tests/mocks/qgis_gui.py:63
def canvasMoveEvent...
medium - Public function 'keyPressEvent' is missing a docstring.
tests/mocks/qgis_gui.py:66
def keyPressEvent...
medium - Function 'keyPressEvent' has no type annotations.
tests/mocks/qgis_gui.py:66
def keyPressEvent...
medium - Public class 'MockQgsMapToolEmitPoint' is missing a docstring.
tests/mocks/qgis_gui.py:70
class MockQgsMapToolEmitPoint...
medium - Public function 'canvasPressEvent' is missing a docstring.
tests/mocks/qgis_gui.py:74
def canvasPressEvent...
medium - Function 'canvasPressEvent' has no type annotations.
tests/mocks/qgis_gui.py:74
def canvasPressEvent...
medium - Public function 'canvasReleaseEvent' is missing a docstring.
tests/mocks/qgis_gui.py:77
def canvasReleaseEvent...
medium - Function 'canvasReleaseEvent' has no type annotations.
tests/mocks/qgis_gui.py:77
def canvasReleaseEvent...
medium - Public function 'canvasMoveEvent' is missing a docstring.
tests/mocks/qgis_gui.py:80
def canvasMoveEvent...
medium - Function 'canvasMoveEvent' has no type annotations.
tests/mocks/qgis_gui.py:80
def canvasMoveEvent...
medium - Public class 'MockQgsRubberBand' is missing a docstring.
tests/mocks/qgis_gui.py:84
class MockQgsRubberBand...
medium - Public function 'addPoint' is missing a docstring.
tests/mocks/qgis_gui.py:88
def addPoint...
medium - Function 'addPoint' has no type annotations.
tests/mocks/qgis_gui.py:88
def addPoint...
medium - Public function 'reset' is missing a docstring.
tests/mocks/qgis_gui.py:91
def reset...
medium - Function 'reset' has no type annotations.
tests/mocks/qgis_gui.py:91
def reset...
medium - Public function 'show' is missing a docstring.
tests/mocks/qgis_gui.py:94
def show...
medium - Public function 'hide' is missing a docstring.
tests/mocks/qgis_gui.py:97
def hide...
medium - Public function 'setColor' is missing a docstring.
tests/mocks/qgis_gui.py:100
def setColor...
medium - Function 'setColor' has no type annotations.
tests/mocks/qgis_gui.py:100
def setColor...
medium - Public function 'setFillColor' is missing a docstring.
tests/mocks/qgis_gui.py:103
def setFillColor...
medium - Function 'setFillColor' has no type annotations.
tests/mocks/qgis_gui.py:103
def setFillColor...
medium - Public function 'setStrokeColor' is missing a docstring.
tests/mocks/qgis_gui.py:106
def setStrokeColor...
medium - Function 'setStrokeColor' has no type annotations.
tests/mocks/qgis_gui.py:106
def setStrokeColor...
medium - Public function 'setWidth' is missing a docstring.
tests/mocks/qgis_gui.py:109
def setWidth...
medium - Function 'setWidth' has no type annotations.
tests/mocks/qgis_gui.py:109
def setWidth...
medium - Public function 'setToGeometry' is missing a docstring.
tests/mocks/qgis_gui.py:112
def setToGeometry...
medium - Function 'setToGeometry' has no type annotations.
tests/mocks/qgis_gui.py:112
def setToGeometry...
medium - Public class 'MockQgsVertexMarker' is missing a docstring.
tests/mocks/qgis_gui.py:116
class MockQgsVertexMarker...
medium - Public function 'setCenter' is missing a docstring.
tests/mocks/qgis_gui.py:122
def setCenter...
medium - Function 'setCenter' has no type annotations.
tests/mocks/qgis_gui.py:122
def setCenter...
medium - Public function 'setColor' is missing a docstring.
tests/mocks/qgis_gui.py:125
def setColor...
medium - Function 'setColor' has no type annotations.
tests/mocks/qgis_gui.py:125
def setColor...
medium - Public function 'setIconSize' is missing a docstring.
tests/mocks/qgis_gui.py:128
def setIconSize...
medium - Function 'setIconSize' has no type annotations.
tests/mocks/qgis_gui.py:128
def setIconSize...
medium - Public function 'setIconType' is missing a docstring.
tests/mocks/qgis_gui.py:131
def setIconType...
medium - Function 'setIconType' has no type annotations.
tests/mocks/qgis_gui.py:131
def setIconType...
medium - Public function 'setPenWidth' is missing a docstring.
tests/mocks/qgis_gui.py:134
def setPenWidth...
medium - Function 'setPenWidth' has no type annotations.
tests/mocks/qgis_gui.py:134
def setPenWidth...
medium - Function 'transform' has no type annotations.
tests/mocks/qgis_core.py:35
def transform...
medium - Function 'intersects' has no type annotations.
tests/mocks/qgis_core.py:47
def intersects...
medium - Function 'setFilterFids' has no type annotations.
tests/mocks/qgis_core.py:57
def setFilterFids...
medium - Function 'setFilterRect' has no type annotations.
tests/mocks/qgis_core.py:61
def setFilterRect...
medium - Function 'setFilterExpression' has no type annotations.
tests/mocks/qgis_core.py:65
def setFilterExpression...
medium - Function 'setSubsetOfAttributes' has no type annotations.
tests/mocks/qgis_core.py:69
def setSubsetOfAttributes...
medium - Function 'setDestinationCrs' has no type annotations.
tests/mocks/qgis_core.py:73
def setDestinationCrs...
medium - Function 'combineExtentWith' has no type annotations.
tests/mocks/qgis_core.py:110
def combineExtentWith...
medium - Function 'mapLayer' has no type annotations.
tests/mocks/qgis_core.py:140
def mapLayer...
medium - Function 'mapLayersByName' has no type annotations.
tests/mocks/qgis_core.py:144
def mapLayersByName...
medium - Function 'addMapLayer' has no type annotations.
tests/mocks/qgis_core.py:148
def addMapLayer...
medium - Function 'removeMapLayer' has no type annotations.
tests/mocks/qgis_core.py:153
def removeMapLayer...
medium - Function 'readEntry' has no type annotations.
tests/mocks/qgis_core.py:170
def readEntry...
medium - Function 'writeEntry' has no type annotations.
tests/mocks/qgis_core.py:175
def writeEntry...
medium - Function 'value' has no type annotations.
tests/mocks/qgis_core.py:195
def value...
medium - Function 'setValue' has no type annotations.
tests/mocks/qgis_core.py:199
def setValue...
medium - Function 'beginGroup' has no type annotations.
tests/mocks/qgis_core.py:203
def beginGroup...
medium - Function 'contains' has no type annotations.
tests/mocks/qgis_core.py:211
def contains...
medium - Function 'remove' has no type annotations.
tests/mocks/qgis_core.py:215
def remove...
medium - mapLayersByName() can be imprecise. Consider mapLayers() or unique IDs.
tests/mocks/qgis_core.py:144
mapLayersByName(self, name):
medium - Function '_add_attributes' has no type annotations.
tests/mocks/qgis_layers.py:64
def _add_attributes...
medium - Function '_add_features' has no type annotations.
tests/mocks/qgis_layers.py:70
def _add_features...
medium - Function 'setCrs' has no type annotations.
tests/mocks/qgis_layers.py:84
def setCrs...
medium - Function 'setLabeling' has no type annotations.
tests/mocks/qgis_layers.py:108
def setLabeling...
medium - Function 'setLabelsEnabled' has no type annotations.
tests/mocks/qgis_layers.py:112
def setLabelsEnabled...
medium - Function 'saveNamedStyle' has no type annotations.
tests/mocks/qgis_layers.py:116
def saveNamedStyle...
medium - Untranslated user-facing string: 'memory'. Use self.tr().
tests/mocks/qgis_layers.py:136
medium - Untranslated user-facing string: 'field='. Use self.tr().
tests/mocks/qgis_layers.py:142
medium - Untranslated user-facing string: 'double'. Use self.tr().
tests/mocks/qgis_layers.py:150
medium - Public function 'mock_geometry_type' is missing a docstring.
tests/mocks/qgis_utils.py:6
def mock_geometry_type...
medium - Function 'mock_geometry_type' has no type annotations.
tests/mocks/qgis_utils.py:6
def mock_geometry_type...
medium - Public class 'MockQgsWkbTypes' is missing a docstring.
tests/mocks/qgis_utils.py:16
class MockQgsWkbTypes...
medium - Public class 'GeometryType' is missing a docstring.
tests/mocks/qgis_utils.py:28
class GeometryType...
medium - Public function 'geometryType' is missing a docstring.
tests/mocks/qgis_utils.py:33
def geometryType...
medium - Function 'geometryType' has no type annotations.
tests/mocks/qgis_utils.py:33
def geometryType...
medium - Public function 'hasZ' is missing a docstring.
tests/mocks/qgis_utils.py:37
def hasZ...
medium - Function 'hasZ' has no type annotations.
tests/mocks/qgis_utils.py:37
def hasZ...
medium - Public class 'MockQgis' is missing a docstring.
tests/mocks/qgis_utils.py:41
class MockQgis...
medium - Public class 'LayerFilter' is missing a docstring.
tests/mocks/qgis_utils.py:45
class LayerFilter...
medium - Public class 'MockQgsTask' is missing a docstring.
tests/mocks/qgis_utils.py:50
class MockQgsTask...
medium - Function 'append' has no type annotations.
tests/mocks/qgis_features.py:38
def append...
medium - Function '__getitem__' has no type annotations.
tests/mocks/qgis_features.py:42
def __getitem__...
medium - Function 'indexFromName' has no type annotations.
tests/mocks/qgis_features.py:54
def indexFromName...
medium - Function 'indexOf' has no type annotations.
tests/mocks/qgis_features.py:61
def indexOf...
medium - Function 'field' has no type annotations.
tests/mocks/qgis_features.py:69
def field...
medium - Function 'at' has no type annotations.
tests/mocks/qgis_features.py:74
def at...
medium - Function 'setGeometry' has no type annotations.
tests/mocks/qgis_features.py:90
def setGeometry...
medium - Function 'setFields' has no type annotations.
tests/mocks/qgis_features.py:102
def setFields...
medium - Function 'setAttribute' has no type annotations.
tests/mocks/qgis_features.py:108
def setAttribute...
medium - Function 'attribute' has no type annotations.
tests/mocks/qgis_features.py:121
def attribute...
medium - Function 'setAttributes' has no type annotations.
tests/mocks/qgis_features.py:132
def setAttributes...
medium - Function '__getitem__' has no type annotations.
tests/mocks/qgis_features.py:148
def __getitem__...
medium - Function '__setitem__' has no type annotations.
tests/mocks/qgis_features.py:151
def __setitem__...
medium - Public function 'setUp' is missing a docstring.
tests/core/validation/test_service_validation.py:25
def setUp...
medium - Untranslated user-facing string: 'Line Layer'. Use self.tr().
tests/core/validation/test_service_validation.py:33
medium - Untranslated user-facing string: 'positive'. Use self.tr().
tests/core/validation/test_service_validation.py:66
medium - Untranslated user-facing string: 'exceeds raster band count'. Use self.tr().
tests/core/validation/test_service_validation.py:78
medium - Untranslated user-facing string: 'Field 'not_exist' not found'. Use self.tr().
tests/core/validation/test_service_validation.py:91
medium - Untranslated user-facing string: 'Invalid Layer'. Use self.tr().
tests/core/validation/test_service_validation.py:97
medium - Untranslated user-facing string: 'Invalid layer'. Use self.tr().
tests/core/validation/test_service_validation.py:103
medium - Untranslated user-facing string: 'must be positive'. Use self.tr().
tests/core/validation/test_service_validation.py:124
medium - Untranslated user-facing string: 'Section azimuth must be between 0 and 360'. Use self.tr().
tests/core/validation/test_service_validation.py:142
medium - Untranslated user-facing string: 'Collar ID field 'id_does_not_exist' not found'. Use self.tr().
tests/core/validation/test_service_validation.py:169
medium - Public class 'MockQgsGeometry' is missing a docstring.
tests/mocks/qgis_geometry.py:7
class MockQgsGeometry...
medium - Public function 'fromPolygonXY' is missing a docstring.
tests/mocks/qgis_geometry.py:45
def fromPolygonXY...
medium - Function 'fromPolygonXY' has no type annotations.
tests/mocks/qgis_geometry.py:45
def fromPolygonXY...
medium - Public function 'fromPolylineXY' is missing a docstring.
tests/mocks/qgis_geometry.py:52
def fromPolylineXY...
medium - Function 'fromPolylineXY' has no type annotations.
tests/mocks/qgis_geometry.py:52
def fromPolylineXY...
medium - Public function 'fromPolylineZ' is missing a docstring.
tests/mocks/qgis_geometry.py:59
def fromPolylineZ...
medium - Function 'fromPolylineZ' has no type annotations.
tests/mocks/qgis_geometry.py:59
def fromPolylineZ...
medium - Public function 'fromPolygonZ' is missing a docstring.
tests/mocks/qgis_geometry.py:66
def fromPolygonZ...
medium - Function 'fromPolygonZ' has no type annotations.
tests/mocks/qgis_geometry.py:66
def fromPolygonZ...
medium - Public function 'fromPolyline' is missing a docstring.
tests/mocks/qgis_geometry.py:73
def fromPolyline...
medium - Function 'fromPolyline' has no type annotations.
tests/mocks/qgis_geometry.py:73
def fromPolyline...
medium - Public function 'fromPointXY' is missing a docstring.
tests/mocks/qgis_geometry.py:79
def fromPointXY...
medium - Function 'fromPointXY' has no type annotations.
tests/mocks/qgis_geometry.py:79
def fromPointXY...
medium - Public function 'fromWkt' is missing a docstring.
tests/mocks/qgis_geometry.py:86
def fromWkt...
medium - Function 'fromWkt' has no type annotations.
tests/mocks/qgis_geometry.py:86
def fromWkt...
medium - Public function 'asWkt' is missing a docstring.
tests/mocks/qgis_geometry.py:97
def asWkt...
medium - Public function 'vertices' is missing a docstring.
tests/mocks/qgis_geometry.py:107
def vertices...
medium - Public function 'asPolyline' is missing a docstring.
tests/mocks/qgis_geometry.py:124
def asPolyline...
medium - Public function 'asPolygon' is missing a docstring.
tests/mocks/qgis_geometry.py:127
def asPolygon...
medium - Public function 'is3D' is missing a docstring.
tests/mocks/qgis_geometry.py:130
def is3D...
medium - Public function 'wkbType' is missing a docstring.
tests/mocks/qgis_geometry.py:133
def wkbType...
medium - Public function 'pointN' is missing a docstring.
tests/mocks/qgis_geometry.py:136
def pointN...
medium - Function 'pointN' has no type annotations.
tests/mocks/qgis_geometry.py:136
def pointN...
medium - Public function 'asMultiPolygon' is missing a docstring.
tests/mocks/qgis_geometry.py:142
def asMultiPolygon...
medium - Public function 'asMultiPolyline' is missing a docstring.
tests/mocks/qgis_geometry.py:145
def asMultiPolyline...
medium - Public function 'intersection' is missing a docstring.
tests/mocks/qgis_geometry.py:148
def intersection...
medium - Function 'intersection' has no type annotations.
tests/mocks/qgis_geometry.py:148
def intersection...
medium - Public function 'intersects' is missing a docstring.
tests/mocks/qgis_geometry.py:151
def intersects...
medium - Function 'intersects' has no type annotations.
tests/mocks/qgis_geometry.py:151
def intersects...
medium - Public function 'isEmpty' is missing a docstring.
tests/mocks/qgis_geometry.py:154
def isEmpty...
medium - Public function 'isNull' is missing a docstring.
tests/mocks/qgis_geometry.py:159
def isNull...
medium - Public function 'isMultipart' is missing a docstring.
tests/mocks/qgis_geometry.py:162
def isMultipart...
medium - Public function 'isGeosValid' is missing a docstring.
tests/mocks/qgis_geometry.py:165
def isGeosValid...
medium - Public function 'clone' is missing a docstring.
tests/mocks/qgis_geometry.py:168
def clone...
medium - Public function 'centroid' is missing a docstring.
tests/mocks/qgis_geometry.py:177
def centroid...
medium - Public function 'makeValid' is missing a docstring.
tests/mocks/qgis_geometry.py:185
def makeValid...
medium - Public function 'asPoint' is missing a docstring.
tests/mocks/qgis_geometry.py:188
def asPoint...
medium - Public function 'type' is missing a docstring.
tests/mocks/qgis_geometry.py:191
def type...
medium - Public function 'length' is missing a docstring.
tests/mocks/qgis_geometry.py:200
def length...
medium - Public function 'interpolate' is missing a docstring.
tests/mocks/qgis_geometry.py:210
def interpolate...
medium - Function 'interpolate' has no type annotations.
tests/mocks/qgis_geometry.py:210
def interpolate...
medium - Public function 'lineLocatePoint' is missing a docstring.
tests/mocks/qgis_geometry.py:213
def lineLocatePoint...
medium - Function 'lineLocatePoint' has no type annotations.
tests/mocks/qgis_geometry.py:213
def lineLocatePoint...
medium - Public function 'nearestPoint' is missing a docstring.
tests/mocks/qgis_geometry.py:218
def nearestPoint...
medium - Function 'nearestPoint' has no type annotations.
tests/mocks/qgis_geometry.py:218
def nearestPoint...
medium - Public function 'simplify' is missing a docstring.
tests/mocks/qgis_geometry.py:231
def simplify...
medium - Function 'simplify' has no type annotations.
tests/mocks/qgis_geometry.py:231
def simplify...
medium - Public function 'buffer' is missing a docstring.
tests/mocks/qgis_geometry.py:234
def buffer...
medium - Function 'buffer' has no type annotations.
tests/mocks/qgis_geometry.py:234
def buffer...
medium - Public function 'densifyByDistance' is missing a docstring.
tests/mocks/qgis_geometry.py:247
def densifyByDistance...
medium - Function 'densifyByDistance' has no type annotations.
tests/mocks/qgis_geometry.py:247
def densifyByDistance...
medium - Public function 'boundingBox' is missing a docstring.
tests/mocks/qgis_geometry.py:250
def boundingBox...
medium - Public function 'transform' is missing a docstring.
tests/mocks/qgis_geometry.py:267
def transform...
medium - Function 'transform' has no type annotations.
tests/mocks/qgis_geometry.py:267
def transform...
medium - Public function 'vertexAt' is missing a docstring.
tests/mocks/qgis_geometry.py:270
def vertexAt...
medium - Function 'vertexAt' has no type annotations.
tests/mocks/qgis_geometry.py:270
def vertexAt...
medium - Public class 'MockQgsLineString' is missing a docstring.
tests/mocks/qgis_geometry.py:284
class MockQgsLineString...
medium - Public function 'points' is missing a docstring.
tests/mocks/qgis_geometry.py:289
def points...
medium - Public class 'MockQgsPolygon' is missing a docstring.
tests/mocks/qgis_geometry.py:293
class MockQgsPolygon...
medium - Public function 'setExteriorRing' is missing a docstring.
tests/mocks/qgis_geometry.py:298
def setExteriorRing...
medium - Function 'setExteriorRing' has no type annotations.
tests/mocks/qgis_geometry.py:298
def setExteriorRing...
medium - Public function 'addInteriorRing' is missing a docstring.
tests/mocks/qgis_geometry.py:301
def addInteriorRing...
medium - Function 'addInteriorRing' has no type annotations.
tests/mocks/qgis_geometry.py:301
def addInteriorRing...
medium - Public class 'MockQgsPoint' is missing a docstring.
tests/mocks/qgis_geometry.py:305
class MockQgsPoint...
medium - Public function 'x' is missing a docstring.
tests/mocks/qgis_geometry.py:316
def x...
medium - Public function 'y' is missing a docstring.
tests/mocks/qgis_geometry.py:319
def y...
medium - Public function 'z' is missing a docstring.
tests/mocks/qgis_geometry.py:322
def z...
medium - Public function 'setX' is missing a docstring.
tests/mocks/qgis_geometry.py:325
def setX...
medium - Function 'setX' has no type annotations.
tests/mocks/qgis_geometry.py:325
def setX...
medium - Public function 'setY' is missing a docstring.
tests/mocks/qgis_geometry.py:328
def setY...
medium - Function 'setY' has no type annotations.
tests/mocks/qgis_geometry.py:328
def setY...
medium - Public function 'setZ' is missing a docstring.
tests/mocks/qgis_geometry.py:331
def setZ...
medium - Function 'setZ' has no type annotations.
tests/mocks/qgis_geometry.py:331
def setZ...
medium - Public class 'MockQgsPointXY' is missing a docstring.
tests/mocks/qgis_geometry.py:339
class MockQgsPointXY...
medium - Public function 'distance' is missing a docstring.
tests/mocks/qgis_geometry.py:346
def distance...
medium - Function 'distance' has no type annotations.
tests/mocks/qgis_geometry.py:346
def distance...
medium - Public function 'azimuth' is missing a docstring.
tests/mocks/qgis_geometry.py:349
def azimuth...
medium - Function 'azimuth' has no type annotations.
tests/mocks/qgis_geometry.py:349
def azimuth...
medium - Public function 'compare' is missing a docstring.
tests/mocks/qgis_geometry.py:358
def compare...
medium - Function 'compare' has no type annotations.
tests/mocks/qgis_geometry.py:358
def compare...
medium - Untranslated user-facing string: 'LINESTRING ('. Use self.tr().
tests/mocks/qgis_geometry.py:104
medium - Untranslated user-facing string: 'GEOMETRYCOLLECTION EMPTY'. Use self.tr().
tests/mocks/qgis_geometry.py:105
medium - Untranslated user-facing string: 'points'. Use self.tr().
tests/mocks/qgis_geometry.py:278
medium - Untranslated user-facing string: 'points'. Use self.tr().
tests/mocks/qgis_geometry.py:299
medium - Untranslated user-facing string: 'points'. Use self.tr().
tests/mocks/qgis_geometry.py:302
medium - Public function 'test_add_error' is missing a docstring.
tests/core/validation/test_validation_helpers.py:17
def test_add_error...
medium - Public function 'test_add_warning' is missing a docstring.
tests/core/validation/test_validation_helpers.py:31
def test_add_warning...
medium - Public function 'test_raise_if_errors' is missing a docstring.
tests/core/validation/test_validation_helpers.py:39
def test_raise_if_errors...
medium - Public function 'test_no_raise_if_only_warnings' is missing a docstring.
tests/core/validation/test_validation_helpers.py:45
def test_no_raise_if_only_warnings...
medium - Public function 'test_rule_passed' is missing a docstring.
tests/core/validation/test_validation_helpers.py:57
def test_rule_passed...
medium - Public function 'test_rule_failed' is missing a docstring.
tests/core/validation/test_validation_helpers.py:71
def test_rule_failed...
medium - Public function 'test_valid_ranges' is missing a docstring.
tests/core/validation/test_validation_helpers.py:105
def test_valid_ranges...
medium - Public function 'test_extreme_values' is missing a docstring.
tests/core/validation/test_validation_helpers.py:110
def test_extreme_values...
medium - Untranslated user-facing string: 'Test Error'. Use self.tr().
tests/core/validation/test_validation_helpers.py:19
medium - Untranslated user-facing string: 'Test Error'. Use self.tr().
tests/core/validation/test_validation_helpers.py:24
medium - Untranslated user-facing string: 'Test Warning'. Use self.tr().
tests/core/validation/test_validation_helpers.py:33
medium - Untranslated user-facing string: 'warning'. Use self.tr().
tests/core/validation/test_validation_helpers.py:37
medium - Untranslated user-facing string: 'Just a warning'. Use self.tr().
tests/core/validation/test_validation_helpers.py:47
medium - Untranslated user-facing string: 'Should not raise ValidationError for warnings only'. Use self.tr().
tests/core/validation/test_validation_helpers.py:51
medium - Untranslated user-facing string: 'filled'. Use self.tr().
tests/core/validation/test_validation_helpers.py:60
medium - Untranslated user-facing string: 'Value missing'. Use self.tr().
tests/core/validation/test_validation_helpers.py:65
medium - Untranslated user-facing string: 'Value missing'. Use self.tr().
tests/core/validation/test_validation_helpers.py:79
medium - Untranslated user-facing string: 'Value missing'. Use self.tr().
tests/core/validation/test_validation_helpers.py:84
medium - Untranslated user-facing string: 'Value missing'. Use self.tr().
tests/core/validation/test_validation_helpers.py:96
medium - Untranslated user-facing string: 'Vertical exaggeration'. Use self.tr().
tests/core/validation/test_validation_helpers.py:114
medium - Untranslated user-facing string: 'Buffer distance'. Use self.tr().
tests/core/validation/test_validation_helpers.py:115
medium - Function '_connect_slot' has no type annotations.
tests/mocks/qt_mocks.py:17
def _connect_slot...
medium - Public function 'mock_signal' is missing a docstring.
tests/mocks/qt_mocks.py:30
def mock_signal...
medium - Function 'translate' has no type annotations.
tests/mocks/qt_mocks.py:47
def translate...
medium - Function 'installTranslator' has no type annotations.
tests/mocks/qt_mocks.py:52
def installTranslator...
medium - Function 'sleep' has no type annotations.
tests/mocks/qt_mocks.py:61
def sleep...
medium - Function 'darker' has no type annotations.
tests/mocks/qt_mocks.py:98
def darker...
medium - Function 'setAlpha' has no type annotations.
tests/mocks/qt_mocks.py:102
def setAlpha...
medium - Function 'fromHsv' has no type annotations.
tests/mocks/qt_mocks.py:119
def fromHsv...
medium - Public function 'setFrameShape' is missing a docstring.
tests/mocks/qt_mocks.py:161
def setFrameShape...
medium - Function 'setFrameShape' has no type annotations.
tests/mocks/qt_mocks.py:161
def setFrameShape...
medium - Public function 'setLayout' is missing a docstring.
tests/mocks/qt_mocks.py:164
def setLayout...
medium - Function 'setLayout' has no type annotations.
tests/mocks/qt_mocks.py:164
def setLayout...
medium - Public function 'layout' is missing a docstring.
tests/mocks/qt_mocks.py:167
def layout...
medium - Function 'setVisible' has no type annotations.
tests/mocks/qt_mocks.py:187
def setVisible...
medium - Function 'setLayout' has no type annotations.
tests/mocks/qt_mocks.py:191
def setLayout...
medium - Function 'setWindowTitle' has no type annotations.
tests/mocks/qt_mocks.py:199
def setWindowTitle...
medium - Function 'setMinimumSize' has no type annotations.
tests/mocks/qt_mocks.py:203
def setMinimumSize...
medium - Function 'setMaximumSize' has no type annotations.
tests/mocks/qt_mocks.py:207
def setMaximumSize...
medium - Function 'setEnabled' has no type annotations.
tests/mocks/qt_mocks.py:211
def setEnabled...
medium - Function 'setChecked' has no type annotations.
tests/mocks/qt_mocks.py:215
def setChecked...
medium - Function 'setText' has no type annotations.
tests/mocks/qt_mocks.py:224
def setText...
medium - Function 'setValue' has no type annotations.
tests/mocks/qt_mocks.py:233
def setValue...
medium - Function 'resize' has no type annotations.
tests/mocks/qt_mocks.py:254
def resize...
medium - Function 'setFrameShape' has no type annotations.
tests/mocks/qt_mocks.py:258
def setFrameShape...
medium - Function 'setStyleSheet' has no type annotations.
tests/mocks/qt_mocks.py:262
def setStyleSheet...
medium - Function 'setFixedSize' has no type annotations.
tests/mocks/qt_mocks.py:266
def setFixedSize...
medium - Function 'setIcon' has no type annotations.
tests/mocks/qt_mocks.py:270
def setIcon...
medium - Function 'setToolTip' has no type annotations.
tests/mocks/qt_mocks.py:274
def setToolTip...
medium - Function 'setCheckable' has no type annotations.
tests/mocks/qt_mocks.py:278
def setCheckable...
medium - Function 'setOpenExternalLinks' has no type annotations.
tests/mocks/qt_mocks.py:282
def setOpenExternalLinks...
medium - Function 'addItem' has no type annotations.
tests/mocks/qt_mocks.py:287
def addItem...
medium - Function 'addItems' has no type annotations.
tests/mocks/qt_mocks.py:291
def addItems...
medium - Function 'setCurrentIndex' has no type annotations.
tests/mocks/qt_mocks.py:303
def setCurrentIndex...
medium - Function 'setReadOnly' has no type annotations.
tests/mocks/qt_mocks.py:311
def setReadOnly...
medium - Function 'setMaximumWidth' has no type annotations.
tests/mocks/qt_mocks.py:315
def setMaximumWidth...
medium - Function 'addWidget' has no type annotations.
tests/mocks/qt_mocks.py:327
def addWidget...
medium - Function 'addLayout' has no type annotations.
tests/mocks/qt_mocks.py:331
def addLayout...
medium - Function 'addStretch' has no type annotations.
tests/mocks/qt_mocks.py:335
def addStretch...
medium - Function 'setContentsMargins' has no type annotations.
tests/mocks/qt_mocks.py:339
def setContentsMargins...
medium - Function 'setSpacing' has no type annotations.
tests/mocks/qt_mocks.py:343
def setSpacing...
medium - Function 'insertWidget' has no type annotations.
tests/mocks/qt_mocks.py:351
def insertWidget...
medium - Function 'addItem' has no type annotations.
tests/mocks/qt_mocks.py:367
def addItem...
medium - Function 'setCurrentRow' has no type annotations.
tests/mocks/qt_mocks.py:371
def setCurrentRow...
medium - Function 'setIconSize' has no type annotations.
tests/mocks/qt_mocks.py:380
def setIconSize...
medium - Function 'setFixedWidth' has no type annotations.
tests/mocks/qt_mocks.py:384
def setFixedWidth...
medium - Function 'setStyleSheet' has no type annotations.
tests/mocks/qt_mocks.py:388
def setStyleSheet...
medium - Function 'setText' has no type annotations.
tests/mocks/qt_mocks.py:402
def setText...
medium - Function 'setIcon' has no type annotations.
tests/mocks/qt_mocks.py:410
def setIcon...
medium - Function 'setTextAlignment' has no type annotations.
tests/mocks/qt_mocks.py:414
def setTextAlignment...
medium - Function 'test_read_plugin_metadata_success' has no type annotations.
tests/core/utils/test_metadata_reader.py:26
def test_read_plugin_metadata_success...
medium - Function 'test_read_plugin_metadata_file_not_found' has no type annotations.
tests/core/utils/test_metadata_reader.py:57
def test_read_plugin_metadata_file_not_found...
medium - Function 'test_read_plugin_metadata_missing_fields' has no type annotations.
tests/core/utils/test_metadata_reader.py:72
def test_read_plugin_metadata_missing_fields...
medium - Public function 'side_effect' is missing a docstring.
tests/core/utils/test_metadata_reader.py:83
def side_effect...
medium - Function 'side_effect' has no type annotations.
tests/core/utils/test_metadata_reader.py:83
def side_effect...
medium - Untranslated user-facing string: 'Test Plugin'. Use self.tr().
tests/core/utils/test_metadata_reader.py:50
medium - Untranslated user-facing string: 'version'. Use self.tr().
tests/core/utils/test_metadata_reader.py:51
medium - Untranslated user-facing string: 'author'. Use self.tr().
tests/core/utils/test_metadata_reader.py:52
medium - Untranslated user-facing string: 'Test Author'. Use self.tr().
tests/core/utils/test_metadata_reader.py:52
medium - Untranslated user-facing string: 'homepage'. Use self.tr().
tests/core/utils/test_metadata_reader.py:54
medium - Untranslated user-facing string: 'version'. Use self.tr().
tests/core/utils/test_metadata_reader.py:84
medium - Untranslated user-facing string: 'Test Value'. Use self.tr().
tests/core/utils/test_metadata_reader.py:86
medium - Untranslated user-facing string: 'Sec Interp'. Use self.tr().
tests/core/utils/test_metadata_reader.py:100
medium - Untranslated user-facing string: 'version'. Use self.tr().
tests/core/utils/test_metadata_reader.py:101
medium - Untranslated user-facing string: 'author'. Use self.tr().
tests/core/utils/test_metadata_reader.py:102
medium - Untranslated user-facing string: 'Could not find real metadata.txt - path logic might be wrong'. Use self.tr().
tests/core/utils/test_metadata_reader.py:104
medium - Untranslated user-facing string: 'between 0.0 and 100.0'. Use self.tr().
tests/core/validation/test_validators.py:36
medium - Untranslated user-facing string: 'must be positive'. Use self.tr().
tests/core/validation/test_validators.py:68
medium - Untranslated user-facing string: 'must be non-negative'. Use self.tr().
tests/core/validation/test_validators.py:95
medium - Untranslated user-facing string: ' hello '. Use self.tr().
tests/core/validation/test_validators.py:109
medium - Untranslated user-facing string: 'cannot be empty'. Use self.tr().
tests/core/validation/test_validators.py:116
medium - Untranslated user-facing string: ' '. Use self.tr().
tests/core/validation/test_validators.py:122
medium - Untranslated user-facing string: 'must be int'. Use self.tr().
tests/core/validation/test_validators.py:144
medium - Untranslated user-facing string: 'between'. Use self.tr().
tests/core/validation/test_validators.py:209
medium - Untranslated user-facing string: 'percent'. Use self.tr().
tests/core/validation/test_validators.py:217
medium - Untranslated user-facing string: 'Line layer'. Use self.tr().
core/services/geology_service.py:182
medium - Untranslated user-facing string: 'Raster layer'. Use self.tr().
core/services/geology_service.py:183
medium - Untranslated user-facing string: 'Invalid layer: '. Use self.tr().
core/services/geology_service.py:187
medium - Untranslated user-facing string: '. Please check input layers.'. Use self.tr().
core/services/geology_service.py:187
medium - Untranslated user-facing string: 'Invalid layer: Outcrop layer. Please check input layers.'. Use self.tr().
core/services/geology_service.py:193
medium - Untranslated user-facing string: 'Band number must be positive.'. Use self.tr().
core/services/geology_service.py:199
medium - Untranslated user-facing string: 'Band number '. Use self.tr().
core/services/geology_service.py:203
medium - Untranslated user-facing string: ' exceeds raster band count ('. Use self.tr().
core/services/geology_service.py:203
medium - Untranslated user-facing string: 'Field ''. Use self.tr().
core/services/geology_service.py:210
medium - Untranslated user-facing string: '' not found in outcrop layer.'. Use self.tr().
core/services/geology_service.py:210
medium - Untranslated user-facing string: 'Line layer has no features'. Use self.tr().
core/services/geology_service.py:351
medium - Untranslated user-facing string: 'Line geometry is not valid'. Use self.tr().
core/services/geology_service.py:355
medium - Untranslated user-facing string: 'Line layer has no features'. Use self.tr().
core/services/profile_service.py:71
medium - Untranslated user-facing string: 'Line geometry is not valid'. Use self.tr().
core/services/profile_service.py:75
medium - Untranslated user-facing string: 'Buffer width must be positive, got '. Use self.tr().
core/services/drillhole_service.py:92
medium - Untranslated user-facing string: 'geometry'. Use self.tr().
core/services/drillhole_service.py:95
medium - Untranslated user-facing string: 'Line layer has no features'. Use self.tr().
core/services/drillhole_service.py:256
medium - Untranslated user-facing string: 'Buffer width'. Use self.tr().
core/services/drillhole_service.py:311
medium - Untranslated user-facing string: 'Section azimuth'. Use self.tr().
core/services/drillhole_service.py:312
medium - Untranslated user-facing string: 'Collar ID field ''. Use self.tr().
core/services/drillhole_service.py:319
medium - Untranslated user-facing string: '' not found.'. Use self.tr().
core/services/drillhole_service.py:319
medium - Untranslated user-facing string: 'Field ''. Use self.tr().
core/services/drillhole_service.py:324
medium - Untranslated user-facing string: '' not found for coordinate extraction.'. Use self.tr().
core/services/drillhole_service.py:324
medium - Untranslated user-facing string: 'Data error in hole '. Use self.tr().
core/services/drillhole_service.py:629
medium - Untranslated user-facing string: 'Processing error in hole '. Use self.tr().
core/services/drillhole_service.py:631
medium - Untranslated user-facing string: 'Runtime or attribute error processing hole '. Use self.tr().
core/services/drillhole_service.py:633
medium - Untranslated user-facing string: 'Unexpected processing error: '. Use self.tr().
core/services/drillhole_service.py:634
medium - Untranslated user-facing string: 'Critical unexpected error processing hole '. Use self.tr().
core/services/drillhole_service.py:636
medium - Untranslated user-facing string: 'Topography Generation'. Use self.tr().
core/services/preview_service.py:109
medium - Untranslated user-facing string: 'Topography Points'. Use self.tr().
core/services/preview_service.py:127
medium - Untranslated user-facing string: 'Structure Generation'. Use self.tr().
core/services/preview_service.py:131
medium - Untranslated user-facing string: 'Structure Points'. Use self.tr().
core/services/preview_service.py:153
medium - Untranslated user-facing string: 'Drillhole Generation'. Use self.tr().
core/services/preview_service.py:157
medium - Untranslated user-facing string: 'Failed to project drillhole collars: '. Use self.tr().
core/services/preview_service.py:208
medium - Untranslated user-facing string: 'Failed to process drillhole intervals: '. Use self.tr().
core/services/preview_service.py:255
medium - Untranslated user-facing string: 'Failed to process drillhole intervals: '. Use self.tr().
core/services/preview_service.py:256
medium - Untranslated user-facing string: 'Unexpected error during drillhole processing'. Use self.tr().
core/services/preview_service.py:258
medium - Untranslated user-facing string: 'Unexpected error during drillhole processing'. Use self.tr().
core/services/preview_service.py:259
medium - Untranslated user-facing string: 'No profile data available for export'. Use self.tr().
core/services/export_service.py:69
medium - Untranslated user-facing string: 'Section line layer not found in parameters'. Use self.tr().
core/services/export_service.py:73
medium - Untranslated user-facing string: '✓ Saving files...'. Use self.tr().
core/services/export_service.py:75
medium - Untranslated user-facing string: ' ✓ All files saved to: '. Use self.tr().
core/services/export_service.py:88
medium - Untranslated user-facing string: ' - topo_profile.csv'. Use self.tr().
core/services/export_service.py:150
medium - Untranslated user-facing string: ' - profile_line.shp'. Use self.tr().
core/services/export_service.py:150
medium - Untranslated user-facing string: 'Topography export failed: '. Use self.tr().
core/services/export_service.py:152
medium - Untranslated user-facing string: 'Topography export failed: '. Use self.tr().
core/services/export_service.py:153
medium - Untranslated user-facing string: 'Unexpected system error during topography export'. Use self.tr().
core/services/export_service.py:155
medium - Untranslated user-facing string: 'Critical error exporting topography: '. Use self.tr().
core/services/export_service.py:156
medium - Untranslated user-facing string: 'geology'. Use self.tr().
core/services/export_service.py:176
medium - Untranslated user-facing string: ' - geol_profile.csv'. Use self.tr().
core/services/export_service.py:181
medium - Untranslated user-facing string: ' - geol_profile.shp'. Use self.tr().
core/services/export_service.py:181
medium - Untranslated user-facing string: 'Geology export failed: '. Use self.tr().
core/services/export_service.py:183
medium - Untranslated user-facing string: 'Geology export failed: '. Use self.tr().
core/services/export_service.py:184
medium - Untranslated user-facing string: 'Unexpected system error during geology export'. Use self.tr().
core/services/export_service.py:186
medium - Untranslated user-facing string: 'Critical error exporting geology: '. Use self.tr().
core/services/export_service.py:187
medium - Untranslated user-facing string: ' - structural_profile.csv'. Use self.tr().
core/services/export_service.py:224
medium - Untranslated user-facing string: ' - structural_profile.shp'. Use self.tr().
core/services/export_service.py:224
medium - Untranslated user-facing string: 'Structure export failed: '. Use self.tr().
core/services/export_service.py:226
medium - Untranslated user-facing string: 'Structure export failed: '. Use self.tr().
core/services/export_service.py:227
medium - Untranslated user-facing string: 'Unexpected system error during structure export'. Use self.tr().
core/services/export_service.py:229
medium - Untranslated user-facing string: 'Critical error exporting structures: '. Use self.tr().
core/services/export_service.py:230
medium - Untranslated user-facing string: ' - drillhole_traces.shp'. Use self.tr().
core/services/export_service.py:257
medium - Untranslated user-facing string: ' - drillhole_intervals.shp'. Use self.tr().
core/services/export_service.py:257
medium - Untranslated user-facing string: 'Drillhole export failed: '. Use self.tr().
core/services/export_service.py:264
medium - Untranslated user-facing string: 'Drillhole export failed: '. Use self.tr().
core/services/export_service.py:265
medium - Untranslated user-facing string: 'Unexpected system error during drillhole export'. Use self.tr().
core/services/export_service.py:267
medium - Untranslated user-facing string: 'Critical error exporting drillholes: '. Use self.tr().
core/services/export_service.py:268
medium - Untranslated user-facing string: ' - '. Use self.tr().
core/services/export_service.py:291
medium - Untranslated user-facing string: ' (3D Real)'. Use self.tr().
core/services/export_service.py:291
medium - Untranslated user-facing string: ' - '. Use self.tr().
core/services/export_service.py:298
medium - Untranslated user-facing string: ' (3D Proj)'. Use self.tr().
core/services/export_service.py:298
medium - Untranslated user-facing string: ' - '. Use self.tr().
core/services/export_service.py:307
medium - Untranslated user-facing string: ' (3D Real)'. Use self.tr().
core/services/export_service.py:307
medium - Untranslated user-facing string: ' - '. Use self.tr().
core/services/export_service.py:314
medium - Untranslated user-facing string: ' (3D Proj)'. Use self.tr().
core/services/export_service.py:314
medium - Untranslated user-facing string: ' - interpretations.shp'. Use self.tr().
core/services/export_service.py:336
medium - Untranslated user-facing string: 'Interpretation export failed: '. Use self.tr().
core/services/export_service.py:345
medium - Untranslated user-facing string: ' - interpretations_3d.shp (3D)'. Use self.tr().
core/services/export_service.py:362
medium - Untranslated user-facing string: 'Profile axes export failed: '. Use self.tr().
core/services/export_service.py:376
medium - Untranslated user-facing string: 'Buffer creation failed'. Use self.tr().
core/services/structure_service.py:167
medium - Untranslated user-facing string: 'Cannot create buffer zone'. Use self.tr().
core/services/structure_service.py:169
medium - Untranslated user-facing string: 'Spatial filtering failed'. Use self.tr().
core/services/structure_service.py:195
medium - Untranslated user-facing string: 'Cannot filter structures by buffer'. Use self.tr().
core/services/structure_service.py:197
medium - Untranslated user-facing string: 'attributes'. Use self.tr().
core/services/structure_service.py:254
medium - Untranslated user-facing string: 'attributes'. Use self.tr().
core/services/structure_service.py:268
medium - Untranslated user-facing string: 'metadata.txt not found at '. Use self.tr().
core/utils/metadata_reader.py:84
medium - Untranslated user-facing string: 'Failed to parse metadata.txt: '. Use self.tr().
core/utils/metadata_reader.py:93
medium - Untranslated user-facing string: 'version'. Use self.tr().
core/utils/metadata_reader.py:98
medium - Untranslated user-facing string: 'author'. Use self.tr().
core/utils/metadata_reader.py:98
medium - Untranslated user-facing string: 'Required field ''. Use self.tr().
core/utils/metadata_reader.py:105
medium - Untranslated user-facing string: '' missing in metadata.txt'. Use self.tr().
core/utils/metadata_reader.py:105
medium - Untranslated user-facing string: 'description'. Use self.tr().
core/utils/metadata_reader.py:110
medium - Untranslated user-facing string: 'homepage'. Use self.tr().
core/utils/metadata_reader.py:110
medium - Untranslated user-facing string: 'repository'. Use self.tr().
core/utils/metadata_reader.py:110
medium - Untranslated user-facing string: 'ESRI Shapefile'. Use self.tr().
core/utils/io.py:44
medium - Untranslated user-facing string: 'Error creating shapefile '. Use self.tr().
core/utils/io.py:57
medium - Untranslated user-facing string: 'fields'. Use self.tr().
core/utils/parsing.py:142
medium - Untranslated user-facing string: 'Line layer has no features'. Use self.tr().
core/utils/sampling.py:107
medium - Untranslated user-facing string: 'Line geometry is not valid'. Use self.tr().
core/utils/sampling.py:111
medium - Untranslated user-facing string: 'Line geometry has no vertices'. Use self.tr().
core/utils/sampling.py:117
medium - Untranslated user-facing string: 'memory'. Use self.tr().
core/utils/resource_manager.py:23
medium - Untranslated user-facing string: 'Polyline has no vertices'. Use self.tr().
core/utils/spatial.py:117
medium - Untranslated user-facing string: ' is required'. Use self.tr().
core/validation/field_validator.py:36
medium - Untranslated user-facing string: ' must be a valid number'. Use self.tr().
core/validation/field_validator.py:41
medium - Untranslated user-facing string: ' must be at least '. Use self.tr().
core/validation/field_validator.py:44
medium - Untranslated user-facing string: ' must be at most '. Use self.tr().
core/validation/field_validator.py:47
medium - Untranslated user-facing string: ' is required'. Use self.tr().
core/validation/field_validator.py:78
medium - Untranslated user-facing string: ' must be a valid integer'. Use self.tr().
core/validation/field_validator.py:83
medium - Untranslated user-facing string: ' must be at least '. Use self.tr().
core/validation/field_validator.py:86
medium - Untranslated user-facing string: ' must be at most '. Use self.tr().
core/validation/field_validator.py:89
medium - Untranslated user-facing string: ' must be between '. Use self.tr().
core/validation/field_validator.py:114
medium - Untranslated user-facing string: ' and '. Use self.tr().
core/validation/field_validator.py:114
medium - Untranslated user-facing string: ' degrees'. Use self.tr().
core/validation/field_validator.py:114
medium - Untranslated user-facing string: 'Layer is None'. Use self.tr().
core/validation/field_validator.py:134
medium - Untranslated user-facing string: 'Field name is required'. Use self.tr().
core/validation/field_validator.py:137
medium - Untranslated user-facing string: 'Layer ''. Use self.tr().
core/validation/field_validator.py:142
medium - Untranslated user-facing string: '' is not a vector layer'. Use self.tr().
core/validation/field_validator.py:142
medium - Untranslated user-facing string: 'Field ''. Use self.tr().
core/validation/field_validator.py:150
medium - Untranslated user-facing string: '' not found in layer ''. Use self.tr().
core/validation/field_validator.py:150
medium - Untranslated user-facing string: ''. Available fields: '. Use self.tr().
core/validation/field_validator.py:150
medium - Untranslated user-facing string: ', ...'. Use self.tr().
core/validation/field_validator.py:152
medium - Untranslated user-facing string: 'Layer is None'. Use self.tr().
core/validation/field_validator.py:175
medium - Untranslated user-facing string: 'Layer ''. Use self.tr().
core/validation/field_validator.py:180
medium - Untranslated user-facing string: '' is not a vector layer'. Use self.tr().
core/validation/field_validator.py:180
medium - Untranslated user-facing string: 'Field ''. Use self.tr().
core/validation/field_validator.py:186
medium - Untranslated user-facing string: '' not found in layer ''. Use self.tr().
core/validation/field_validator.py:186
medium - Untranslated user-facing string: 'Invalid data type for field '{field_name}' in layer '{layer.name()}'. Found: '. Use self.tr().
core/validation/field_validator.py:201
medium - Untranslated user-facing string: '. Expected one of: '. Use self.tr().
core/validation/field_validator.py:202
medium - Untranslated user-facing string: '. Please check your attribute table.'. Use self.tr().
core/validation/field_validator.py:202
medium - Untranslated user-facing string: 'Output path is required'. Use self.tr().
core/validation/path_validator.py:16
medium - Untranslated user-facing string: 'Cannot resolve path: '. Use self.tr().
core/validation/path_validator.py:32
medium - Untranslated user-facing string: 'Path contains invalid null bytes'. Use self.tr().
core/validation/path_validator.py:45
medium - Untranslated user-facing string: 'Path contains directory traversal sequences (..)'. Use self.tr().
core/validation/path_validator.py:50
medium - Untranslated user-facing string: 'Invalid path: '. Use self.tr().
core/validation/path_validator.py:53
medium - Untranslated user-facing string: 'Path escapes base directory: '. Use self.tr().
core/validation/path_validator.py:64
medium - Untranslated user-facing string: 'Cannot validate base directory: '. Use self.tr().
core/validation/path_validator.py:66
medium - Untranslated user-facing string: 'Path does not exist: '. Use self.tr().
core/validation/path_validator.py:73
medium - Untranslated user-facing string: 'Cannot create directory: '. Use self.tr().
core/validation/path_validator.py:78
medium - Untranslated user-facing string: 'Path is not a directory: '. Use self.tr().
core/validation/path_validator.py:83
medium - Untranslated user-facing string: 'Directory is not writable: '. Use self.tr().
core/validation/path_validator.py:92
medium - Untranslated user-facing string: 'Layer name is required'. Use self.tr().
core/validation/layer_validator.py:34
medium - Untranslated user-facing string: 'Layer ''. Use self.tr().
core/validation/layer_validator.py:46
medium - Untranslated user-facing string: '' not found in project'. Use self.tr().
core/validation/layer_validator.py:46
medium - Untranslated user-facing string: 'Layer ''. Use self.tr().
core/validation/layer_validator.py:49
medium - Untranslated user-facing string: '' is not valid'. Use self.tr().
core/validation/layer_validator.py:49
medium - Untranslated user-facing string: 'Layer is None'. Use self.tr().
core/validation/layer_validator.py:67
medium - Untranslated user-facing string: 'Layer is not a vector layer'. Use self.tr().
core/validation/layer_validator.py:70
medium - Untranslated user-facing string: 'Layer ''. Use self.tr().
core/validation/layer_validator.py:73
medium - Untranslated user-facing string: '' has no features'. Use self.tr().
core/validation/layer_validator.py:73
medium - Untranslated user-facing string: 'Layer is None'. Use self.tr().
core/validation/layer_validator.py:94
medium - Untranslated user-facing string: 'Layer is not a vector layer'. Use self.tr().
core/validation/layer_validator.py:97
medium - Untranslated user-facing string: 'Geometry type mismatch for layer ''. Use self.tr().
core/validation/layer_validator.py:113
medium - Untranslated user-facing string: '': Found '. Use self.tr().
core/validation/layer_validator.py:113
medium - Untranslated user-facing string: ', but expected '. Use self.tr().
core/validation/layer_validator.py:114
medium - Untranslated user-facing string: '. Please select a valid '. Use self.tr().
core/validation/layer_validator.py:114
medium - Untranslated user-facing string: ' layer.'. Use self.tr().
core/validation/layer_validator.py:115
medium - Untranslated user-facing string: 'Layer is None'. Use self.tr().
core/validation/layer_validator.py:135
medium - Untranslated user-facing string: 'Layer is not a raster layer'. Use self.tr().
core/validation/layer_validator.py:138
medium - Untranslated user-facing string: 'Band number '. Use self.tr().
core/validation/layer_validator.py:144
medium - Untranslated user-facing string: ' is invalid. Layer ''. Use self.tr().
core/validation/layer_validator.py:144
medium - Untranslated user-facing string: '' has '. Use self.tr().
core/validation/layer_validator.py:144
medium - Untranslated user-facing string: ' band(s)'. Use self.tr().
core/validation/layer_validator.py:144
medium - Untranslated user-facing string: 'Structural layer ''. Use self.tr().
core/validation/layer_validator.py:158
medium - Untranslated user-facing string: '' is not valid.'. Use self.tr().
core/validation/layer_validator.py:158
medium - Untranslated user-facing string: 'Structural layer must be a point layer.'. Use self.tr().
core/validation/layer_validator.py:161
medium - Untranslated user-facing string: ' field error: '. Use self.tr().
core/validation/layer_validator.py:187
medium - Untranslated user-facing string: ' - '. Use self.tr().
core/validation/layer_validator.py:205
medium - Untranslated user-facing string: '⚠ CRS mismatch detected! Reference CRS: '. Use self.tr().
core/validation/layer_validator.py:210
medium - Untranslated user-facing string: ') Incompatible layers: '. Use self.tr().
core/validation/layer_validator.py:211
medium - Untranslated user-facing string: ' QGIS will reproject on-the-fly, but this may affect accuracy. '. Use self.tr().
core/validation/layer_validator.py:212
medium - Public function 'validator' is missing a docstring.
core/validation/validators.py:36
def validator...
medium - Public function 'validator' is missing a docstring.
core/validation/validators.py:60
def validator...
medium - Public function 'validator' is missing a docstring.
core/validation/validators.py:82
def validator...
medium - Public function 'validator' is missing a docstring.
core/validation/validators.py:104
def validator...
medium - Public function 'validator' is missing a docstring.
core/validation/validators.py:130
def validator...
medium - Public function 'validator' is missing a docstring.
core/validation/validators.py:160
def validator...
medium - Untranslated user-facing string: ' must be between '. Use self.tr().
core/validation/validators.py:39
medium - Untranslated user-facing string: ' and '. Use self.tr().
core/validation/validators.py:39
medium - Untranslated user-facing string: ', got '. Use self.tr().
core/validation/validators.py:39
medium - Untranslated user-facing string: ' must be positive, got '. Use self.tr().
core/validation/validators.py:62
medium - Untranslated user-facing string: ' must be non-negative, got '. Use self.tr().
core/validation/validators.py:84
medium - Untranslated user-facing string: ' cannot be empty'. Use self.tr().
core/validation/validators.py:106
medium - Untranslated user-facing string: ' must be '. Use self.tr().
core/validation/validators.py:137
medium - Untranslated user-facing string: ', got '. Use self.tr().
core/validation/validators.py:137
medium - Untranslated user-facing string: 'warning'. Use self.tr().
core/validation/validation_helpers.py:55
medium - Untranslated user-facing string: '⚠ Vertical exaggeration ('. Use self.tr().
core/validation/validation_helpers.py:144
medium - Untranslated user-facing string: ') is very high. Values > '. Use self.tr().
core/validation/validation_helpers.py:144
medium - Untranslated user-facing string: ' may distort the profile significantly.'. Use self.tr().
core/validation/validation_helpers.py:145
medium - Untranslated user-facing string: '⚠ Vertical exaggeration ('. Use self.tr().
core/validation/validation_helpers.py:148
medium - Untranslated user-facing string: ') is very low. Profile may appear flattened.'. Use self.tr().
core/validation/validation_helpers.py:148
medium - Untranslated user-facing string: '❌ Vertical exaggeration ('. Use self.tr().
core/validation/validation_helpers.py:150
medium - Untranslated user-facing string: ') must be positive.'. Use self.tr().
core/validation/validation_helpers.py:150
medium - Untranslated user-facing string: '⚠ Buffer distance ('. Use self.tr().
core/validation/validation_helpers.py:163
medium - Untranslated user-facing string: 'm) is very large. This may include distant structures not relevant to the section.'. Use self.tr().
core/validation/validation_helpers.py:163
medium - Untranslated user-facing string: '❌ Buffer distance ('. Use self.tr().
core/validation/validation_helpers.py:167
medium - Untranslated user-facing string: 'm) cannot be negative.'. Use self.tr().
core/validation/validation_helpers.py:167
medium - Untranslated user-facing string: '⚠ Dip scale ('. Use self.tr().
core/validation/validation_helpers.py:180
medium - Untranslated user-facing string: ') is very high. Dip symbols may overlap and obscure the profile.'. Use self.tr().
core/validation/validation_helpers.py:180
medium - Untranslated user-facing string: '❌ Dip scale ('. Use self.tr().
core/validation/validation_helpers.py:184
medium - Untranslated user-facing string: ') must be positive.'. Use self.tr().
core/validation/validation_helpers.py:184
medium - Untranslated user-facing string: 'Raster DEM layer is required'. Use self.tr().
core/validation/project_validator.py:108
medium - Untranslated user-facing string: 'Cross-section line layer is required'. Use self.tr().
core/validation/project_validator.py:118
medium - Untranslated user-facing string: 'Output directory path is required'. Use self.tr().
core/validation/project_validator.py:133
medium - Untranslated user-facing string: 'Scale must be >= 1'. Use self.tr().
core/validation/project_validator.py:156
medium - Untranslated user-facing string: 'Vertical exaggeration must be >= 0.1'. Use self.tr().
core/validation/project_validator.py:158
medium - Untranslated user-facing string: 'Buffer distance must be >= 0'. Use self.tr().
core/validation/project_validator.py:160
medium - Untranslated user-facing string: 'Dip scale factor must be >= 0.1'. Use self.tr().
core/validation/project_validator.py:162
medium - Untranslated user-facing string: 'Geology unit field is required when geology layer is selected'. Use self.tr().
core/validation/project_validator.py:184
medium - Untranslated user-facing string: 'Collar ID field is required'. Use self.tr().
core/validation/project_validator.py:221
medium - Untranslated user-facing string: 'Collar X field is required (when not using geometry)'. Use self.tr().
core/validation/project_validator.py:226
medium - Untranslated user-facing string: 'Collar Y field is required (when not using geometry)'. Use self.tr().
core/validation/project_validator.py:231
medium - Untranslated user-facing string: 'Survey ID field is required'. Use self.tr().
core/validation/project_validator.py:241
medium - Untranslated user-facing string: 'Survey Depth field is required'. Use self.tr().
core/validation/project_validator.py:247
medium - Untranslated user-facing string: 'Survey Azimuth field is required'. Use self.tr().
core/validation/project_validator.py:253
medium - Untranslated user-facing string: 'Survey Inclination field is required'. Use self.tr().
core/validation/project_validator.py:259
medium - Untranslated user-facing string: 'Interval ID field is required'. Use self.tr().
core/validation/project_validator.py:271
medium - Untranslated user-facing string: 'Interval From field is required'. Use self.tr().
core/validation/project_validator.py:277
medium - Untranslated user-facing string: 'Interval To field is required'. Use self.tr().
core/validation/project_validator.py:283
medium - Untranslated user-facing string: 'Interval Lithology field is required'. Use self.tr().
core/validation/project_validator.py:289
medium - Untranslated user-facing string: 'Raster DEM layer is required'. Use self.tr().
core/validation/project_validator.py:300
medium - Untranslated user-facing string: 'Cross-section line layer is required'. Use self.tr().
core/validation/project_validator.py:302
medium - Untranslated user-facing string: 'Raster layer is missing or invalid.'. Use self.tr().
core/domain/dtos.py:112
medium - Untranslated user-facing string: 'Section line layer is missing or invalid.'. Use self.tr().
core/domain/dtos.py:114
medium - Untranslated user-facing string: 'Invalid band number: '. Use self.tr().
core/domain/dtos.py:116
medium - Untranslated user-facing string: 'Buffer distance cannot be negative: '. Use self.tr().
core/domain/dtos.py:118
medium - Untranslated user-facing string: 'Outcrop layer selected but no name field provided.'. Use self.tr().
core/domain/dtos.py:123
medium - Untranslated user-facing string: 'Collar layer selected but no ID field provided.'. Use self.tr().
core/domain/dtos.py:138
medium - Untranslated user-facing string: 'Survey layer selected but some required fields are missing.'. Use self.tr().
core/domain/dtos.py:152
medium - Untranslated user-facing string: 'Interval layer selected but some required fields are missing.'. Use self.tr().
core/domain/dtos.py:170
medium - Untranslated user-facing string: 'memory'. Use self.tr().
core/utils/geometry_utils/processing.py:66
medium - Untranslated user-facing string: '" IN ('. Use self.tr().
core/services/drillhole/data_fetcher.py:28

🔬 Research-based Modernization

Metrics inspired by Google, Microsoft, and PSF standards.

Parameters Type Hints 75.2%
Return Type Hints 47.2%
Docstring Coverage 85.8%
Detected Style Google

🧠 Semantic Analysis

Circular Dependencies Detected: 3
  • gui/preview_task_orchestrator.py -> gui/main_dialog_preview.py -> gui/preview_task_orchestrator.py
  • gui/main_dialog.py -> gui/main_dialog_interpretation.py -> gui/main_dialog.py
  • gui/main_dialog.py -> gui/main_dialog_tools.py -> gui/main_dialog.py

Module Coupling

ModuleFan-In (Incoming)Fan-Out (Outgoing)
tests/base_test.py439
exporters/base_exporter.py80
tests/integration/base_integration.py80
gui/ui/pages/base_page.py70
tests/mocks/qgis_base.py60
gui/main_dialog_config.py30
gui/main_dialog.py215
gui/main_dialog_preview.py27
gui/preview_legend_renderer.py20
gui/preview_layer_factory.py20

⚠️ Repository Compliance

✅ No prohibited binaries found
Package Size: 43.92 MB (exceeds 20MB limit)
URL Validation: All 3 links working

🐍 Python Linting (Ruff)

I001 - Import block is un-sorted or un-formatted
/home/jmbernales/qgispluginsdev/sec_interp/core/controller.py:7
I001 - Import block is un-sorted or un-formatted
/home/jmbernales/qgispluginsdev/sec_interp/core/utils/geometry_utils/extraction.py:3
I001 - Import block is un-sorted or un-formatted
/home/jmbernales/qgispluginsdev/sec_interp/core/utils/geometry_utils/filtering.py:3
I001 - Import block is un-sorted or un-formatted
/home/jmbernales/qgispluginsdev/sec_interp/core/utils/geometry_utils/processing.py:3

📈 General Metrics

  • Total Files: 185
  • Total Lines: 29073
  • Security Score: 100.0