[tool.ruff] target-version = "py312" line-length = 100 src = ["apps/backend"] # Миграции пишет Django, а не человек: переносить в них строки и переставлять # импорты бессмысленно — файл всё равно перегенерируется как был. extend-exclude = ["**/migrations/*"] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "DJ"] # DJ001 — null=True на текстовых полях: в схеме это осознанно. # E501 — длину строки правит форматтер, а не линтер. `ruff format` в этом # репозитории не принят (он переписал бы 374 файла), и пока это отдельное # решение, гейтить длину строки в CI нечестно: правило было бы красным всегда # и его просто перестали бы читать. Всё остальное из E, F, I, UP, B и DJ # проверяется и обязано быть зелёным. ignore = ["DJ001", "E501"] # pytest config lives in apps/backend/pytest.ini so it is also picked up inside # the backend container (workdir /app/apps/backend, which does not mount this file). [tool.mypy] python_version = "3.12" plugins = ["mypy_django_plugin.main"] ignore_missing_imports = true [tool.django-stubs] django_settings_module = "chatballs_backend.settings"