code-analysis-client 1.6.241__tar.gz → 1.6.242__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/PKG-INFO +1 -1
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/client.py +2 -8
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/queue_wait.py +28 -2
- code_analysis_client-1.6.242/code_analysis_client/version.txt +1 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client.egg-info/PKG-INFO +1 -1
- code_analysis_client-1.6.241/code_analysis_client/version.txt +0 -1
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/README.md +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/__init__.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/check_chain.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/commands_proxy.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/config.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/exceptions.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/file_session.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/py.typed +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/responses.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/schema_disk_cache.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/server_api.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/server_schema.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/universal_file.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/validation.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/vectorizer_state.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/worktree.py +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client.egg-info/SOURCES.txt +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client.egg-info/dependency_links.txt +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client.egg-info/requires.txt +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client.egg-info/top_level.txt +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/pyproject.toml +0 -0
- {code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-analysis-client
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.242
|
|
4
4
|
Summary: Async JSON-RPC client for the code-analysis MCP server (mcp-proxy-adapter JsonRpcClient)
|
|
5
5
|
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
|
6
6
|
Requires-Python: >=3.10
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/client.py
RENAMED
|
@@ -37,6 +37,7 @@ from code_analysis_client.queue_wait import (
|
|
|
37
37
|
QueuedJob,
|
|
38
38
|
StatusHook,
|
|
39
39
|
check_wait_arguments,
|
|
40
|
+
invalid_params_error,
|
|
40
41
|
map_adapter_error,
|
|
41
42
|
result_from_unified,
|
|
42
43
|
)
|
|
@@ -71,14 +72,7 @@ def _remote_invalid_params_as_client_validation(
|
|
|
71
72
|
if details.get("code") != -32602:
|
|
72
73
|
return None
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
payload = payload if isinstance(payload, dict) else {}
|
|
76
|
-
field = payload.get("field")
|
|
77
|
-
return ClientValidationError(
|
|
78
|
-
str(error),
|
|
79
|
-
field=field if isinstance(field, str) else "command",
|
|
80
|
-
details=payload,
|
|
81
|
-
)
|
|
75
|
+
return invalid_params_error(str(error), details.get("data"))
|
|
82
76
|
|
|
83
77
|
|
|
84
78
|
class CodeAnalysisAsyncClient:
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/queue_wait.py
RENAMED
|
@@ -30,6 +30,7 @@ from mcp_proxy_adapter.client.jsonrpc_client.exceptions import (
|
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
from code_analysis_client.exceptions import (
|
|
33
|
+
ClientValidationError,
|
|
33
34
|
CommandFailedError,
|
|
34
35
|
JobFailedError,
|
|
35
36
|
JobTimeoutError,
|
|
@@ -86,6 +87,23 @@ def _extract_inner_command_error(status_data: Dict[str, Any]) -> Any:
|
|
|
86
87
|
return None
|
|
87
88
|
|
|
88
89
|
|
|
90
|
+
def invalid_params_error(
|
|
91
|
+
message: str, data: Any
|
|
92
|
+
) -> ClientValidationError:
|
|
93
|
+
"""Build the :class:`ClientValidationError` for a server JSON-RPC -32602 refusal.
|
|
94
|
+
|
|
95
|
+
The single constructor for both the top-level refusal (``client.py``) and a refusal carried by
|
|
96
|
+
a failed job (``job_failure``), so ``code`` / ``field`` / ``details`` have one shape.
|
|
97
|
+
"""
|
|
98
|
+
payload = data if isinstance(data, dict) else {}
|
|
99
|
+
field = payload.get("field")
|
|
100
|
+
return ClientValidationError(
|
|
101
|
+
message,
|
|
102
|
+
field=field if isinstance(field, str) else "command",
|
|
103
|
+
details=payload,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
89
107
|
def command_failed(
|
|
90
108
|
command: Optional[str], job_id: Optional[str], inner: Dict[str, Any]
|
|
91
109
|
) -> CommandFailedError:
|
|
@@ -100,8 +118,12 @@ def job_failure(
|
|
|
100
118
|
job_id: Optional[str],
|
|
101
119
|
status_data: Optional[Dict[str, Any]],
|
|
102
120
|
terminal_event: Optional[Dict[str, Any]] = None,
|
|
103
|
-
) -> JobFailedError:
|
|
104
|
-
"""Build the
|
|
121
|
+
) -> Union[JobFailedError, ClientValidationError]:
|
|
122
|
+
"""Build the error for a job that ended failed / stopped / cancelled.
|
|
123
|
+
|
|
124
|
+
A job whose structured error carries JSON-RPC ``-32602`` (the server validates after
|
|
125
|
+
enqueueing) yields :class:`ClientValidationError` exactly like a top-level refusal; every other
|
|
126
|
+
failure yields :class:`JobFailedError`.
|
|
105
127
|
|
|
106
128
|
``error`` is always the structured error object: the failed command's own error when the
|
|
107
129
|
status payload carries one, else the queue-level error (a bare string is wrapped as
|
|
@@ -119,6 +141,10 @@ def job_failure(
|
|
|
119
141
|
error = terminal_event.get("error")
|
|
120
142
|
if not isinstance(error, dict):
|
|
121
143
|
error = {"message": str(error) if error else f"job {status}", "status": status}
|
|
144
|
+
if error.get("code") == -32602:
|
|
145
|
+
return invalid_params_error(
|
|
146
|
+
f"Invalid parameters: {error.get('message')}", error.get("data")
|
|
147
|
+
)
|
|
122
148
|
return JobFailedError(job_id, error, status=status)
|
|
123
149
|
|
|
124
150
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6.242
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-analysis-client
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.242
|
|
4
4
|
Summary: Async JSON-RPC client for the code-analysis MCP server (mcp-proxy-adapter JsonRpcClient)
|
|
5
5
|
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.6.241
|
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/__init__.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/check_chain.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/commands_proxy.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/config.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/exceptions.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/file_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/responses.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/server_api.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/server_schema.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/universal_file.py
RENAMED
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_analysis_client-1.6.241 → code_analysis_client-1.6.242}/code_analysis_client/worktree.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|