exclude = ["alembic/versions"]
namespace-packages = ["alembic", "metadata_relay"]

[format]
line-ending = "lf"
quote-style = "double"

[lint]
# to be enabled: BLE, C90, CPY, D, DOC, DTZ, FBT, G, PL, RSE, SLF, SIM, TC
extend-select = [
    "A", "ARG", "ASYNC", "ANN",
    "B",
    "C4", "COM",
    "DTZ",
    "E", "EM", "EXE",
    "F", "FA", "FAST", "FIX", "FLY", "FURB",
    "I", "ICN", "INP", "INT", "ISC",
    "LOG",
    "N",
    "PERF", "PGH", "PIE", "PT", "PTH", "PYI",
    "Q",
    "RET", "RUF",
    "S", "SLOT",
    "T10", "T20", "TD", "TID", "TRY",
    "UP",
    "W",
    "YTT"
]

ignore = [
    # incompatible with formatter
    "COM812",
    # lines too long
    "E501",
    # currently a bug?! with providers and depends
    "FAST003",
    # I'm not sure if we want to lint them
    "FIX002",
    # let's decide if we want this
    "TD002", "TD003",
]

[lint.flake8-bugbear]
extend-immutable-calls = ["fastapi.Depends", "fastapi.Path"]
