pyproject.toml (115 lines of code) (raw):

[project] name = "agent-starter-pack" version = "0.3.9" description = "CLI tool to create GCP-based AI agent projects from templates" authors = [ { name = "Google LLC", email = "agent-starter-pack@google.com" }, ] license = {text = "Apache-2.0"} readme = "README.md" requires-python = ">=3.10" dependencies = [ "click~=8.1.7", "cookiecutter~=2.5.0", "google-cloud-aiplatform~=1.87.0", "rich~=13.7.0", "pyyaml~=6.0.1", "backoff>=2.2.1", ] [dependency-groups] dev = [ "black~=23.11.0", "crewai~=0.95.0", "flake8~=6.1.0", "google-cloud-logging~=3.11.4", "grpcio~=1.70.0", "isort~=5.12.0", "langchain-core~=0.3.34", "langchain-google-community[vertexaisearch]~=2.0.4", "langchain-google-vertexai~=2.0.13", "langgraph~=0.2.72", "myst-parser~=2.0.0", "opentelemetry-instrumentation-langchain~=0.38.5", "pytest~=7.4.3", "pytest-cov~=4.1.0", "pytest-mock~=3.12.0", "pytest-rerunfailures>=15.0", "pytest-xdist~=3.6.1", "rich~=13.7.0", "sphinx~=7.1.2", "sphinx-autoapi~=3.0.0", "sphinx-click~=5.1.0", "sphinx-rtd-theme~=2.0.0", "streamlit~=1.42.0", "streamlit-feedback~=0.1.4", "watchdog~=6.0.0", ] [project.optional-dependencies] jupyter = [ "ipykernel>=6.29.5", "jupyter" ] lint = [ "ruff>=0.4.6", "mypy~=1.15.0", "codespell~=2.2.0", "types-pyyaml~=6.0.12.20240917", "types-requests~=2.32.0.20240914", ] [tool.pytest.ini_options] pythonpath = [".", "src/frontends/streamlit", "src", "agents/agentic_rag"] testpaths = ["tests"] addopts = "-s -v --ignore=tests/integration/test_template_linting.py --ignore=tests/integration/test_templated_patterns.py" log_cli = true log_cli_level = "INFO" log_cli_format = "%(asctime)s - %(levelname)s - %(message)s" log_cli_date_format = "%Y-%m-%d %H:%M:%S" [tool.ruff] line-length = 88 target-version = "py310" include = ["./agents/**/*.py", "src/cli/**/*.py", "tests/**/*.py", "src/frontends/streamlit/**/*.py", "src/frontends/streamlit_adk/**/*.py"] exclude = ["./agents/agentic_rag/**/*.py"] [tool.ruff.lint] select = [ "E", # pycodestyle "F", # pyflakes "W", # pycodestyle warnings "I", # isort "C", # flake8-comprehensions "B", # flake8-bugbear "UP", # pyupgrade "RUF", # ruff specific rules ] ignore = ["E501", "C901", "RUF001"] [tool.ruff.lint.isort] known-first-party = ["app", "frontend"] [tool.mypy] disallow_untyped_calls = true disallow_untyped_defs = true disallow_incomplete_defs = true no_implicit_optional = true check_untyped_defs = true disallow_subclassing_any = true warn_incomplete_stub = true warn_redundant_casts = true warn_unused_ignores = true warn_unreachable = true follow_imports = "silent" ignore_missing_imports = true explicit_package_bases = true disable_error_code = ["misc", "no-untyped-call", "no-any-return"] exclude = '''(?x)( ^agents/agentic_rag/.*$ # exclude all files under agentic_rag directory )''' [tool.codespell] ignore-words-list = "rouge" skip = "./locust_env/*,uv.lock,.venv,**/*.ipynb" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project.scripts] agent-starter-pack = "src.cli.main:cli" [tool.hatch.build.targets.wheel] packages = ["src", "agents"] [tool.uv.workspace] members = ["temp"]