-
Notifications
You must be signed in to change notification settings - Fork 4
configurar precommit
Oriol Piera edited this page Mar 3, 2025
·
1 revision
Hi ha 3 maneres de fer-lo servir:
- Automàticament al fer commit
- Manualment en una comanda (t'has d'enrecordar)
- Integrat en el VSCode (es formata al moment)
- Instal·lem
pre-commit
alvenv
deerp
:pip install pre-commit
- Activem el
pre-commit
dins el repositori:pre-commit install
Podem desactivar-lo sempre que vulguem: pre-commit uninstall
Al fer un commit ens formatarà automàticament el codi dels fitxers modificats amb autoflake
i autopep8
. També farà les comprovacions amb flake8
i algunes altres pels XML i fitxer YAML.
- Si algun formatador fa algun canvi o no passen totes les comprovacions el commit no es farà.
- Els fitxers modificats pel
pre-commit
queden unstaged. - Fa el mateix que farà el GitHub Actions (definit al fitxer
.pre-commit-config.yaml
).
- Anem a la carpeta del repositori
- Executem
pre-commit run -a
(tots els fitxers del repositori) opre-commit run --files
(fitxers especificats) - Si volem que executi pre-commit per tots els fitxers modificats en un repo local, podem executar
pre-commit run --files $(git diff --cached --name-only)
. Aquest mètode només arreglarà fitxers modificats. Si se n'han afegit, s'hauran d'afegir previament ambgit add
.
- Instal·lem l'extensió de Python
- Instal·lem
autopep8
(1.5.7) iflake8
(3.9.2) alvenv
deerp
- Activem el
venv
deerp
a VSCode (barra blava de baix a la dreta dins d'un fitxer Python) - A la configuració de VSCode
settings.json
definim el següent:
{
"[python]": {
"editor.defaultFormatter": "ms-python.python",
"editor.formatOnSave": true,
},
"python.formatting.provider": "autopep8",
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.flake8CategorySeverity.W": "Error",
"python.terminal.activateEnvInCurrentTerminal": true,
"python.terminal.activateEnvironment": true,
}
Al programar veurem els errors que ens marca flake8
i al guardar se'ns formata automàticament el codi amb autopep8
. Aquestes dues eines tindran en compte la configuració dels fitxers .flake8
i .pycodestyle
del repositori.