Private
Public Access
0
0

TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 3: refactor(mcp_client): migrate L430 get_file_slice to Result[T] (Phase 3 site 7)

Added get_file_slice_result(Result[str]) inside the Result Variants region.
Legacy get_file_slice (str) now delegates to get_file_slice_result.

Audit: mcp_client BC count 34 -> 33.
This commit is contained in:
2026-06-20 08:32:54 -04:00
parent 0274f35dea
commit dc903ab371
+10 -14
View File
@@ -444,20 +444,16 @@ def get_file_summary(path: str) -> str:
return "; ".join(e.ui_message() for e in resolved.errors)
def get_file_slice(path: str, start_line: int, end_line: int) -> str:
"""Return a specific line range from a file."""
p, err = _resolve_and_check(path)
if err:
return err
assert p is not None
if not p.exists():
return f"ERROR: file not found: {path}"
try:
lines = p.read_text(encoding="utf-8").splitlines(keepends=True)
start_idx = start_line - 1
end_idx = end_line
return "".join(lines[start_idx:end_idx])
except Exception as e:
return f"ERROR reading slice from '{path}': {e}"
"""Return a specific line range from a file.
Thin wrapper over get_file_slice_result; the legacy str shape is
preserved for backward compatibility, but the try/except Exception
lives in the Result variant.
"""
resolved = get_file_slice_result(path, start_line, end_line)
if resolved.ok:
return resolved.data
return "; ".join(e.ui_message() for e in resolved.errors)
def set_file_slice(path: str, start_line: int, end_line: int, new_content: str) -> str:
"""Replace a specific line range in a file with new content."""