[project]
name = "unwind"
version = "0"
description = ""
authors = [{ name = "ducklet", email = "ducklet@noreply.code.dumpr.org" }]
requires-python = ">=3.13"
license = "blessing"
dependencies = [
    "beautifulsoup4>=4.9.3,<5",
    "html5lib~=1.1",
    "starlette>=0.46.2",
    "ulid-py>=1.1.0,<2",
    "uvicorn>=0.34.2",
    "httpx>=0.28.1",
    "sqlalchemy[aiosqlite]~=2.0",
    "alembic>=1.13.1,<2",
]

[dependency-groups]
dev = [
    "pytest",
    "pyright",
    "pytest-asyncio",
    "pytest-cov",
    "ruff",
    "honcho",
]

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

[tool.pyright]
pythonVersion = "3.13"

[tool.ruff.lint]
select = [
    # See https://docs.astral.sh/ruff/rules/ for a list of all rules.
    "B", # flake8-bugbear
    "C4", # flake8-comprehensions
    "DTZ", # flake8-datetimez
    "E", # pycodestyle Error
    "F", # Pyflakes unused-import
    "I", # isort
    "RUF", # Ruff-specific rules
    "S", # flake8-bandit
    "T20", # flake8-print
    "W", # pycodestyle Warning
]
ignore = [
    "B008", # flake8-bugbear function-call-in-default-argument
    "E501", # pycodestyle line-too-long
    "S101", # flake8-bandit assert
]
