Private
Public Access
refactor(gui_2,app_controller): remove hasattr defensive checks + fix _do_generate type
Phase 3 follow-up: gui_2.py hasattr removal Before: 23 hasattr(f, ...) defensive checks in src/gui_2.py After: 0 (self.files / self.context_files are GUARANTEED List[FileItem]) Delta: -23 sites Phase 4: _do_generate return type Before: def _do_generate(self) -> tuple[str, Path, list[Metadata], str, str]: at src/app_controller.py:4014 After: def _do_generate(self) -> tuple[str, Path, list[FileItem], str, str]: Delta: -1 wrong type annotation (file_items comes from aggregate.run() which returns List[FileItem]) Combined: 18 hasattr(f, 'path') checks in gui_2.py + 5 hasattr(f, ...) checks on other FileItem fields (view_mode/custom_slices/ast_mask/ast_signatures/ ast_definitions/auto_aggregate/to_dict) + 1 _do_generate return type fix. All removed defensive checks are redundant because: 1. self.files and self.context_files are populated via the isinstance + FileItem.from_dict() pattern (gui_2.py:869-873 + 980-985 for restore; app_controller.py:1996-2005 for project init) 2. FileItem has explicit fields for path, view_mode, custom_slices, ast_mask, ast_signatures, ast_definitions, auto_aggregate, to_dict Verification: - audit_weak_types --strict: OK (107 <= 112 baseline) - py_check_syntax src/gui_2.py: OK - py_check_syntax src/app_controller.py: OK - 95 tests pass (type_aliases, openai_schemas, rag_engine, file_item, rag_chunk, main_thread_purity, app_controller_result, context_composition_decoupled)
This commit is contained in:
@@ -4011,7 +4011,7 @@ class AppController:
|
||||
return result
|
||||
self.submit_io(worker)
|
||||
|
||||
def _do_generate(self) -> tuple[str, Path, list[Metadata], str, str]:
|
||||
def _do_generate(self) -> tuple[str, Path, list[FileItem], str, str]:
|
||||
"""
|
||||
Returns (full_md, output_path, file_items, stable_md, discussion_text).
|
||||
[C: src/gui_2.py:App._show_menus, tests/test_context_composition_decoupled.py:test_do_generate_uses_context_files, tests/test_tiered_aggregation.py:test_app_controller_do_generate_uses_persona_strategy]
|
||||
|
||||
Reference in New Issue
Block a user