Skip to content

Commit 39437bd

Browse files
committed
fix: applying some copilot suggestions
1 parent dea0075 commit 39437bd

File tree

10 files changed

+38
-61
lines changed

10 files changed

+38
-61
lines changed

loopstructural/gui/map2loop_tools/basal_contacts_widget.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,7 @@ def _setup_field_combo_boxes(self):
152152
self.unitNameFieldComboBox.setLayer(geology)
153153
else:
154154
# Ensure combo boxes are cleared if no geology layer selected
155-
try:
156-
self.unitNameFieldComboBox.setLayer(None)
157-
except Exception:
158-
pass
155+
self.unitNameFieldComboBox.setLayer(None)
159156

160157
def _on_geology_layer_changed(self):
161158
"""Update field combo boxes when geology layer changes."""

loopstructural/gui/map2loop_tools/fault_topology_widget.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import geopandas as gpd
66
from PyQt5.QtWidgets import QDialog, QMessageBox
77
from qgis.PyQt import uic
8+
from qgis.core import QgsMapLayerProxyModel
89

910

1011
class FaultTopologyWidget(QDialog):
@@ -41,13 +42,9 @@ def __init__(self, parent=None, data_manager=None):
4142
ui_path = os.path.join(os.path.dirname(__file__), "fault_topology_widget.ui")
4243
uic.loadUi(ui_path, self)
4344
# Set filter for fault layer selection
44-
try:
45-
from qgis.core import QgsMapLayerProxyModel
4645

47-
self.faultLayerComboBox.setFilters(QgsMapLayerProxyModel.LineLayer)
48-
self.faultLayerComboBox.layerChanged.connect(self._on_fault_layer_changed)
49-
except Exception:
50-
pass
46+
self.faultLayerComboBox.setFilters(QgsMapLayerProxyModel.LineLayer)
47+
self.faultLayerComboBox.layerChanged.connect(self._on_fault_layer_changed)
5148
self.runButton.clicked.connect(self._run_topology)
5249
self._guess_fault_layer_and_field()
5350

loopstructural/gui/map2loop_tools/sampler_widget.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,10 @@ def _export_layer_for_debug(self, layer, name_prefix: str):
7070

7171
except Exception as err:
7272
if getattr(self, '_debug', None):
73-
try:
74-
self._debug.plugin.log(
75-
message=f"[map2loop] Failed to export layer '{name_prefix}': {err}",
76-
log_level=2,
77-
)
78-
except Exception:
79-
pass
73+
self._debug.plugin.log(
74+
message=f"[map2loop] Failed to export layer '{name_prefix}': {err}",
75+
log_level=2,
76+
)
8077
return None
8178

8279
def _serialize_layer(self, layer, name_prefix: str):

loopstructural/gui/map2loop_tools/sorter_widget.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
from PyQt5.QtWidgets import QMessageBox, QWidget
66
from qgis.core import QgsRasterLayer
7+
from qgis.core import QgsMapLayerProxyModel
8+
79
from qgis.PyQt import uic
810

911
from loopstructural.main.helpers import get_layer_names
@@ -39,16 +41,11 @@ def __init__(self, parent=None, data_manager=None, debug_manager=None):
3941
uic.loadUi(ui_path, self)
4042

4143
# Configure layer filters programmatically (avoid QGIS enums in UI)
42-
try:
43-
from qgis.core import QgsMapLayerProxyModel
4444

45-
self.geologyLayerComboBox.setFilters(QgsMapLayerProxyModel.PolygonLayer)
46-
self.contactsLayerComboBox.setFilters(QgsMapLayerProxyModel.LineLayer)
47-
self.structureLayerComboBox.setFilters(QgsMapLayerProxyModel.PointLayer)
48-
self.dtmLayerComboBox.setFilters(QgsMapLayerProxyModel.RasterLayer)
49-
# preserve allowEmptyLayer where UI set it
50-
except Exception:
51-
pass
45+
self.geologyLayerComboBox.setFilters(QgsMapLayerProxyModel.PolygonLayer)
46+
self.contactsLayerComboBox.setFilters(QgsMapLayerProxyModel.LineLayer)
47+
self.structureLayerComboBox.setFilters(QgsMapLayerProxyModel.PointLayer)
48+
self.dtmLayerComboBox.setFilters(QgsMapLayerProxyModel.RasterLayer)
5249

5350
# Initialize sorting algorithms
5451
self.sorting_algorithms = list(SORTER_LIST.keys())
@@ -118,13 +115,10 @@ def _serialize_params_for_logging(self, params, context_label: str):
118115

119116
def _log_params(self, context_label: str):
120117
if getattr(self, "_debug", None):
121-
try:
122-
self._debug.log_params(
123-
context_label=context_label,
124-
params=self._serialize_params_for_logging(self.get_parameters(), context_label),
125-
)
126-
except Exception:
127-
pass
118+
self._debug.log_params(
119+
context_label=context_label,
120+
params=self._serialize_params_for_logging(self.get_parameters(), context_label),
121+
)
128122

129123
def _guess_layers(self):
130124
"""Automatically detect and set appropriate field names using ColumnMatcher."""

loopstructural/gui/map2loop_tools/thickness_calculator_widget.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
from PyQt5.QtWidgets import QLabel, QMessageBox, QWidget
66
from qgis.PyQt import uic
7+
from qgis.core import QgsMapLayerProxyModel
8+
79

810
from loopstructural.toolbelt.preferences import PlgOptionsManager
911

@@ -37,16 +39,12 @@ def __init__(self, parent=None, data_manager=None, debug_manager=None):
3739
uic.loadUi(ui_path, self)
3840

3941
# Configure layer filters programmatically (avoid enum values in .ui)
40-
try:
41-
from qgis.core import QgsMapLayerProxyModel
4242

43-
self.dtmLayerComboBox.setFilters(QgsMapLayerProxyModel.RasterLayer)
44-
self.geologyLayerComboBox.setFilters(QgsMapLayerProxyModel.PolygonLayer)
45-
self.basalContactsComboBox.setFilters(QgsMapLayerProxyModel.LineLayer)
46-
self.sampledContactsComboBox.setFilters(QgsMapLayerProxyModel.PointLayer)
47-
self.structureLayerComboBox.setFilters(QgsMapLayerProxyModel.PointLayer)
48-
except Exception:
49-
pass
43+
self.dtmLayerComboBox.setFilters(QgsMapLayerProxyModel.RasterLayer)
44+
self.geologyLayerComboBox.setFilters(QgsMapLayerProxyModel.PolygonLayer)
45+
self.basalContactsComboBox.setFilters(QgsMapLayerProxyModel.LineLayer)
46+
self.sampledContactsComboBox.setFilters(QgsMapLayerProxyModel.PointLayer)
47+
self.structureLayerComboBox.setFilters(QgsMapLayerProxyModel.PointLayer)
5048

5149
# Initialize calculator types
5250
self.calculator_types = ["InterpolatedStructure", "StructuralPoint"]
@@ -111,12 +109,9 @@ def _serialize_params_for_logging(self, params, context_label: str):
111109

112110
def _log_params(self, context_label: str, params=None):
113111
if getattr(self, "_debug", None):
114-
try:
115-
payload = params if params is not None else self.get_parameters()
116-
payload = self._serialize_params_for_logging(payload, context_label)
117-
self._debug.log_params(context_label=context_label, params=payload)
118-
except Exception:
119-
pass
112+
payload = params if params is not None else self.get_parameters()
113+
payload = self._serialize_params_for_logging(payload, context_label)
114+
self._debug.log_params(context_label=context_label, params=payload)
120115

121116
def _guess_layers(self):
122117
"""Attempt to auto-select layers based on common naming conventions."""

loopstructural/gui/map2loop_tools/user_defined_sorter_widget.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
"""Widget for user-defined stratigraphic column."""
22

3-
43
from typing import Any
54
from PyQt5.QtWidgets import QMessageBox, QVBoxLayout, QWidget
65

@@ -58,10 +57,7 @@ def set_debug_manager(self, debug_manager):
5857

5958
def _log_params(self, context_label: str, params: Any):
6059
if getattr(self, "_debug", None):
61-
try:
62-
self._debug.log_params(context_label=context_label, params=params)
63-
except Exception:
64-
pass
60+
self._debug.log_params(context_label=context_label, params=params)
6561

6662
def _run_sorter(self):
6763
"""Run the user-defined stratigraphic sorter algorithm.

loopstructural/gui/modelling/geological_model_tab/feature_details_panel.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def __init__(self, parent=None, *, feature=None, model_manager=None, data_manage
126126
group_box.setLayout(form_layout)
127127
self.layout.addWidget(group_box)
128128
self.layout.addWidget(table_group_box)
129+
# this will call the addMidBlock and addExportBlock methods
129130
self.addMidBlock()
130131
self.addExportBlock()
131132

loopstructural/gui/modelling/geological_model_tab/geological_model_tab.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __init__(self, parent=None, *, model_manager=None, data_manager=None):
5151
try:
5252
self.model_manager.observers.append(self.update_feature_list)
5353
except Exception:
54-
pass
54+
raise RuntimeError("Failed to register model update observer")
5555
# Main layout
5656
mainLayout = QVBoxLayout(self)
5757

@@ -169,8 +169,8 @@ def _on_finished():
169169
for obs in getattr(self.model_manager, 'observers', []):
170170
try:
171171
obs()
172-
except Exception:
173-
pass
172+
except Exception as e:
173+
self._debug.log_error("Error notifying observer", e)
174174
finally:
175175
try:
176176
progress.close()
@@ -282,7 +282,6 @@ def _on_model_update_started(self):
282282

283283
def _on_model_update_finished(self):
284284
"""Close the progress dialog shown for model updates."""
285-
print("Model update finished - closing progress dialog")
286285
try:
287286
if getattr(self, '_progress_dialog', None) is not None:
288287
try:

loopstructural/main/m2l_api.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,6 @@ def sample_contacts(
374374
except Exception as e:
375375
print("Failed to save sampler debug info")
376376
print(e)
377-
pass
378377

379378
return samples
380379

loopstructural/main/vectorLayerWrapper.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -825,8 +825,8 @@ def _infer_wkb(series):
825825
# z?
826826
try:
827827
has_z = has_z or bool(getattr(geom, "has_z", False))
828-
except Exception:
829-
pass
828+
except Exception as e:
829+
print("Error checking geometry Z value", e)
830830
if base:
831831
break
832832

@@ -858,7 +858,8 @@ def _infer_wkb(series):
858858
epsg = geodataframe.crs.to_epsg()
859859
if epsg:
860860
crs = QgsCoordinateReferenceSystem.fromEpsgId(int(epsg))
861-
except Exception:
861+
except Exception as e:
862+
print("Error building CRS from EPSG", e)
862863
pass
863864

864865
# --- Build QGIS fields from pandas dtypes
@@ -920,6 +921,7 @@ def _qvariant_type(dtype) -> QVariant.Type:
920921
try:
921922
val = val.item()
922923
except Exception:
924+
# don't crash UI on conversion failure
923925
pass
924926
if pd.api.types.is_datetime64_any_dtype(geodataframe[col].dtype):
925927
if pd.isna(val):

0 commit comments

Comments
 (0)