Overview
FKApi uses Ruff for linting and formatting Python code. Ruff is a fast Python linter and formatter that combines the functionality of multiple tools (Flake8, isort, Black, etc.) into one.Quick Reference
Ruff Configuration
Basic Settings
Configuration is defined inpyproject.toml:
Linting Rules
Import Sorting
Formatting Rules
Code Style Guidelines
Line Length
- Maximum: 120 characters
- Recommended: 80-100 characters for readability -Formatter will handle line breaking automatically
Naming Conventions
Type Hints
Use type hints for function parameters and return values:Docstrings
Use clear, concise docstrings:Import Organization
String Formatting
Prefer f-strings for string formatting:Error Handling
Django-Specific Guidelines
Type Checking (Optional)
Mypy Configuration
Running Mypy
Pre-commit Hooks
Configuration
Pre-commit hooks are defined in.pre-commit-config.yaml:
Installation
Code Review Checklist
Before submitting code:- Code passes
ruff check . - Code is formatted with
ruff format . - No debug statements (
print(),breakpoint()) - Type hints added for function signatures
- Docstrings added for public functions
- Import statements organized correctly
- No unused imports or variables
- Tests pass (
pytest) - Coverage maintained or improved
- Django migrations created if models changed
IDE Integration
VS Code
PyCharm
- Install Ruff plugin
- Configure as external tool:
- Program:
ruff - Arguments:
check --fix $FilePath$
- Program:
- Configure file watcher for auto-formatting
Common Issues
Line Too Long
Unused Imports
Import Sorting
Ruff will automatically sort imports. Run:Additional Resources
Consistent code style makes collaboration easier!