[project]
name = "unwind"
requires-python = ">=3.12"

[tool.poetry]
name = "unwind"
version = "0"
description = ""
authors = ["ducklet <ducklet@noreply.code.dumpr.org>"]
license = "LOL"

[tool.poetry.dependencies]
python = "^3.12"
beautifulsoup4 = "^4.9.3"
html5lib = "^1.1"
starlette = "^0.37.2"
ulid-py = "^1.1.0"
uvicorn = "^0.30.1"
httpx = "^0.27.0"
sqlalchemy = {version = "^2.0", extras = ["aiosqlite"]}
alembic = "^1.13.1"

[tool.poetry.group.build.dependencies]
# When we run poetry export, typing-extensions is a transient dependency via
# sqlalchemy, but the hash won't be included in the requirements.txt.
# By making it a direct dependency we can fix this issue, otherwise this could
# be removed.
typing-extensions = "*"

[tool.poetry.group.dev]
optional = true

[tool.poetry.group.dev.dependencies]
pytest = "*"
pyright = "*"
pytest-asyncio = "*"
pytest-cov = "*"
ruff = "*"
honcho = "*"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.pyright]
pythonVersion = "3.12"

[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
]
