mirror of
https://github.com/encounter/adk-python.git
synced 2026-07-09 18:19:28 -07:00
Merge https://github.com/google/adk-python/pull/4171 **Problem:** The BigQuery ADK tools currently lack the ability to search for and discover BigQuery assets using the Dataplex Catalog. Users cannot leverage Dataplex's search capabilities within the ADK to find relevant data assets before querying them. **Solution:** This PR integrates a new search_catalog_tool into the BigQuery ADK. This tool utilizes the dataplex catalog client library to interact with the Dataplex API, allowing users to search the catalog. **Unit Tests:** - [x] I have added or updated unit tests for my change. - [x] All unit tests pass locally. Added the screenshots of the manual adk web UI tests - https://docs.google.com/document/d/1c_lMW7NYGKuLAvPFmSkLehbqySeNyXQIhzQlvo3ixmQ/edit?usp=sharing ### Checklist - [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document. - [x] I have performed a self-review of my own code. - [x] I have commented my code, particularly in hard-to-understand areas. - [x] I have added tests that prove my fix is effective or that my feature works. - [x] New and existing unit tests pass locally with my changes. - [x] I have manually tested my changes end-to-end. - [x] Any dependent changes have been merged and published in downstream modules. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/4171 from sahaajaaa:sahaajaaa-bq-adk 3dbbaa4f909cb25259e8e7d73a00a58fbe9c2f09 PiperOrigin-RevId: 872951141
226 lines
8.8 KiB
TOML
226 lines
8.8 KiB
TOML
[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"
|
|
requires-python = ">=3.10"
|
|
license = { file = "LICENSE" }
|
|
authors = [{ name = "Google LLC", email = "googleapis-packages@google.com" }]
|
|
classifiers = [ # List of https://pypi.org/classifiers/
|
|
"Typing :: Typed",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3.14",
|
|
"Operating System :: OS Independent",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
]
|
|
dependencies = [
|
|
# go/keep-sorted start
|
|
"PyYAML>=6.0.2, <7.0.0", # For APIHubToolset.
|
|
"aiosqlite>=0.21.0", # For SQLite database
|
|
"anyio>=4.9.0, <5.0.0", # For MCP Session Manager
|
|
"authlib>=1.6.6, <2.0.0", # For RestAPI Tool
|
|
"click>=8.1.8, <9.0.0", # For CLI tools
|
|
"fastapi>=0.124.1, <1.0.0", # FastAPI framework
|
|
"google-api-python-client>=2.157.0, <3.0.0", # Google API client discovery
|
|
"google-auth[pyopenssl]>=2.47.0", # Google Auth library
|
|
"google-cloud-aiplatform[agent_engines]>=1.132.0, <2.0.0", # For VertexAI integrations, e.g. example store.
|
|
"google-cloud-bigquery-storage>=2.0.0",
|
|
"google-cloud-bigquery>=2.2.0",
|
|
"google-cloud-bigtable>=2.32.0", # For Bigtable database
|
|
"google-cloud-dataplex>=1.7.0,<3.0.0", # For Dataplex Catalog Search tool
|
|
"google-cloud-discoveryengine>=0.13.12, <0.14.0", # For Discovery Engine Search Tool
|
|
"google-cloud-pubsub>=2.0.0, <3.0.0", # For Pub/Sub Tool
|
|
"google-cloud-secret-manager>=2.22.0, <3.0.0", # Fetching secrets in RestAPI Tool
|
|
"google-cloud-spanner>=3.56.0, <4.0.0", # For Spanner database
|
|
"google-cloud-speech>=2.30.0, <3.0.0", # For Audio Transcription
|
|
"google-cloud-storage>=2.18.0, <4.0.0", # For GCS Artifact service
|
|
"google-genai>=1.56.0, <2.0.0", # Google GenAI SDK
|
|
"graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering
|
|
"httpx>=0.27.0, <1.0.0", # HTTP client library
|
|
"jsonschema>=4.23.0, <5.0.0", # Agent Builder config validation
|
|
"mcp>=1.23.0, <2.0.0", # For MCP Toolset
|
|
"opentelemetry-api>=1.36.0, <1.40.0", # OpenTelemetry - keep below 1.40.0 to reduce risk of breaking changes around log-signal APIs.
|
|
"opentelemetry-exporter-gcp-logging>=1.9.0a0, <2.0.0",
|
|
"opentelemetry-exporter-gcp-monitoring>=1.9.0a0, <2.0.0",
|
|
"opentelemetry-exporter-gcp-trace>=1.9.0, <2.0.0",
|
|
"opentelemetry-exporter-otlp-proto-http>=1.36.0",
|
|
"opentelemetry-resourcedetector-gcp>=1.9.0a0, <2.0.0",
|
|
"opentelemetry-sdk>=1.36.0, <1.40.0",
|
|
"pyarrow>=14.0.0",
|
|
"pydantic>=2.7.0, <3.0.0", # For data validation/models
|
|
"python-dateutil>=2.9.0.post0, <3.0.0", # For Vertext AI Session Service
|
|
"python-dotenv>=1.0.0, <2.0.0", # To manage environment variables
|
|
"requests>=2.32.4, <3.0.0",
|
|
"sqlalchemy-spanner>=1.14.0", # Spanner database session service
|
|
"sqlalchemy>=2.0, <3.0.0", # SQL database ORM
|
|
"starlette>=0.49.1, <1.0.0", # For FastAPI CLI
|
|
"tenacity>=9.0.0, <10.0.0", # For Retry management
|
|
"typing-extensions>=4.5, <5",
|
|
"tzlocal>=5.3, <6.0", # Time zone utilities
|
|
"uvicorn>=0.34.0, <1.0.0", # ASGI server for FastAPI
|
|
"watchdog>=6.0.0, <7.0.0", # For file change detection and hot reload
|
|
"websockets>=15.0.1, <16.0.0", # For BaseLlmFlow
|
|
# go/keep-sorted end
|
|
]
|
|
dynamic = ["version"]
|
|
|
|
[project.urls]
|
|
homepage = "https://google.github.io/adk-docs/"
|
|
repository = "https://github.com/google/adk-python"
|
|
changelog = "https://github.com/google/adk-python/blob/main/CHANGELOG.md"
|
|
documentation = "https://google.github.io/adk-docs/"
|
|
|
|
[project.scripts]
|
|
adk = "google.adk.cli:main"
|
|
|
|
[project.optional-dependencies]
|
|
|
|
dev = [
|
|
# go/keep-sorted start
|
|
"flit>=3.10.0",
|
|
"isort>=6.0.0",
|
|
"mypy>=1.15.0",
|
|
"pyink>=25.12.0",
|
|
"pylint>=2.6.0",
|
|
# go/keep-sorted end
|
|
]
|
|
|
|
a2a = [
|
|
# go/keep-sorted start
|
|
"a2a-sdk>=0.3.4,<0.4.0",
|
|
# go/keep-sorted end
|
|
]
|
|
|
|
community = [
|
|
# go/keep-sorted start
|
|
"google-adk-community",
|
|
# go/keep-sorted end
|
|
]
|
|
|
|
eval = [
|
|
# go/keep-sorted start
|
|
"Jinja2>=3.1.4,<4.0.0", # For eval template rendering
|
|
"google-cloud-aiplatform[evaluation]>=1.100.0",
|
|
"pandas>=2.2.3",
|
|
"rouge-score>=0.1.2",
|
|
"tabulate>=0.9.0",
|
|
# go/keep-sorted end
|
|
]
|
|
|
|
test = [
|
|
# go/keep-sorted start
|
|
"a2a-sdk>=0.3.0,<0.4.0",
|
|
"anthropic>=0.43.0", # For anthropic model tests
|
|
"crewai[tools];python_version>='3.11' and python_version<'3.12'", # For CrewaiTool tests; chromadb/pypika fail on 3.12+
|
|
"kubernetes>=29.0.0", # For GkeCodeExecutor
|
|
"langchain-community>=0.3.17",
|
|
"langgraph>=0.2.60, <0.4.8", # For LangGraphAgent
|
|
"litellm>=1.75.5, <1.80.17", # For LiteLLM tests
|
|
"llama-index-readers-file>=0.4.0", # For retrieval tests
|
|
"openai>=1.100.2", # For LiteLLM
|
|
"opentelemetry-instrumentation-google-genai>=0.3b0, <1.0.0",
|
|
"pypika>=0.50.0", # For crewai->chromadb dependency
|
|
"pytest-asyncio>=0.25.0",
|
|
"pytest-mock>=3.14.0",
|
|
"pytest-xdist>=3.6.1",
|
|
"pytest>=9.0.0,<10.0.0",
|
|
"python-multipart>=0.0.9",
|
|
"rouge-score>=0.1.2",
|
|
"tabulate>=0.9.0",
|
|
# go/keep-sorted end
|
|
]
|
|
|
|
docs = [
|
|
"autodoc_pydantic",
|
|
"furo",
|
|
"myst-parser",
|
|
"sphinx<9.0.0",
|
|
"sphinx-autodoc-typehints",
|
|
"sphinx-rtd-theme",
|
|
]
|
|
|
|
# Optional extensions
|
|
extensions = [
|
|
"anthropic>=0.43.0", # 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.0.0", # For ContainerCodeExecutor
|
|
"kubernetes>=29.0.0", # For GkeCodeExecutor
|
|
"langgraph>=0.2.60, <0.4.8", # For LangGraphAgent
|
|
"litellm>=1.75.5, <1.80.17", # For LiteLlm class. Currently has OpenAI limitations. TODO: once LiteLlm fix it
|
|
"llama-index-readers-file>=0.4.0", # For retrieval using LlamaIndex.
|
|
"llama-index-embeddings-google-genai>=0.3.0", # For files retrieval using LlamaIndex.
|
|
"lxml>=5.3.0", # For load_web_page tool.
|
|
"pypika>=0.50.0", # For crewai->chromadb dependency
|
|
"toolbox-adk>=0.5.7, <0.6.0", # For tools.toolbox_toolset.ToolboxToolset
|
|
]
|
|
|
|
otel-gcp = ["opentelemetry-instrumentation-google-genai>=0.6b0, <1.0.0"]
|
|
|
|
toolbox = ["toolbox-adk>=0.5.7, <0.6.0"]
|
|
|
|
[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-",
|
|
]
|
|
|
|
|
|
[build-system]
|
|
# 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"]
|
|
build-backend = "flit_core.buildapi"
|
|
|
|
|
|
[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"]
|
|
|
|
|
|
[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"
|