mirror of
https://github.com/anthropics/claude-code-sdk-python.git
synced 2025-12-23 09:19:52 +00:00
Remove hardcoded timeout for control messages to match Typescript SDK
This commit is contained in:
parent
5325dea9fd
commit
e852710d8c
2 changed files with 10 additions and 14 deletions
|
|
@ -1,5 +1,7 @@
|
|||
"""Error types for Claude SDK."""
|
||||
|
||||
from typing import Any
|
||||
|
||||
|
||||
class ClaudeSDKError(Exception):
|
||||
"""Base exception for all Claude SDK errors."""
|
||||
|
|
@ -49,6 +51,6 @@ class CLIJSONDecodeError(ClaudeSDKError):
|
|||
class MessageParseError(ClaudeSDKError):
|
||||
"""Raised when unable to parse a message from CLI output."""
|
||||
|
||||
def __init__(self, message: str, data: dict | None = None):
|
||||
def __init__(self, message: str, data: dict[str, Any] | None = None):
|
||||
self.data = data
|
||||
super().__init__(message)
|
||||
|
|
|
|||
|
|
@ -394,19 +394,13 @@ class SubprocessCLITransport(Transport):
|
|||
# Send request
|
||||
await self._stdin_stream.send(json.dumps(control_request) + "\n")
|
||||
|
||||
# Wait for response with timeout
|
||||
try:
|
||||
with anyio.fail_after(30.0): # 30 second timeout
|
||||
while request_id not in self._pending_control_responses:
|
||||
await anyio.sleep(0.1)
|
||||
# Wait for response
|
||||
while request_id not in self._pending_control_responses:
|
||||
await anyio.sleep(0.1)
|
||||
|
||||
response = self._pending_control_responses.pop(request_id)
|
||||
response = self._pending_control_responses.pop(request_id)
|
||||
|
||||
if response.get("subtype") == "error":
|
||||
raise CLIConnectionError(
|
||||
f"Control request failed: {response.get('error')}"
|
||||
)
|
||||
if response.get("subtype") == "error":
|
||||
raise CLIConnectionError(f"Control request failed: {response.get('error')}")
|
||||
|
||||
return response
|
||||
except TimeoutError:
|
||||
raise CLIConnectionError("Control request timed out") from None
|
||||
return response
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue