Skip to content

Commit f93243b

Browse files
committed
refactor: replace hasattr checks with isinstance type checking
1 parent 039e2b5 commit f93243b

3 files changed

Lines changed: 33 additions & 16 deletions

File tree

claude_agent_sdk/chief_of_staff_agent/agent.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@
1010

1111
from dotenv import load_dotenv
1212

13-
from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, ResultMessage, UserMessage
13+
from claude_agent_sdk import (
14+
AssistantMessage,
15+
ClaudeAgentOptions,
16+
ClaudeSDKClient,
17+
ResultMessage,
18+
ToolUseBlock,
19+
UserMessage,
20+
)
1421

1522
load_dotenv()
1623

@@ -19,10 +26,9 @@ def get_activity_text(msg) -> str | None:
1926
"""Extract activity text from a message"""
2027
try:
2128
if isinstance(msg, AssistantMessage):
22-
if hasattr(msg, "content") and msg.content:
23-
first_content = msg.content[0] if isinstance(msg.content, list) else msg.content
24-
if hasattr(first_content, "name"):
25-
return f"🤖 Using: {first_content.name}()"
29+
first_content = msg.content[0] if isinstance(msg.content, list) else msg.content
30+
if isinstance(first_content, ToolUseBlock):
31+
return f"🤖 Using: {first_content.name}()"
2632
return "🤖 Thinking..."
2733
elif isinstance(msg, UserMessage):
2834
return "✓ Tool completed"

claude_agent_sdk/observability_agent/agent.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@
1010

1111
from dotenv import load_dotenv
1212

13-
from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, ResultMessage, UserMessage
13+
from claude_agent_sdk import (
14+
AssistantMessage,
15+
ClaudeAgentOptions,
16+
ClaudeSDKClient,
17+
ResultMessage,
18+
ToolUseBlock,
19+
UserMessage,
20+
)
1421

1522
load_dotenv()
1623

@@ -19,10 +26,9 @@ def get_activity_text(msg) -> str | None:
1926
"""Extract activity text from a message"""
2027
try:
2128
if isinstance(msg, AssistantMessage):
22-
if hasattr(msg, "content") and msg.content:
23-
first_content = msg.content[0] if isinstance(msg.content, list) else msg.content
24-
if hasattr(first_content, "name"):
25-
return f"🤖 Using: {first_content.name}()"
29+
first_content = msg.content[0] if isinstance(msg.content, list) else msg.content
30+
if isinstance(first_content, ToolUseBlock):
31+
return f"🤖 Using: {first_content.name}()"
2632
return "🤖 Thinking..."
2733
elif isinstance(msg, UserMessage):
2834
return "✓ Tool completed"

claude_agent_sdk/research_agent/agent.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@
88

99
from dotenv import load_dotenv
1010

11-
from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient, ResultMessage, UserMessage
11+
from claude_agent_sdk import (
12+
AssistantMessage,
13+
ClaudeAgentOptions,
14+
ClaudeSDKClient,
15+
ResultMessage,
16+
ToolUseBlock,
17+
UserMessage,
18+
)
1219

1320
load_dotenv()
1421

@@ -17,11 +24,9 @@ def get_activity_text(msg) -> str | None:
1724
"""Extract activity text from a message"""
1825
try:
1926
if isinstance(msg, AssistantMessage):
20-
# Check if content exists and has items
21-
if hasattr(msg, "content") and msg.content:
22-
first_content = msg.content[0] if isinstance(msg.content, list) else msg.content
23-
if hasattr(first_content, "name"):
24-
return f"🤖 Using: {first_content.name}()"
27+
first_content = msg.content[0] if isinstance(msg.content, list) else msg.content
28+
if isinstance(first_content, ToolUseBlock):
29+
return f"🤖 Using: {first_content.name}()"
2530
return "🤖 Thinking..."
2631
elif isinstance(msg, UserMessage):
2732
return "✓ Tool completed"

0 commit comments

Comments
 (0)