Skip to content

Commit 9148640

Browse files
Copilotlachlangrose
andcommitted
chore: log layer sources in debug params
Co-authored-by: lachlangrose <7371904+lachlangrose@users.noreply.github.com>
1 parent 752f217 commit 9148640

4 files changed

Lines changed: 93 additions & 3 deletions

File tree

loopstructural/gui/map2loop_tools/basal_contacts_widget.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,33 @@ def set_debug_manager(self, debug_manager):
6767
"""Attach a debug manager instance."""
6868
self._debug = debug_manager
6969

70+
def _serialize_layer(self, layer):
71+
try:
72+
return {
73+
"name": layer.name(),
74+
"id": layer.id(),
75+
"provider": layer.providerType() if hasattr(layer, "providerType") else None,
76+
"source": layer.source() if hasattr(layer, "source") else None,
77+
}
78+
except Exception:
79+
return str(layer)
80+
81+
def _serialize_params_for_logging(self, params):
82+
serialized = {}
83+
for key, value in params.items():
84+
if hasattr(value, "source") or hasattr(value, "id"):
85+
serialized[key] = self._serialize_layer(value)
86+
else:
87+
serialized[key] = value
88+
return serialized
89+
7090
def _log_params(self, context_label: str):
7191
if getattr(self, "_debug", None):
7292
try:
73-
self._debug.log_params(context_label=context_label, params=self.get_parameters())
93+
self._debug.log_params(
94+
context_label=context_label,
95+
params=self._serialize_params_for_logging(self.get_parameters()),
96+
)
7497
except Exception:
7598
pass
7699

loopstructural/gui/map2loop_tools/sampler_widget.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,33 @@ def set_debug_manager(self, debug_manager):
6060
"""Attach a debug manager instance."""
6161
self._debug = debug_manager
6262

63+
def _serialize_layer(self, layer):
64+
try:
65+
return {
66+
"name": layer.name(),
67+
"id": layer.id(),
68+
"provider": layer.providerType() if hasattr(layer, "providerType") else None,
69+
"source": layer.source() if hasattr(layer, "source") else None,
70+
}
71+
except Exception:
72+
return str(layer)
73+
74+
def _serialize_params_for_logging(self, params):
75+
serialized = {}
76+
for key, value in params.items():
77+
if hasattr(value, "source") or hasattr(value, "id"):
78+
serialized[key] = self._serialize_layer(value)
79+
else:
80+
serialized[key] = value
81+
return serialized
82+
6383
def _log_params(self, context_label: str):
6484
if getattr(self, "_debug", None):
6585
try:
66-
self._debug.log_params(context_label=context_label, params=self.get_parameters())
86+
self._debug.log_params(
87+
context_label=context_label,
88+
params=self._serialize_params_for_logging(self.get_parameters()),
89+
)
6790
except Exception:
6891
pass
6992

loopstructural/gui/map2loop_tools/sorter_widget.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,33 @@ def set_debug_manager(self, debug_manager):
8181
"""Attach a debug manager instance."""
8282
self._debug = debug_manager
8383

84+
def _serialize_layer(self, layer):
85+
try:
86+
return {
87+
"name": layer.name(),
88+
"id": layer.id(),
89+
"provider": layer.providerType() if hasattr(layer, "providerType") else None,
90+
"source": layer.source() if hasattr(layer, "source") else None,
91+
}
92+
except Exception:
93+
return str(layer)
94+
95+
def _serialize_params_for_logging(self, params):
96+
serialized = {}
97+
for key, value in params.items():
98+
if hasattr(value, "source") or hasattr(value, "id"):
99+
serialized[key] = self._serialize_layer(value)
100+
else:
101+
serialized[key] = value
102+
return serialized
103+
84104
def _log_params(self, context_label: str):
85105
if getattr(self, "_debug", None):
86106
try:
87-
self._debug.log_params(context_label=context_label, params=self.get_parameters())
107+
self._debug.log_params(
108+
context_label=context_label,
109+
params=self._serialize_params_for_logging(self.get_parameters()),
110+
)
88111
except Exception:
89112
pass
90113

loopstructural/gui/map2loop_tools/thickness_calculator_widget.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,31 @@ def set_debug_manager(self, debug_manager):
7373
"""Attach a debug manager instance."""
7474
self._debug = debug_manager
7575

76+
def _serialize_layer(self, layer):
77+
try:
78+
return {
79+
"name": layer.name(),
80+
"id": layer.id(),
81+
"provider": layer.providerType() if hasattr(layer, "providerType") else None,
82+
"source": layer.source() if hasattr(layer, "source") else None,
83+
}
84+
except Exception:
85+
return str(layer)
86+
87+
def _serialize_params_for_logging(self, params):
88+
serialized = {}
89+
for key, value in params.items():
90+
if hasattr(value, "source") or hasattr(value, "id"):
91+
serialized[key] = self._serialize_layer(value)
92+
else:
93+
serialized[key] = value
94+
return serialized
95+
7696
def _log_params(self, context_label: str, params=None):
7797
if getattr(self, "_debug", None):
7898
try:
7999
payload = params if params is not None else self.get_parameters()
100+
payload = self._serialize_params_for_logging(payload)
80101
self._debug.log_params(context_label=context_label, params=payload)
81102
except Exception:
82103
pass

0 commit comments

Comments
 (0)