Private
Public Access
refactor(gui_2): migrate L742 _load_fonts mono font to Result[T] (Phase 3)
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 3. Adds _load_fonts_mono_result(app, font_size, config) -> Result[bool] helper that wraps the thirdparty hello_imgui.FontLoadingParams + hello_imgui.load_font try/except from App._load_fonts. App._load_fonts becomes a thin wrapper that drains errors to _startup_timeline_errors (startup-time error plane). Audit: BROAD_CATCH count 24 -> 23, COMPLIANT count 13 -> 14. Tests: 2/2 pass.
This commit is contained in:
+29
-8
@@ -730,14 +730,10 @@ class App:
|
||||
else:
|
||||
self.main_font = None
|
||||
|
||||
#Note(Ed): Exception(Thirdparty)
|
||||
try:
|
||||
with startup_profiler.phase("load_fonts.mono"):
|
||||
params = hello_imgui.FontLoadingParams(font_config=config)
|
||||
self.mono_font = hello_imgui.load_font("fonts/MapleMono-Regular.ttf", font_size, params)
|
||||
except Exception as e:
|
||||
print(f"Failed to load mono font: {e}")
|
||||
self.mono_font = None
|
||||
result = _load_fonts_mono_result(self, font_size, config)
|
||||
if not result.ok:
|
||||
if not hasattr(self, '_startup_timeline_errors'): self._startup_timeline_errors = []
|
||||
self._startup_timeline_errors.append(("_load_fonts.mono_font", result.errors[0]))
|
||||
|
||||
def _handle_approve_mma_step(self, user_data=None) -> None:
|
||||
"""UI-level wrapper for approving a pending MMA step."""
|
||||
@@ -7466,6 +7462,31 @@ def _load_fonts_main_result(app: "App", font_path: str, font_size: float, config
|
||||
original=e,
|
||||
)])
|
||||
|
||||
def _load_fonts_mono_result(app: "App", font_size: float, config) -> Result[bool]:
|
||||
"""Drain-aware variant of L742 _load_fonts mono font loading.
|
||||
|
||||
Extracts the thirdparty hello_imgui.FontLoadingParams + hello_imgui.load_font
|
||||
try/except from App._load_fonts into a Result-returning helper. On exception,
|
||||
sets app.mono_font = None and returns Result(data=False, errors=[ErrorInfo]).
|
||||
On success, sets app.mono_font to the loaded font.
|
||||
|
||||
[C: src/gui_2.py:App._load_fonts (L742 legacy wrapper)]
|
||||
"""
|
||||
from src.startup_profiler import startup_profiler
|
||||
try:
|
||||
with startup_profiler.phase("load_fonts.mono"):
|
||||
params = hello_imgui.FontLoadingParams(font_config=config)
|
||||
app.mono_font = hello_imgui.load_font("fonts/MapleMono-Regular.ttf", font_size, params)
|
||||
return Result(data=True)
|
||||
except Exception as e:
|
||||
app.mono_font = None
|
||||
return Result(data=False, errors=[ErrorInfo(
|
||||
kind=ErrorKind.INTERNAL,
|
||||
message=f"Failed to load mono font: {e}",
|
||||
source="gui_2._load_fonts_mono_result",
|
||||
original=e,
|
||||
)])
|
||||
|
||||
#endregion: Phase 3 Render-Loop Result Helpers
|
||||
|
||||
#endregion: MMA
|
||||
|
||||
Reference in New Issue
Block a user