target-version = "py314"
line-length = 100

[lint]
select = [
    "E", "W",   # pycodestyle
    "F",        # pyflakes
    "I",        # isort
    "UP",       # pyupgrade
    "B",        # flake8-bugbear
    "C4",       # comprehensions
    "ASYNC",    # async correctness
]
ignore = [
    "E501",     # line length, handled by formatter
]

[lint.per-file-ignores]
"alembic/versions/*.py" = ["E", "F", "I", "UP"]
"tests/*" = ["F401"]

[lint.isort]
# Tell ruff that `backend` is our first-party module so imports get
# grouped correctly: stdlib, third-party, first-party, then local relative.
known-first-party = ["backend"]

[format]
quote-style = "double"
