-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Expand file tree
/
Copy pathpyproject.toml
More file actions
128 lines (109 loc) · 3.4 KB
/
pyproject.toml
File metadata and controls
128 lines (109 loc) · 3.4 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
[project]
name = "{{cookiecutter.project_name}}"
version = "0.1.0"
description = ""
authors = [
{name = "Your Name", email = "your@email.com"},
]
dependencies = [
{%- for dep in cookiecutter.extra_dependencies %}
"{{ dep }}",
{%- endfor %}
"opentelemetry-instrumentation-google-genai>=0.1.0,<1.0.0",
"gcsfs>=2024.11.0",
{%- if not cookiecutter.is_adk %}
"opentelemetry-exporter-otlp-proto-http>=1.29.0,<2.0.0",
{%- endif %}
"google-cloud-logging>=3.12.0,<4.0.0",
{%- if cookiecutter.deployment_target == 'cloud_run' %}
"google-cloud-aiplatform[evaluation]==1.130.0",
"fastapi~=0.115.8",
"uvicorn~=0.34.0",
"asyncpg>=0.30.0,<1.0.0",
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
"google-cloud-aiplatform[evaluation,agent-engines]==1.130.0",
"protobuf>=6.31.1,<7.0.0",
{%- endif %}
]
requires-python = ">=3.10,<3.14"
[dependency-groups]
dev = [
"pytest>=8.3.4,<9.0.0",
"pytest-asyncio>=0.23.8,<1.0.0",
"nest-asyncio>=1.6.0,<2.0.0",
]
[project.optional-dependencies]
jupyter = [
"jupyter>=1.0.0,<2.0.0",
]
lint = [
"ruff>=0.4.6,<1.0.0",
"ty>=0.0.1a0",
"codespell>=2.2.0,<3.0.0",
]
[tool.ruff]
line-length = 88
target-version = "py310"
[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", "B006"] # ignore line too long, too complex
[tool.ruff.lint.isort]
known-first-party = ["{{cookiecutter.agent_directory}}", "frontend"]
[tool.ty]
# ty is Astral's Rust-based type checker (same team as ruff/uv)
# See: https://docs.astral.sh/ty/
[tool.ty.environment]
python-version = "3.10"
[tool.ty.src]
{% if cookiecutter.is_adk_live -%}
exclude = [".venv/**", "frontend/**"]
{%- else -%}
exclude = [".venv/**"]
{%- endif %}
[tool.ty.rules]
# Ignore common issues with third-party libraries and dynamic code patterns
unresolved-import = "ignore"
unresolved-attribute = "ignore"
invalid-argument-type = "ignore"
invalid-assignment = "ignore"
invalid-return-type = "ignore"
possibly-missing-attribute = "ignore"
not-subscriptable = "ignore"
deprecated = "ignore"
[tool.codespell]
ignore-words-list = "rouge"
skip = "./locust_env/*,uv.lock,.venv,./frontend,**/*.ipynb"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.pytest.ini_options]
pythonpath = "."
asyncio_default_fixture_loop_scope = "function"
[tool.hatch.build.targets.wheel]
packages = ["{{cookiecutter.agent_directory}}","frontend"]
[tool.agent-starter-pack]
# Generation metadata - enables CLI commands to understand project context
# These fields allow any generated project to work as a remote template
name = "{{cookiecutter.project_name}}"
description = "{{cookiecutter.agent_description}}"
base_template = "{{cookiecutter.agent_name}}"
agent_directory = "{{cookiecutter.agent_directory}}"
# Generation context
generated_at = "{{cookiecutter.generated_at}}"
asp_version = "{{cookiecutter.package_version}}"
[tool.agent-starter-pack.create_params]
# Parameters used during project creation
deployment_target = "{{cookiecutter.deployment_target}}"
session_type = "{{cookiecutter.session_type or 'none'}}"
cicd_runner = "{{cookiecutter.cicd_runner}}"
include_data_ingestion = {{ cookiecutter.data_ingestion | lower }}
datastore = "{{cookiecutter.datastore_type or 'none'}}"