[build-system]
requires = [ "hatchling",]
build-backend = "hatchling.build"

[project]
name = "{{ package_name }}"
version = "0.1.0"
{% if toolkit_description -%}
description = "{{ toolkit_description }}"
{% endif -%}
requires-python = ">=3.10"
dependencies = [
    "arcade-tdk>={{ arcade_tdk_min_version }},<{{ arcade_tdk_max_version}}",
]
{% if toolkit_author_name or toolkit_author_email -%}
[[project.authors]]
{% if toolkit_author_name -%}
name = "{{ toolkit_author_name }}"
{% endif -%}
{% if toolkit_author_email -%}
email = "{{ toolkit_author_email }}"
{% endif -%}
{% endif %}

[project.optional-dependencies]
dev = [
    "arcade-mcp[evals]>={{ arcade_mcp_min_version }},<{{ arcade_mcp_max_version }}",
    "arcade-serve>={{ arcade_serve_min_version }},<{{ arcade_serve_max_version }}",
    "pytest>=8.3.0,<8.4.0",
    "pytest-cov>=4.0.0,<4.1.0",
    "pytest-mock>=3.11.1,<3.12.0",
    "pytest-asyncio>=0.24.0,<0.25.0",
    "mypy>=1.5.1,<1.6.0",
    "pre-commit>=3.4.0,<3.5.0",
    "tox>=4.11.1,<4.12.0",
    "ruff>=0.7.4,<0.8.0",
]

# Tell Arcade.dev that this package is a toolkit
[project.entry-points.arcade_toolkits]
toolkit_name = "{{ package_name }}"

{% if is_community_toolkit -%}
# Use local path sources for arcade libs when working locally
[tool.uv.sources]
arcade-mcp = { path = "../../", editable = true }
arcade-serve = { path = "../../libs/arcade-serve/", editable = true }
arcade-tdk = { path = "../../libs/arcade-tdk/", editable = true }
{% endif -%}
{% if is_official_toolkit -%}
# Use local path sources for arcade libs when working locally
[tool.uv.sources]
arcade-mcp = { path = "../../../arcade-mcp", editable = true }
arcade-serve = { path = "../../../arcade-mcp/libs/arcade-serve/", editable = true }
arcade-tdk = { path = "../../../arcade-mcp/libs/arcade-tdk/", editable = true }
{% endif -%}

[tool.mypy]
files = [ "{{ package_name }}/**/*.py",]
python_version = "3.10"
disallow_untyped_defs = "True"
disallow_any_unimported = "True"
no_implicit_optional = "True"
check_untyped_defs = "True"
warn_return_any = "True"
warn_unused_ignores = "True"
show_error_codes = "True"
ignore_missing_imports = "True"

[tool.pytest.ini_options]
testpaths = [ "tests",]

[tool.coverage.report]
skip_empty = true

[tool.hatch.build.targets.wheel]
packages = [ "{{ package_name }}",]
