forked from google/adk-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
208 lines (198 loc) · 9.41 KB
/
pyproject.toml
File metadata and controls
208 lines (198 loc) · 9.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
[build-system]
build-backend = "flit_core.buildapi"
# Build system specify which backend is used to build/install the project (flit,
# poetry, setuptools,...). All backends are supported by `pip install`
requires = [ "flit-core>=3.8,<4" ]
[project]
# Project metadata. Available keys are documented at:
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata
name = "google-adk"
description = "Agent Development Kit"
readme = "README.md"
license = { file = "LICENSE" }
authors = [ { name = "Google LLC", email = "googleapis-packages@google.com" } ]
requires-python = ">=3.10"
classifiers = [
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
# List of https://pypi.org/classifiers/
"Typing :: Typed",
]
dynamic = [ "version" ]
dependencies = [
"aiosqlite>=0.21", # For SQLite database
"anyio>=4.9,<5", # For MCP Session Manager
"authlib>=1.6.6,<2", # For RestAPI Tool
"click>=8.1.8,<9", # For CLI tools
"fastapi>=0.124.1,<1", # FastAPI framework
"google-api-python-client>=2.157,<3", # Google API client discovery
"google-auth[pyopenssl]>=2.47", # Google Auth library
"google-cloud-aiplatform[agent-engines]>=1.148.1,<2", # For VertexAI integrations, e.g. example store.
"google-cloud-bigquery>=2.2",
"google-cloud-bigquery-storage>=2",
"google-cloud-bigtable>=2.32", # For Bigtable database
"google-cloud-dataplex>=1.7,<3", # For Dataplex Catalog Search tool
"google-cloud-discoveryengine>=0.13.12,<0.14", # For Discovery Engine Search Tool
"google-cloud-pubsub>=2,<3", # For Pub/Sub Tool
"google-cloud-secret-manager>=2.22,<3", # Fetching secrets in RestAPI Tool
"google-cloud-spanner>=3.56,<4", # For Spanner database
"google-cloud-speech>=2.30,<3", # For Audio Transcription
"google-cloud-storage>=2.18,<4", # For GCS Artifact service
"google-genai>=1.72,<2", # Google GenAI SDK
"graphviz>=0.20.2,<1", # Graphviz for graph rendering
"httpx>=0.27,<1", # HTTP client library
"jsonschema>=4.23,<5", # Agent Builder config validation
"mcp>=1.24,<2", # For MCP Toolset
"opentelemetry-api>=1.36,<1.39", # OpenTelemetry - keep below 1.39.0 due to current agent_engines exporter constraints.
"opentelemetry-exporter-gcp-logging>=1.9.0a0,<2",
"opentelemetry-exporter-gcp-monitoring>=1.9.0a0,<2",
"opentelemetry-exporter-gcp-trace>=1.9,<2",
"opentelemetry-exporter-otlp-proto-http>=1.36",
"opentelemetry-resourcedetector-gcp>=1.9.0a0,<2",
"opentelemetry-sdk>=1.36,<1.39",
"pyarrow>=14",
"pydantic>=2.12,<3", # For data validation/models
"python-dateutil>=2.9.0.post0,<3", # For Vertext AI Session Service
"python-dotenv>=1,<2", # To manage environment variables
"pyyaml>=6.0.2,<7", # For APIHubToolset.
"requests>=2.32.4,<3",
"sqlalchemy>=2,<3", # SQL database ORM
"sqlalchemy-spanner>=1.14", # Spanner database session service
"starlette>=0.49.1,<1", # For FastAPI CLI
"tenacity>=9,<10", # For Retry management
"typing-extensions>=4.5,<5",
"tzlocal>=5.3,<6", # Time zone utilities
"uvicorn>=0.34,<1", # ASGI server for FastAPI
"watchdog>=6,<7", # For file change detection and hot reload
"websockets>=15.0.1,<16", # For BaseLlmFlow
]
optional-dependencies.a2a = [
"a2a-sdk>=0.3.4,<0.4",
]
optional-dependencies.agent-identity = [
"google-cloud-iamconnectorcredentials>=0.1,<0.2",
]
optional-dependencies.community = [
"google-adk-community",
]
optional-dependencies.dev = [
"flit>=3.10",
"isort>=6",
"mypy>=1.15",
"pre-commit>=4",
"pyink>=25.12",
"pylint>=2.6",
]
optional-dependencies.docs = [
"autodoc-pydantic",
"furo",
"myst-parser",
"sphinx<9",
"sphinx-autodoc-typehints",
"sphinx-click",
"sphinx-rtd-theme",
]
optional-dependencies.eval = [
"gepa>=0.1",
"google-cloud-aiplatform[evaluation]>=1.148",
"jinja2>=3.1.4,<4", # For eval template rendering
"pandas>=2.2.3",
"rouge-score>=0.1.2",
"tabulate>=0.9",
]
# Optional extensions
optional-dependencies.extensions = [
"anthropic>=0.43", # For anthropic model support
"beautifulsoup4>=3.2.2", # For load_web_page tool.
"crewai[tools]; python_version>='3.11' and python_version<'3.12'", # For CrewaiTool; chromadb/pypika fail on 3.12+
"docker>=7", # For ContainerCodeExecutor
"google-cloud-firestore>=2.11,<3", # For Firestore services
"google-cloud-parametermanager>=0.4,<1",
"k8s-agent-sandbox>=0.1.1.post3", # For GkeCodeExecutor sandbox mode
"kubernetes>=29", # For GkeCodeExecutor
"langgraph>=0.2.60,<0.4.8", # For LangGraphAgent
"litellm>=1.75.5,<=1.82.6", # For LiteLlm class. Upper bound pinned: versions 1.82.7+ compromised in supply chain attack.
"llama-index-embeddings-google-genai>=0.3", # For files retrieval using LlamaIndex.
"llama-index-readers-file>=0.4", # For retrieval using LlamaIndex.
"lxml>=5.3", # For load_web_page tool.
"pypika>=0.50", # For crewai->chromadb dependency
"toolbox-adk>=1,<2", # For tools.toolbox_toolset.ToolboxToolset
]
optional-dependencies.otel-gcp = [ "opentelemetry-instrumentation-google-genai>=0.6b0,<1" ]
optional-dependencies.slack = [ "slack-bolt>=1.22" ]
optional-dependencies.test = [
"a2a-sdk>=0.3,<0.4",
"anthropic>=0.43", # For anthropic model tests
"crewai[tools]; python_version>='3.11' and python_version<'3.12'", # For CrewaiTool tests; chromadb/pypika fail on 3.12+
"google-cloud-firestore>=2.11,<3",
"google-cloud-iamconnectorcredentials>=0.1,<0.2",
"google-cloud-parametermanager>=0.4,<1",
"kubernetes>=29", # For GkeCodeExecutor
"langchain-community>=0.3.17",
"langgraph>=0.2.60,<0.4.8", # For LangGraphAgent
"litellm>=1.75.5,<=1.82.6", # For LiteLLM tests. Upper bound pinned: versions 1.82.7+ compromised in supply chain attack.
"llama-index-readers-file>=0.4", # For retrieval tests
"openai>=1.100.2", # For LiteLLM
"opentelemetry-instrumentation-google-genai>=0.3b0,<1",
"pypika>=0.50", # For crewai->chromadb dependency
"pytest>=9,<10",
"pytest-asyncio>=0.25",
"pytest-mock>=3.14",
"pytest-xdist>=3.6.1",
"python-multipart>=0.0.9",
"rouge-score>=0.1.2",
"slack-bolt>=1.22",
"tabulate>=0.9",
]
optional-dependencies.toolbox = [ "toolbox-adk>=1,<2" ]
urls.changelog = "https://github.com/google/adk-python/blob/main/CHANGELOG.md"
urls.documentation = "https://google.github.io/adk-docs/"
urls.homepage = "https://google.github.io/adk-docs/"
urls.repository = "https://github.com/google/adk-python"
scripts.adk = "google.adk.cli:main"
[tool.flit.sdist]
include = [ 'src/**/*', 'README.md', 'pyproject.toml', 'LICENSE' ]
exclude = [ 'src/**/*.sh' ]
[tool.flit.module]
name = "google.adk"
include = [ "py.typed" ]
[tool.isort]
profile = "google"
single_line_exclusions = [ ]
line_length = 200 # Prevent line wrap flickering.
known_third_party = [ "google.adk", "a2a" ]
[tool.pytest.ini_options]
testpaths = [ "tests" ]
asyncio_default_fixture_loop_scope = "function"
asyncio_mode = "auto"
[tool.mypy]
python_version = "3.10"
exclude = [ "tests/", "contributing/samples/" ]
plugins = [ "pydantic.mypy" ]
strict = true
disable_error_code = [ "import-not-found", "import-untyped", "unused-ignore" ]
follow_imports = "skip"
[tool.pyink]
# Format py files following Google style-guide
line-length = 80
unstable = true
pyink-indentation = 2
pyink-use-majority-quotes = true
pyink-annotation-pragmas = [
"noqa",
"pylint:",
"type: ignore",
"pytype:",
"mypy:",
"pyright:",
"pyre-",
]