Spaces:
Running
Running
| # Ruff configuration file | |
| # Fast, Python linter and formatter written in Rust | |
| # Line length (Black-compatible default) | |
| line-length = 88 | |
| # Target Python version | |
| target-version = "py310" | |
| # Exclude patterns | |
| exclude = [ | |
| "__pycache__", | |
| "*.pyc", | |
| ".git", | |
| ".venv", | |
| "venv", | |
| "htmlcov", | |
| ".pytest_cache", | |
| "dist", | |
| "build", | |
| ] | |
| # Linter configuration | |
| [lint] | |
| # Enable rule sets | |
| select = [ | |
| "E", # pycodestyle errors | |
| "W", # pycodestyle warnings | |
| "F", # pyflakes | |
| "I", # isort (import sorting) | |
| "UP", # pyupgrade | |
| "B", # flake8-bugbear | |
| "C4", # flake8-comprehensions | |
| "SIM", # flake8-simplify | |
| ] | |
| # Ignore specific rules | |
| ignore = [ | |
| "E501", # Line too long (handled by formatter) | |
| "B008", # Do not perform function calls in argument defaults (common in FastAPI) | |
| "C901", # Too complex (may be too strict for this project) | |
| "B904", # Allow raising exceptions without 'from' in error handlers (FastAPI pattern) | |
| ] | |
| # Per-file ignores | |
| [lint.per-file-ignores] | |
| "tests/*" = ["S101"] # Use of assert in tests is fine | |
| "app/services/structured_summarizer.py" = ["E402", "E722"] # Intentional imports after patch, bare except for JSON parsing | |
| "app/services/summarizer.py" = ["SIM117"] # Nested async with necessary (client.stream depends on client context) | |
| # Import sorting configuration (isort-compatible) | |
| [lint.isort] | |
| known-first-party = ["app"] | |
| # Format configuration | |
| [format] | |
| quote-style = "double" | |
| indent-style = "space" | |
| skip-magic-trailing-comma = false | |
| line-ending = "auto" | |