Saltearse al contenido

Herramientas de desarrollo

🧾 Table of Contents

En lugar de instalar dependencias desde el archivo de dependencias de producción, requirements.txt, utilizaremos un archivo para desarrollo que añada herramientas útiles a estas últimas:

-r requirements.txt # Incluye las dependencias de producción al ejecutar pip install -r requirements-dev.txt. OJO: requirements.txt debe existir aunque esté vacío, o el comando fallará.
# Herramientas de desarrollo
ruff # Linter, fomateador de código e import sorter
django-debug-toolbar~=4.3 # Para debugging

Ruff es un linter, formatter e import sorter para python. Para que funcione en VisualStudio Code, hay que tener instalada la extensión ruff de Astral Software.

En la raíz del proyecto, añadimos el siguiente pyproject.toml:

[tool.ruff]
line-length = 88
target-version = "py311"
exclude = [".venv", "build", "dist", "__pycache__"]
[tool.ruff.format]
quote-style = "double"

Con la configuración de VisualStudio Code discutida más adelante, al guardar (Ctrl + s) se aplica el import sorting y el formatting, además de que el linter funciona continuamente, pudiendo acceder con facilidad a los mensajes de error con la extensión de VisualStudio Code Console Ninja. De todos modos, para usar ruff manualmente:

Ventana de terminal
ruff check .
ruff format .
ruff check . --fix

Ajustar el middleware en settings.py sólo para desarrollo:

if DEBUG:
INSTALLED_APPS += ["debug_toolbar"]
MIDDLEWARE.insert(0,"debug_toolbar.middleware.DebugToolbarMiddleware")
INTERNAL_IPS = ["127.0.0.1","localhost",]

Python
Pylance
ruff # De Astral Software

Añadir esta configuración en .vscode/settings.json, con .vscode en la raíz del proyecto.

.vscode/settings.json
{
"editor.formatOnSave": true,
"[python]": {
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
},
"editor.defaultFormatter": "charliermarsh.ruff"
},
"ruff.nativeServer": "on"
}