Skip to content

Commit 75af50e

Browse files
committed
ci: fix python sdk checks
1 parent 8cfbba2 commit 75af50e

24 files changed

Lines changed: 463 additions & 362 deletions

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
python -m pip install --upgrade pip pip-audit
8686
pip install -e ".[dev]"
8787
- name: pip-audit
88-
run: pip-audit
88+
run: pip-audit . --skip-editable
8989

9090
build:
9191
name: build (sdist + wheel)

pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ dev = [
3939
"pytest-asyncio>=0.21",
4040
"respx>=0.21",
4141
"ruff>=0.4.0",
42-
"mypy>=1.0",
42+
"mypy>=1.0,<2",
4343
]
4444

4545
# Read the package version from the repo-root VERSION file at build time.
@@ -85,3 +85,7 @@ python_version = "3.9"
8585
strict = true
8686
warn_return_any = true
8787
warn_unused_configs = true
88+
89+
[[tool.mypy.overrides]]
90+
module = ["opentelemetry.*"]
91+
ignore_missing_imports = true

release-please-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
{ "type": "chore", "section": "Chores", "hidden": true },
2222
{ "type": "style", "section": "Style", "hidden": true }
2323
],
24-
"extra-files": [{"type":"version-txt","path":"VERSION"}]
24+
"version-file": "VERSION"
2525
}
2626
}
2727
}

src/hawk/__init__.py

Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
from ._version import __version__
44
from .agent import Agent, AgentConfig, AsyncAgent
55
from .client import AsyncHawkClient, HawkClient
6+
from .discovery import (
7+
AgentCard,
8+
AgentResolver,
9+
CompositeResolver,
10+
FileResolver,
11+
WellKnownResolver,
12+
)
613
from .errors import (
714
AuthenticationError,
815
BadRequestError,
@@ -13,11 +20,19 @@
1320
RateLimitError,
1421
ServiceUnavailableError,
1522
)
23+
from .evaluate import (
24+
BenchmarkResults,
25+
EvalResult,
26+
EvalTask,
27+
run_benchmark,
28+
run_benchmark_async,
29+
)
30+
from .memory_tools import MemoryTools
1631
from .plan import Plan, PlanNotebook, SubTask, SubTaskState
1732
from .retry import DEFAULT_RETRY_CONFIG, RetryConfig
1833
from .streaming import AsyncStreamReader, StreamReader
19-
from .tools import Tool, chat_with_tools, chat_with_tools_async, tool
2034
from .toolkit import BackgroundTask, ToolGroup, Toolkit
35+
from .tools import Tool, chat_with_tools, chat_with_tools_async, tool
2136
from .tracing import (
2237
configure_tracing,
2338
detect_provider,
@@ -41,98 +56,83 @@
4156
ToolCall,
4257
Usage,
4358
)
44-
from .discovery import (
45-
AgentCard,
46-
AgentResolver,
47-
CompositeResolver,
48-
FileResolver,
49-
WellKnownResolver,
50-
)
51-
from .evaluate import (
52-
BenchmarkResults,
53-
EvalResult,
54-
EvalTask,
55-
run_benchmark,
56-
run_benchmark_async,
57-
)
58-
from .memory_tools import MemoryTools
5959
from .workflow import AsyncWorkflow, Workflow
6060

6161
__all__ = [
62-
# Version
63-
"__version__",
64-
# Client
65-
"HawkClient",
66-
"AsyncHawkClient",
62+
"DEFAULT_RETRY_CONFIG",
6763
# Agent
6864
"Agent",
69-
"AsyncAgent",
65+
# Discovery
66+
"AgentCard",
7067
"AgentConfig",
71-
# Streaming
72-
"StreamReader",
68+
"AgentResolver",
69+
"AsyncAgent",
70+
"AsyncHawkClient",
7371
"AsyncStreamReader",
74-
# Tools
75-
"Tool",
76-
"tool",
77-
"chat_with_tools",
78-
"chat_with_tools_async",
79-
# Plan
80-
"PlanNotebook",
81-
"Plan",
82-
"SubTask",
83-
"SubTaskState",
84-
# Toolkit
85-
"Toolkit",
86-
"ToolGroup",
87-
"BackgroundTask",
88-
# Workflow
89-
"Workflow",
9072
"AsyncWorkflow",
91-
# Retry
92-
"RetryConfig",
93-
"DEFAULT_RETRY_CONFIG",
73+
"AuthenticationError",
74+
"BackgroundTask",
75+
"BadRequestError",
76+
"BenchmarkResults",
9477
# Types
9578
"ChatRequest",
9679
"ChatResponse",
80+
"CompositeResolver",
81+
"EvalResult",
82+
# Evaluate
83+
"EvalTask",
84+
"FileResolver",
85+
"ForbiddenError",
86+
# Errors
87+
"HawkAPIError",
88+
# Client
89+
"HawkClient",
9790
"HealthResponse",
91+
"InternalServerError",
92+
# Memory
93+
"MemoryTools",
9894
"Message",
9995
"ModelStat",
96+
"NotFoundError",
10097
"PaginatedResponse",
98+
"Plan",
99+
# Plan
100+
"PlanNotebook",
101+
"RateLimitError",
102+
# Retry
103+
"RetryConfig",
104+
"ServiceUnavailableError",
101105
"SessionDetail",
102106
"SessionSummary",
103107
"StatsResponse",
104108
"StreamEvent",
105109
"StreamEventType",
110+
# Streaming
111+
"StreamReader",
112+
"SubTask",
113+
"SubTaskState",
114+
# Tools
115+
"Tool",
106116
"ToolCall",
117+
"ToolGroup",
118+
# Toolkit
119+
"Toolkit",
107120
"Usage",
121+
"WellKnownResolver",
122+
# Workflow
123+
"Workflow",
124+
# Version
125+
"__version__",
126+
"chat_with_tools",
127+
"chat_with_tools_async",
108128
# Tracing
109129
"configure_tracing",
110130
"detect_provider",
111131
"is_tracing_enabled",
132+
"run_benchmark",
133+
"run_benchmark_async",
134+
"tool",
112135
"trace",
113136
"trace_chat",
114137
"trace_tool",
115-
# Errors
116-
"HawkAPIError",
117-
"BadRequestError",
118-
"AuthenticationError",
119-
"ForbiddenError",
120-
"NotFoundError",
121-
"RateLimitError",
122-
"InternalServerError",
123-
"ServiceUnavailableError",
124-
# Evaluate
125-
"EvalTask",
126-
"EvalResult",
127-
"BenchmarkResults",
128-
"run_benchmark",
129-
"run_benchmark_async",
130-
# Discovery
131-
"AgentCard",
132-
"AgentResolver",
133-
"FileResolver",
134-
"WellKnownResolver",
135-
"CompositeResolver",
136-
# Memory
137-
"MemoryTools",
138138
]

src/hawk/agent.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
from __future__ import annotations
44

55
from dataclasses import dataclass, field
6-
from typing import Any, Optional
6+
from typing import TYPE_CHECKING, Any
77

8-
from .client import AsyncHawkClient, HawkClient
9-
from .streaming import AsyncStreamReader, StreamReader
108
from .tools import Tool, chat_with_tools, chat_with_tools_async
11-
from .types import ChatResponse
9+
10+
if TYPE_CHECKING:
11+
from .client import AsyncHawkClient, HawkClient
12+
from .streaming import AsyncStreamReader, StreamReader
13+
from .types import ChatResponse
1214

1315

1416
@dataclass
@@ -26,12 +28,12 @@ class AgentConfig:
2628
"""
2729

2830
name: str = "hawk-agent"
29-
model: Optional[str] = None
30-
system_prompt: Optional[str] = None
31+
model: str | None = None
32+
system_prompt: str | None = None
3133
tools: list[Tool] = field(default_factory=list)
3234
max_rounds: int = 10
33-
temperature: Optional[float] = None
34-
top_p: Optional[float] = None
35+
temperature: float | None = None
36+
top_p: float | None = None
3537

3638

3739
class Agent:
@@ -51,15 +53,15 @@ class Agent:
5153
def __init__(
5254
self,
5355
client: HawkClient,
54-
config: Optional[AgentConfig] = None,
56+
config: AgentConfig | None = None,
5557
) -> None:
5658
self._client = client
5759
self._config = config or AgentConfig()
58-
self._session_id: Optional[str] = None
60+
self._session_id: str | None = None
5961
self._history: list[dict[str, str]] = []
6062

6163
@property
62-
def session_id(self) -> Optional[str]:
64+
def session_id(self) -> str | None:
6365
"""Current session ID, if one has been established."""
6466
return self._session_id
6567

@@ -132,15 +134,15 @@ class AsyncAgent:
132134
def __init__(
133135
self,
134136
client: AsyncHawkClient,
135-
config: Optional[AgentConfig] = None,
137+
config: AgentConfig | None = None,
136138
) -> None:
137139
self._client = client
138140
self._config = config or AgentConfig()
139-
self._session_id: Optional[str] = None
141+
self._session_id: str | None = None
140142
self._history: list[dict[str, str]] = []
141143

142144
@property
143-
def session_id(self) -> Optional[str]:
145+
def session_id(self) -> str | None:
144146
"""Current session ID."""
145147
return self._session_id
146148

0 commit comments

Comments
 (0)