@@ -58,6 +58,8 @@ dev = [
5858 " pre-commit>=3.2.0,<4.2.0" ,
5959 " pytest>=8.0.0,<9.0.0" ,
6060 " pytest-asyncio>=0.26.0,<0.27.0" ,
61+ " pytest-cov>=4.1.0,<5.0.0" ,
62+ " pytest-xdist>=3.0.0,<4.0.0" ,
6163 " ruff>=0.4.4,<0.5.0" ,
6264]
6365docs = [
@@ -94,13 +96,59 @@ a2a = [
9496 " fastapi>=0.115.12" ,
9597 " starlette>=0.46.2" ,
9698]
99+ all = [
100+ # anthropic
101+ " anthropic>=0.21.0,<1.0.0" ,
102+
103+ # dev
104+ " commitizen>=4.4.0,<5.0.0" ,
105+ " hatch>=1.0.0,<2.0.0" ,
106+ " moto>=5.1.0,<6.0.0" ,
107+ " mypy>=1.15.0,<2.0.0" ,
108+ " pre-commit>=3.2.0,<4.2.0" ,
109+ " pytest>=8.0.0,<9.0.0" ,
110+ " pytest-asyncio>=0.26.0,<0.27.0" ,
111+ " pytest-cov>=4.1.0,<5.0.0" ,
112+ " pytest-xdist>=3.0.0,<4.0.0" ,
113+ " ruff>=0.4.4,<0.5.0" ,
114+
115+ # docs
116+ " sphinx>=5.0.0,<6.0.0" ,
117+ " sphinx-rtd-theme>=1.0.0,<2.0.0" ,
118+ " sphinx-autodoc-typehints>=1.12.0,<2.0.0" ,
119+
120+ # litellm
121+ " litellm>=1.72.6,<1.73.0" ,
122+
123+ # llama
124+ " llama-api-client>=0.1.0,<1.0.0" ,
125+
126+ # mistral
127+ " mistralai>=1.8.2" ,
128+
129+ # ollama
130+ " ollama>=0.4.8,<1.0.0" ,
131+
132+ # openai
133+ " openai>=1.68.0,<2.0.0" ,
134+
135+ # otel
136+ " opentelemetry-exporter-otlp-proto-http>=1.30.0,<2.0.0" ,
137+
138+ # a2a
139+ " a2a-sdk[sql]>=0.2.11" ,
140+ " uvicorn>=0.34.2" ,
141+ " httpx>=0.28.1" ,
142+ " fastapi>=0.115.12" ,
143+ " starlette>=0.46.2" ,
144+ ]
97145
98146[tool .hatch .version ]
99147# Tells Hatch to use your version control system (git) to determine the version.
100148source = " vcs"
101149
102150[tool .hatch .envs .hatch-static-analysis ]
103- features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " writer" ]
151+ features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " writer" , " a2a " ]
104152dependencies = [
105153 " mypy>=1.15.0,<2.0.0" ,
106154 " ruff>=0.11.6,<0.12.0" ,
@@ -116,15 +164,14 @@ format-fix = [
116164]
117165lint-check = [
118166 " ruff check" ,
119- # excluding due to A2A and OTEL http exporter dependency conflict
120- " mypy -p src --exclude src/strands/multiagent"
167+ " mypy -p src"
121168]
122169lint-fix = [
123170 " ruff check --fix"
124171]
125172
126173[tool .hatch .envs .hatch-test ]
127- features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " writer" ]
174+ features = [" anthropic" , " litellm" , " llamaapi" , " ollama" , " openai" , " otel" , " mistral" , " writer" , " a2a " ]
128175extra-dependencies = [
129176 " moto>=5.1.0,<6.0.0" ,
130177 " pytest>=8.0.0,<9.0.0" ,
@@ -140,35 +187,17 @@ extra-args = [
140187
141188[tool .hatch .envs .dev ]
142189dev-mode = true
143- features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " otel" , " mistral" , " writer" ]
144-
145- [tool .hatch .envs .a2a ]
146- dev-mode = true
147- features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " a2a" ]
148-
149- [tool .hatch .envs .a2a .scripts ]
150- run = [
151- " pytest{env:HATCH_TEST_ARGS:} tests/strands/multiagent/a2a {args}"
152- ]
153- run-cov = [
154- " pytest{env:HATCH_TEST_ARGS:} tests/strands/multiagent/a2a --cov --cov-config=pyproject.toml {args}"
155- ]
156- lint-check = [
157- " ruff check" ,
158- " mypy -p src/strands/multiagent/a2a"
159- ]
190+ features = [" dev" , " docs" , " anthropic" , " litellm" , " llamaapi" , " ollama" , " otel" , " mistral" , " writer" , " a2a" ]
160191
161192[[tool .hatch .envs .hatch-test .matrix ]]
162193python = [" 3.13" , " 3.12" , " 3.11" , " 3.10" ]
163194
164195[tool .hatch .envs .hatch-test .scripts ]
165196run = [
166- # excluding due to A2A and OTEL http exporter dependency conflict
167- " pytest{env:HATCH_TEST_ARGS:} {args} --ignore=tests/strands/multiagent/a2a"
197+ " pytest{env:HATCH_TEST_ARGS:} {args}"
168198]
169199run-cov = [
170- # excluding due to A2A and OTEL http exporter dependency conflict
171- " pytest{env:HATCH_TEST_ARGS:} --cov --cov-config=pyproject.toml {args} --ignore=tests/strands/multiagent/a2a"
200+ " pytest{env:HATCH_TEST_ARGS:} --cov --cov-config=pyproject.toml {args}"
172201]
173202
174203cov-combine = []
@@ -203,10 +232,6 @@ prepare = [
203232 " hatch run test-lint" ,
204233 " hatch test --all"
205234]
206- test-a2a = [
207- # required to run manually due to A2A and OTEL http exporter dependency conflict
208- " hatch -e a2a run run {args}"
209- ]
210235
211236[tool .mypy ]
212237python_version = " 3.10"
0 commit comments