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

[project]
name = "arcade_postgres"
version = "0.3.1"
description = "Tools to query and explore a postgres database"
requires-python = ">=3.10"
dependencies = [
    "arcade-tdk>=3.0.0,<4.0.0",
    "psycopg2-binary>=2.9.10",
    "pydantic>=2.11.7",
    "sqlalchemy>=2.0.41",
    "psycopg2-binary>=2.9.10",
    "asyncpg>=0.30.0",
    "greenlet>=3.2.3",
]
[[project.authors]]
name = "evantahler"
email = "support@arcade.dev"


[project.optional-dependencies]
dev = [
    "arcade-mcp[all]>=1.2.0,<2.0.0",
    "arcade-serve>=3.0.0,<4.0.0",
    "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",
]

# 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 }


[tool.mypy]
files = [ "arcade_postgres/**/*.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",]
asyncio_default_fixture_loop_scope = "function"

[tool.coverage.report]
skip_empty = true

[tool.hatch.build.targets.wheel]
packages = [ "arcade_postgres",]
