/
KKleinikov
/
FastAPI-GigaChatAI
Обзор
Документация
Войти
/
KKleinikov
/
FastAPI-GigaChatAI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ruff.toml
155 строк
5 KB
Konstantin-Kleinikov
1.03 Fix after ruff checking
06 дек 2025, 13:48
06 дек 2025, 13:48
1628bb7
Код
Авторство
О чём код?
# Основные параметры line-length = 79 target-version = "py313" preview = true # Исключения — стандартные директории exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "site-packages", "venv", ] # Настройка линтера [lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "UP", # pyupgrade (обновление синтаксиса) "S", # flake8-bandit "B", # flake8-bugbear "C4", # flake8-comprehensions "SIM", # flake8-simplify "TCH", # type-checker "PTH", # Замена os.path на pathlib "RUF", # Ruff-specific "A", # flake8-builtins (проверка на shadow built-ins) "N", # pep8-naming "Q", # flake8-quotes "RET", # flake8-return "ARG", # flake8-unused-arguments "PL", # pylint "PERF", # perflint (оптимизация производительности) "FURB", # refurb (модернизация кода) "LOG", # flake8-logging "G", # flake8-logging-format "T20", # flake8-print (запрет print в проде) "PIE", # flake8-pie (разные улучшения) "COM", # flake8-commas "DTZ", # flake8-datetimez (timezone-aware datetime) "ISC", # flake8-implicit-str-concat "ICN", # flake8-import-conventions "INP", # flake8-no-pep420 (требование __init__.py) "FBT", # flake8-boolean-trap "RSE", # flake8-raise "TRY", # tryceratops (обработка исключений) "FLY", # flynt (f-strings) "NPY", # numpy-specific (если используете) "PD", # pandas-vet (если используете) "ASYNC", # flake8-async ] ignore = [ "E501", # Пусть форматтер разбивает строки "COM812", # Конфликт с форматтером "ISC001", # Конфликт с форматтером "S101", # Разрешить assert (если используете pytest) "TRY003", # Слишком строго для длинных сообщений исключений "PLR0913", # Слишком много аргументов (настройте по вкусу) "PLR2004", # Magic values (настройте по вкусу) "FBT001", # Boolean positional arg (если нужно) "FBT002", # Boolean default arg (если нужно) "RUF001", # Проверка смешение кириллических символов в ... "RUF002", # Проверка смешение кириллической с и латинской c (для докстрингов) "RUF003", # Проверка смешение кириллической с и латинской c (для комментариев и строк) ] # Разрешить неиспользуемые переменные, если начинаются с _ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" # Настройка форматтера [format] indent-style = "space" quote-style = "single" skip-magic-trailing-comma = false line-ending = "auto" docstring-code-format = true docstring-code-line-length = 79 # Упорядочивание импортов [lint.isort] case-sensitive = true lines-between-types = 1 known-first-party = ["app"] combine-as-imports = true # Безопасность [lint.flake8-bugbear] extend-immutable-calls = ["typing.NamedTuple", "typing.TypedDict", "fastapi.Depends"] # Проверка на использование встроенных имён [lint.flake8-builtins] builtins-ignorelist = [] # Pylint настройки [lint.pylint] max-args = 5 max-branches = 12 max-returns = 6 max-statements = 50 # Flake8-quotes (согласованность с форматтером) [lint.flake8-quotes] inline-quotes = "single" multiline-quotes = "single" docstring-quotes = "double" # Настройка для pytest [lint.flake8-pytest-style] fixture-parentheses = false mark-parentheses = false # McCabe complexity [lint.mccabe] max-complexity = 10 # Настройка для конкретных файлов [lint.per-file-ignores] "__init__.py" = ["F401", "F403"] # Неиспользуемые импорты в __init__ "tests/**/*.py" = ["S101", "ARG", "PLR2004"] # assert, unused args, magic values в тестах "scripts/**/*.py" = ["T20"] # print в скриптах # Настройка boolean trap [lint.flake8-boolean-trap] extend-allowed-calls = [] # Настройка unused arguments [lint.flake8-unused-arguments] ignore-variadic-names = true # pyupgrade — обновление синтаксиса (на основе target-version) [lint.pyupgrade] # Больше не нужно указывать py39-plus и т.д. # target-version из корня — достаточно