Skip to main content

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 in pyproject.toml:

Linting Rules

Import Sorting

This ensures imports are sorted correctly:

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

  1. Install Ruff plugin
  2. Configure as external tool:
    • Program: ruff
    • Arguments: check --fix $FilePath$
  3. 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!