@@ -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 = [
@@ -89,13 +91,59 @@ a2a = [
8991 " fastapi>=0.115.12" ,
9092 " starlette>=0.46.2" ,
9193]
94+ all = [
95+ # anthropic
96+ " anthropic>=0.21.0,<1.0.0" ,
97+
98+ # dev
99+ " commitizen>=4.4.0,<5.0.0" ,
100+ " hatch>=1.0.0,<2.0.0" ,
101+ " moto>=5.1.0,<6.0.0" ,
102+ " mypy>=1.15.0,<2.0.0" ,
103+ " pre-commit>=3.2.0,<4.2.0" ,
104+ " pytest>=8.0.0,<9.0.0" ,
105+ " pytest-asyncio>=0.26.0,<0.27.0" ,
106+ " pytest-cov>=4.1.0,<5.0.0" ,
107+ " pytest-xdist>=3.0.0,<4.0.0" ,
108+ " ruff>=0.4.4,<0.5.0" ,
109+
110+ # docs
111+ " sphinx>=5.0.0,<6.0.0" ,
112+ " sphinx-rtd-theme>=1.0.0,<2.0.0" ,
113+ " sphinx-autodoc-typehints>=1.12.0,<2.0.0" ,
114+
115+ # litellm
116+ " litellm>=1.72.6,<1.73.0" ,
117+
118+ # llama
119+ " llama-api-client>=0.1.0,<1.0.0" ,
120+
121+ # mistral
122+ " mistralai>=1.8.2" ,
123+
124+ # ollama
125+ " ollama>=0.4.8,<1.0.0" ,
126+
127+ # openai
128+ " openai>=1.68.0,<2.0.0" ,
129+
130+ # otel
131+ " opentelemetry-exporter-otlp-proto-http>=1.30.0,<2.0.0" ,
132+
133+ # a2a
134+ " a2a-sdk>=0.2.6" ,
135+ " uvicorn>=0.34.2" ,
136+ " httpx>=0.28.1" ,
137+ " fastapi>=0.115.12" ,
138+ " starlette>=0.46.2" ,
139+ ]
92140
93141[tool .hatch .version ]
94142# Tells Hatch to use your version control system (git) to determine the version.
95143source = " vcs"
96144
97145[tool .hatch .envs .hatch-static-analysis ]
98- features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" ," mistral" ]
146+ features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " a2a " ]
99147dependencies = [
100148 " mypy>=1.15.0,<2.0.0" ,
101149 " ruff>=0.11.6,<0.12.0" ,
@@ -111,15 +159,14 @@ format-fix = [
111159]
112160lint-check = [
113161 " ruff check" ,
114- # excluding due to A2A and OTEL http exporter dependency conflict
115- " mypy -p src --exclude src/strands/multiagent"
162+ " mypy -p src"
116163]
117164lint-fix = [
118165 " ruff check --fix"
119166]
120167
121168[tool .hatch .envs .hatch-test ]
122- features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" ," mistral" ]
169+ features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " a2a " ]
123170extra-dependencies = [
124171 " moto>=5.1.0,<6.0.0" ,
125172 " pytest>=8.0.0,<9.0.0" ,
@@ -135,35 +182,17 @@ extra-args = [
135182
136183[tool .hatch .envs .dev ]
137184dev-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- ]
185+ features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " otel" , " mistral" ]
155186
156187[[tool .hatch .envs .hatch-test .matrix ]]
157188python = [" 3.13" , " 3.12" , " 3.11" , " 3.10" ]
158189
159190[tool .hatch .envs .hatch-test .scripts ]
160191run = [
161- # excluding due to A2A and OTEL http exporter dependency conflict
162- " pytest{env:HATCH_TEST_ARGS:} {args} --ignore=tests/strands/multiagent/a2a"
192+ " pytest{env:HATCH_TEST_ARGS:} {args}"
163193]
164194run-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"
195+ " pytest{env:HATCH_TEST_ARGS:} --cov --cov-config=pyproject.toml {args}"
167196]
168197
169198cov-combine = []
@@ -198,10 +227,6 @@ prepare = [
198227 " hatch run test-lint" ,
199228 " hatch test --all"
200229]
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- ]
205230
206231[tool .mypy ]
207232python_version = " 3.10"
0 commit comments