Oltre agli strumenti che consentono di formattare il codice in Python esistono diversi linter e analizzatori statici di codice.
Uno dei più popolari Linter su Python è Flake8
.
Flake8 non cambia il codice in un progetto, ma fornisce uno strumento di warnings in real time
Flake8 combina tre progetti differenti
Un altro vantaggio di Flake8 che lo ha reso così popolare è il massivo catalogo di plugins ed estensioni che si possono installare ed usare per estendere le funzionalità base della libreria.
Per un elenco completo delle estensioni: https://github.com/DmytroLitvinov/awesome-flake8-extensions
Alcune estensioni utili:
except:
instead of except Exception:
++n
.strip()
on a multiline stringInstallare Flake 8
pip install flake8
#anche qui è meglio utilizzare pipx
pipx install flake8
#Installare estensioni
pip install flake8-docstrings flake8-isort
#Ancora meglio sempre con pipx
pipx inject flake8 flake8-docstrings flake8-isort flake8-bandit
# Se esce un errore di path fare
pipx ensurepath
# Riavviare il terminale
Lanciare Flake8
flake8 my_project #my_project = cartella di progetto
Per usare al meglio Flake8 il consiglio è sempre quello di integrarlo all’interno di Visual Studio Code lanciando il comando: Python: Select Linter
Per progetti grandi e per configurare al meglio Flake8 con tutti i suoi plugin è possibile utilizzare anche l’ottima libreria: FlakeHell
che è un wrapper che consente di definire un pyproject.toml
file (lo stesso di Poetry) e di personalizzare le impostazioni al suo interno.
Attenzione: la libreria di FlakeHell non è piu aggiornata dal 2019 (è archiviata su github) tuttavia è stabile e perfettamente utilizzabile
Ci sono tantissimi altri strumenti che consentono di controllare il codice e di segnalare eventuali errori man mano che lo state scrivendo.
Tuttavia vi consiglio di utilizzare Flake8 e Blake nei vostri progetti e di inserire anche Bandit