[project]
name = "laketower"
description = "Oversee your lakehouse"
readme = "README.md"
license = { text = "Apache-2.0" }
authors = [
    { name = "Romain Clement", email = "git@romain-clement.net" }
]
requires-python = ">=3.10,<3.15"
dependencies = [
    "bleach",
    "deltalake>=1,<2",
    "duckdb",
    "fastapi",
    "jinja2>=3,!=3.1.5",
    "markdown",
    "pyarrow!=19.0.0",
    "pydantic>=2",
    "pydantic-settings>=2",
    "python-multipart",
    "pyyaml",
    "rich",
    "sqlglot",
    "tzdata",
    "uvicorn",
]
keywords = ["data", "lakehouse", "sql", "delta-lake", "duckdb", "pyarrow"]
classifiers = [
    "Development Status :: 2 - Pre-Alpha",
    "Environment :: Console",
    "Environment :: Web Environment",
    "Framework :: FastAPI",
    "Framework :: Pydantic",
    "Intended Audience :: Developers",
    "Intended Audience :: End Users/Desktop",
    "Intended Audience :: Information Technology",
    "Intended Audience :: Other Audience",
    "Operating System :: OS Independent",
    "Programming Language :: JavaScript",
    "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",
    "Programming Language :: SQL",
    "Topic :: Database",
    "Topic :: Database :: Front-Ends",
    "Topic :: Software Development",
    "Topic :: Utilities",
    "Typing :: Typed",
]
dynamic = ["version"]

[project.urls]
Repository = "https://github.com/datalpia/laketower"
Issues = "https://github.com/datalpia/laketower/issues"
Changelog = "https://github.com/datalpia/laketower/blob/main/CHANGELOG.md"

[project.scripts]
laketower = "laketower.__main__:cli"

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

[dependency-groups]
dev = [
    "bandit==1.9.2",
    "beautifulsoup4==4.14.3",
    "httpx==0.28.1",
    "invoke==2.2.1",
    "mypy==1.19.0",
    "pandas==2.3.3",
    "pandas-stubs==2.3.3.251201",
    "pip-audit==2.10.0",
    "pyarrow-stubs==20.0.0.20251209",
    "pytest==9.0.2",
    "pytest-cov==7.0.0",
    "ruff==0.14.8",
    "types-bleach==6.3.0.20251115",
    "types-markdown==3.10.0.20251106",
    "types-pyyaml==6.0.12.20250915",
    "watchdog==6.0.0",
]

[tool.hatch.version]
path = "laketower/__about__.py"
