
- Set up project structure with FastAPI and SQLite - Implement user authentication with JWT - Create models for learning content (subjects, lessons, quizzes) - Add progress tracking and gamification features - Implement comprehensive API documentation - Add error handling and validation - Set up proper logging and health check endpoint
45 lines
1.2 KiB
TOML
45 lines
1.2 KiB
TOML
[tool.ruff]
|
|
# Enable all rules by default
|
|
lint.select = ["E", "F", "B", "I", "N", "UP", "ANN", "S", "BLE", "C4", "DTZ", "FA", "ISC", "ICN", "G", "INP", "PIE", "T20", "PYI", "PT", "Q", "RSE", "RET", "SLF", "SLOT", "SIM", "TID", "TCH", "ARG", "PTH", "TD", "FIX", "ERA", "PD", "PGH", "PL", "TRY", "FLY", "NPY", "AIR", "PERF", "FURB", "LOG", "RUF"]
|
|
|
|
# Exclude some directories
|
|
exclude = [
|
|
".git",
|
|
".venv",
|
|
"venv",
|
|
"__pycache__",
|
|
"alembic",
|
|
"migrations",
|
|
]
|
|
|
|
# Ignore specific rules
|
|
lint.ignore = [
|
|
"ANN101", # Missing type annotation for self
|
|
"ANN102", # Missing type annotation for cls
|
|
"E501", # Line too long
|
|
"PT", # Pytest-related rules, ignore if not using pytest
|
|
"INP001", # Implicit namespace package
|
|
"FA", # Flake8 annotations
|
|
"TD", # Todo related
|
|
"FIX", # Fixme related
|
|
]
|
|
|
|
# Line length
|
|
line-length = 100
|
|
|
|
# Target Python version
|
|
target-version = "py39"
|
|
|
|
# Organize imports
|
|
lint.isort.required-imports = ["from __future__ import annotations"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = ["F401"] # Ignore unused imports in __init__.py files
|
|
|
|
[tool.ruff.lint.mccabe]
|
|
max-complexity = 10
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
line-ending = "auto" |