From 0decb747ac9239faf5119b7faa80596995746ef9 Mon Sep 17 00:00:00 2001 From: blasty Date: Fri, 24 Jul 2026 14:41:23 +0200 Subject: refactor: extract shared error hierarchy + Session into idatui/errors.py The IDAError/IDAConnectionError/IDAToolError/... exceptions and the Session dataclass were defined in client.py (the ida-pro-mcp HTTP client), but the idalib worker path (worker_client/domain/app) needs them without the HTTP transport. Move them to a transport-agnostic errors.py; client.py re-exports them so the deprecated mcp tooling and stress tests are unchanged (verified: errors.IDAToolError IS client.IDAToolError, so cross-module `except` still works). worker_client, domain (TYPE_CHECKING-guarded IDAClient hint), app, and __init__ now import the shared types from errors.py. This decouples the worker path from client.py at runtime -- the prerequisite for deleting the mcp transport. --- idatui/__init__.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'idatui/__init__.py') diff --git a/idatui/__init__.py b/idatui/__init__.py index a52ba8b..92d8b5d 100644 --- a/idatui/__init__.py +++ b/idatui/__init__.py @@ -1,7 +1,6 @@ """idatui — a minimal keyboard-first TUI for IDA Pro over ida-pro-mcp (idalib).""" -from .client import ( - IDAClient, +from .errors import ( IDAError, IDAConnectionError, IDATimeoutError, @@ -10,8 +9,8 @@ from .client import ( IDAToolError, IDASessionError, Session, - KeepAlive, ) +from .client import IDAClient, KeepAlive # deprecated mcp transport from .domain import ( Program, FunctionIndex, -- cgit v1.3.1-sl0p