Skip to content

Commit c74aedc

Browse files
committed
fix: pass debug manager to api for exporting packages
1 parent c487dec commit c74aedc

File tree

4 files changed

+34
-27
lines changed

4 files changed

+34
-27
lines changed

loopstructural/gui/map2loop_tools/basal_contacts_widget.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import os
44

55
from PyQt5.QtWidgets import QMessageBox, QWidget
6-
from qgis.PyQt import uic
76
from qgis.core import QgsProject, QgsVectorFileWriter
7+
from qgis.PyQt import uic
88

99
from ...main.helpers import ColumnMatcher, get_layer_names
1010
from ...main.m2l_api import extract_basal_contacts
@@ -109,9 +109,7 @@ def _serialize_params_for_logging(self, params, context_label: str):
109109
serialized = {}
110110
for key, value in params.items():
111111
if hasattr(value, "source") or hasattr(value, "id"):
112-
serialized[key] = self._serialize_layer(
113-
value, f"{context_label}_{key}"
114-
)
112+
serialized[key] = self._serialize_layer(value, f"{context_label}_{key}")
115113
else:
116114
serialized[key] = value
117115
return serialized
@@ -121,9 +119,7 @@ def _log_params(self, context_label: str):
121119
try:
122120
self._debug.log_params(
123121
context_label=context_label,
124-
params=self._serialize_params_for_logging(
125-
self.get_parameters(), context_label
126-
),
122+
params=self._serialize_params_for_logging(self.get_parameters(), context_label),
127123
)
128124
except Exception:
129125
pass
@@ -210,6 +206,7 @@ def _run_extractor(self):
210206
message=f"[map2loop] Basal contacts extraction failed: {err}",
211207
log_level=2,
212208
)
209+
raise err
213210
QMessageBox.critical(self, "Error", f"An error occurred: {err}")
214211

215212
def get_parameters(self):
@@ -270,6 +267,8 @@ def _extract_contacts(self):
270267
all_contacts = self.allContactsCheckBox.isChecked()
271268
if all_contacts:
272269
stratigraphic_order = list({g[unit_name_field] for g in geology.getFeatures()})
270+
self.data_manager.logger(f"Extracting all contacts for units: {stratigraphic_order}")
271+
273272
result = extract_basal_contacts(
274273
geology=geology,
275274
stratigraphic_order=stratigraphic_order,
@@ -278,13 +277,14 @@ def _extract_contacts(self):
278277
unit_name_field=unit_name_field,
279278
all_contacts=all_contacts,
280279
updater=lambda message: QMessageBox.information(self, "Extraction Progress", message),
280+
debug_manager=self._debug,
281281
)
282-
282+
self.data_manager.logger(f'All contacts extracted: {all_contacts}')
283283
contact_type = "basal contacts"
284284
if result:
285-
if all_contacts:
285+
if all_contacts and result['all_contacts'].empty is False:
286286
addGeoDataFrameToproject(result['all_contacts'], "All contacts")
287287
contact_type = "all contacts and basal contacts"
288-
else:
288+
elif not all_contacts and result['basal_contacts'].empty is False:
289289
addGeoDataFrameToproject(result['basal_contacts'], "Basal contacts")
290290
return result, contact_type

loopstructural/gui/map2loop_tools/sorter_widget.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
import os
44

55
from PyQt5.QtWidgets import QMessageBox, QWidget
6-
from qgis.core import QgsRasterLayer
6+
from qgis.core import QgsProject, QgsRasterLayer, QgsVectorFileWriter
77
from qgis.PyQt import uic
8-
from qgis.core import QgsProject, QgsVectorFileWriter
98

109
from loopstructural.main.helpers import get_layer_names
1110
from loopstructural.main.m2l_api import PARAMETERS_DICTIONARY, SORTER_LIST
@@ -123,9 +122,7 @@ def _serialize_params_for_logging(self, params, context_label: str):
123122
serialized = {}
124123
for key, value in params.items():
125124
if hasattr(value, "source") or hasattr(value, "id"):
126-
serialized[key] = self._serialize_layer(
127-
value, f"{context_label}_{key}"
128-
)
125+
serialized[key] = self._serialize_layer(value, f"{context_label}_{key}")
129126
else:
130127
serialized[key] = value
131128
return serialized
@@ -135,9 +132,7 @@ def _log_params(self, context_label: str):
135132
try:
136133
self._debug.log_params(
137134
context_label=context_label,
138-
params=self._serialize_params_for_logging(
139-
self.get_parameters(), context_label
140-
),
135+
params=self._serialize_params_for_logging(self.get_parameters(), context_label),
141136
)
142137
except Exception:
143138
pass
@@ -362,7 +357,10 @@ def _run_sorter(self):
362357
]
363358
kwargs['dtm'] = self.dtmLayerComboBox.currentLayer()
364359

365-
result = sort_stratigraphic_column(**kwargs)
360+
result = sort_stratigraphic_column(
361+
**kwargs,
362+
debug_manager=self._debug,
363+
)
366364
if self._debug and self._debug.is_debug():
367365
try:
368366
payload = "\n".join(result) if result else ""

loopstructural/gui/map2loop_tools/thickness_calculator_widget.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import os
44

55
from PyQt5.QtWidgets import QLabel, QMessageBox, QWidget
6-
from qgis.PyQt import uic
76
from qgis.core import QgsProject, QgsVectorFileWriter
7+
from qgis.PyQt import uic
88

99
from loopstructural.toolbelt.preferences import PlgOptionsManager
1010

@@ -115,9 +115,7 @@ def _serialize_params_for_logging(self, params, context_label: str):
115115
serialized = {}
116116
for key, value in params.items():
117117
if hasattr(value, "source") or hasattr(value, "id"):
118-
serialized[key] = self._serialize_layer(
119-
value, f"{context_label}_{key}"
120-
)
118+
serialized[key] = self._serialize_layer(value, f"{context_label}_{key}")
121119
else:
122120
serialized[key] = value
123121
return serialized
@@ -290,12 +288,13 @@ def _run_calculator(self):
290288
if strati_order:
291289
kwargs['stratigraphic_order'] = strati_order
292290

293-
result = calculate_thickness(**kwargs)
291+
result = calculate_thickness(
292+
**kwargs,
293+
debug_manager=self._debug,
294+
)
294295
if self._debug and self._debug.is_debug():
295296
try:
296-
self._debug.save_debug_file(
297-
"thickness_result.txt", str(result).encode("utf-8")
298-
)
297+
self._debug.save_debug_file("thickness_result.txt", str(result).encode("utf-8"))
299298
except Exception as err:
300299
self._debug.plugin.log(
301300
message=f"[map2loop] Failed to save thickness debug output: {err}",
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env python3
2+
import pickle
3+
from pathlib import Path
4+
5+
base = Path(__file__).parent
6+
with open(base / '{runner_name}_m2l_object.pkl', 'rb') as fh:
7+
m2l_object = pickle.load(fh)
8+
with open(base / '{runner_name}_parameters.pkl', 'rb') as fh:
9+
params = pickle.load(fh)
10+
m2l_object(**params)

0 commit comments

Comments
 (0)