@@ -57,6 +57,8 @@ dev = [
5757 " pre-commit>=3.2.0,<4.2.0" ,
5858 " pytest>=8.0.0,<9.0.0" ,
5959 " pytest-asyncio>=0.26.0,<0.27.0" ,
60+ " pytest-cov>=4.1.0,<5.0.0" ,
61+ " pytest-xdist>=3.0.0,<4.0.0" ,
6062 " ruff>=0.4.4,<0.5.0" ,
6163]
6264docs = [
@@ -83,7 +85,55 @@ otel = [
8385 " opentelemetry-exporter-otlp-proto-http>=1.30.0,<2.0.0" ,
8486]
8587a2a = [
86- " a2a-sdk>=0.2.6" ,
88+ " a2a-sdk>=0.2.11" ,
89+ " a2a-sdk[sql]>=0.2.11" ,
90+ " uvicorn>=0.34.2" ,
91+ " httpx>=0.28.1" ,
92+ " fastapi>=0.115.12" ,
93+ " starlette>=0.46.2" ,
94+ ]
95+ all = [
96+ # anthropic
97+ " anthropic>=0.21.0,<1.0.0" ,
98+
99+ # dev
100+ " commitizen>=4.4.0,<5.0.0" ,
101+ " hatch>=1.0.0,<2.0.0" ,
102+ " moto>=5.1.0,<6.0.0" ,
103+ " mypy>=1.15.0,<2.0.0" ,
104+ " pre-commit>=3.2.0,<4.2.0" ,
105+ " pytest>=8.0.0,<9.0.0" ,
106+ " pytest-asyncio>=0.26.0,<0.27.0" ,
107+ " pytest-cov>=4.1.0,<5.0.0" ,
108+ " pytest-xdist>=3.0.0,<4.0.0" ,
109+ " ruff>=0.4.4,<0.5.0" ,
110+
111+ # docs
112+ " sphinx>=5.0.0,<6.0.0" ,
113+ " sphinx-rtd-theme>=1.0.0,<2.0.0" ,
114+ " sphinx-autodoc-typehints>=1.12.0,<2.0.0" ,
115+
116+ # litellm
117+ " litellm>=1.72.6,<1.73.0" ,
118+
119+ # llama
120+ " llama-api-client>=0.1.0,<1.0.0" ,
121+
122+ # mistral
123+ " mistralai>=1.8.2" ,
124+
125+ # ollama
126+ " ollama>=0.4.8,<1.0.0" ,
127+
128+ # openai
129+ " openai>=1.68.0,<2.0.0" ,
130+
131+ # otel
132+ " opentelemetry-exporter-otlp-proto-http>=1.30.0,<2.0.0" ,
133+
134+ # a2a
135+ " a2a-sdk>=0.2.11" ,
136+ " a2a-sdk[sql]>=0.2.11" ,
87137 " uvicorn>=0.34.2" ,
88138 " httpx>=0.28.1" ,
89139 " fastapi>=0.115.12" ,
@@ -95,7 +145,7 @@ a2a = [
95145source = " vcs"
96146
97147[tool .hatch .envs .hatch-static-analysis ]
98- features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" ," mistral" ]
148+ features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " a2a " ]
99149dependencies = [
100150 " mypy>=1.15.0,<2.0.0" ,
101151 " ruff>=0.11.6,<0.12.0" ,
@@ -111,15 +161,14 @@ format-fix = [
111161]
112162lint-check = [
113163 " ruff check" ,
114- # excluding due to A2A and OTEL http exporter dependency conflict
115- " mypy -p src --exclude src/strands/multiagent"
164+ " mypy -p src"
116165]
117166lint-fix = [
118167 " ruff check --fix"
119168]
120169
121170[tool .hatch .envs .hatch-test ]
122- features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" ," mistral" ]
171+ features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " a2a " ]
123172extra-dependencies = [
124173 " moto>=5.1.0,<6.0.0" ,
125174 " pytest>=8.0.0,<9.0.0" ,
@@ -135,35 +184,17 @@ extra-args = [
135184
136185[tool .hatch .envs .dev ]
137186dev-mode = true
138- features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " otel" ," mistral" ]
139-
140- [tool .hatch .envs .a2a ]
141- dev-mode = true
142- features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " a2a" ]
143-
144- [tool .hatch .envs .a2a .scripts ]
145- run = [
146- " pytest{env:HATCH_TEST_ARGS:} tests/strands/multiagent/a2a {args}"
147- ]
148- run-cov = [
149- " pytest{env:HATCH_TEST_ARGS:} tests/strands/multiagent/a2a --cov --cov-config=pyproject.toml {args}"
150- ]
151- lint-check = [
152- " ruff check" ,
153- " mypy -p src/strands/multiagent/a2a"
154- ]
187+ features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " otel" , " mistral" ]
155188
156189[[tool .hatch .envs .hatch-test .matrix ]]
157190python = [" 3.13" , " 3.12" , " 3.11" , " 3.10" ]
158191
159192[tool .hatch .envs .hatch-test .scripts ]
160193run = [
161- # excluding due to A2A and OTEL http exporter dependency conflict
162- " pytest{env:HATCH_TEST_ARGS:} {args} --ignore=tests/strands/multiagent/a2a"
194+ " pytest{env:HATCH_TEST_ARGS:} {args}"
163195]
164196run-cov = [
165- # excluding due to A2A and OTEL http exporter dependency conflict
166- " pytest{env:HATCH_TEST_ARGS:} --cov --cov-config=pyproject.toml {args} --ignore=tests/strands/multiagent/a2a"
197+ " pytest{env:HATCH_TEST_ARGS:} --cov --cov-config=pyproject.toml {args}"
167198]
168199
169200cov-combine = []
@@ -198,10 +229,6 @@ prepare = [
198229 " hatch run test-lint" ,
199230 " hatch test --all"
200231]
201- test-a2a = [
202- # required to run manually due to A2A and OTEL http exporter dependency conflict
203- " hatch -e a2a run run {args}"
204- ]
205232
206233[tool .mypy ]
207234python_version = " 3.10"
0 commit comments