Oferiți-vă bazei de cod o curățare de primăvară cu acest instrument de linie de comandă ușor de utilizat.
Un instrument de listing este o resursă valoroasă care vă poate ajuta să identificați erorile și inconsecvențele din codul dvs.
Flake8 este unul dintre cele mai populare instrumente de scame pentru Python. Identifică erorile de sintaxă și de formatare din codul dvs., împreună cu alte probleme, cum ar fi importurile neutilizate. Este foarte flexibil deoarece, deși are reguli implicite, le puteți modifica sau adăuga la ele pentru a se potrivi cerințelor dvs.
De asemenea, puteți configura Flake8 să ruleze atunci când salvați actualizările codului folosind VS Code. Toate aceste caracteristici îl fac un instrument valoros de avut atunci când scrieți programe Python.
Instalarea Flake8
Urmați pașii de mai jos pentru a instala Flake8 în mediul dumneavoastră de dezvoltare. Poate ai nevoie instalați Pip pe mașina dvs primul.
- Rulați comanda de mai jos în terminalul dvs. pentru a instala Flake8:
pip install flake8
- Verificați dacă Flake8 este instalat rulând următoarea comandă:
flake8 --versiune
- Dacă Flake8 este instalat corect, ar trebui să vedeți rezultate similare cu următoarea:
4.0.1 (mccabe: 0.6.1, pycodestyle: 2.8.0, fulgi de piatră: 2.4.0) CPython 3.9.13pe
Linux
După ce ați instalat cu succes Flake8, puteți începe să îl utilizați.
Folosind Flake8 pentru a analiza codul Python
Pentru a înțelege cum să utilizați Flake8, începeți cu următorul cod. Are câteva erori intenționate. Copiați-l într-un fișier numit salutare.py.
defSalut(Nume):
imprimare("Buna ziua, " + nume)
Salut("Alice")
Salut("Bob")
Rularea Flake8 pe un singur fișier
Sintaxa pentru rularea Flake8 pe un singur fișier este următoarea.
flake8 cale/to/file.py
În acest exemplu, navigați la directorul care conține fișierul greting.py și rulați următoarea comandă.
flake8 salut.py
Flake8 ar trebui să returneze următorul mesaj care arată că a existat o eroare de indentare.
Salut.py:5:1: E999IndentationErrore: neașteptatindentare
Această ieșire indică faptul că linia 5 este indentată inutil. La remediați această eroare de indentare, trebuie să eliminați spațiul de la începutul acestei linii.
defSalut(Nume):
imprimare("Buna ziua, " + nume)
Salut("Alice")
Salut("Bob")
Acum, când rulați Flake8, veți primi următoarele avertismente.
Salut.py:4:1: E305așteptat 2 golliniidupăclasăsaufuncţiedefiniție, găsite 1
Salut.py:5:16: W292Nulinie nouălaSfârşitdefişier
Această ieșire indică următoarele probleme:
- Pe linia 4, ar trebui să existe două linii goale după definiția funcției de salut, dar există doar una.
- Pe linia 5, ar trebui să existe o nouă linie la sfârșitul fișierului.
Odată ce remediați aceste probleme, flake8 nu ar trebui să returneze niciun mesaj.
Până acum, am analizat un singur fișier, dar în cele mai multe cazuri, veți dori să analizați mai multe fișiere.
Rularea Flake8 pe mai multe fișiere
Spune că ai un alt sunat test_greeting.py care contine urmatorul cod:
din Salut import Salut
deftest_greet():
afirma Salut("Alice") == — Bună, Alice!
Pentru a analiza aceste două fișiere, executați următoarea comandă.
flake8 greeting.py test_greeting.py
Această metodă funcționează, dar dacă aveți mai mult de două fișiere, introducerea numelor de fișiere ar putea fi obositoare și predispusă la erori.
Este mai eficient să folosiți următoarea comandă pentru a analiza toate fișierele din directorul curent:
fulg8 .
Înțelegerea erorilor și avertismentelor Flake8
Flake8 raportează două tipuri de probleme:
- Erori: o eroare indică o problemă de sintaxă sau structurală care împiedică rularea codului dvs. ca eroarea de indentare din exemplul greeting.py.
- Avertismente: un avertisment indică o problemă potențială sau o încălcare a regulilor de stil PEP 8, cum ar fi avertismentul „fără linie nouă la sfârșitul fișierului” din exemplul greeting.py.
Unele dintre erorile și avertismentele comune sunt:
- E101: indentarea conține spații și file mixte.
- E302: așteptate 2 rânduri goale, găsite 0.
- E999 IndentationError: indentare neașteptată.
- W291: spatiu alb final.
- E501: linie prea lungă (maximum 79 de caractere).
- F401: modul importat, dar neutilizat.
Când rulați Flake8, va afișa un mesaj precum cel afișat mai sus și numărul liniei și locația codului la care se referă mesajul. Acest lucru vă ajută să știți unde exact codul are probleme care vă economisesc timp de depanare.
Configurarea Flake8
Pentru unele proiecte, regulile lui Flake8 ar putea fi prea rigide. În aceste cazuri, Flake8 vă permite să-l configurați și să-i adaptați comportamentul pentru a se potrivi cerințelor dumneavoastră.
Puteți oferi opțiuni de configurare precum:
- Ignorarea erorilor sau avertismentelor specifice.
- Setarea lungimii maxime a liniei.
- Specificarea regulilor suplimentare.
Pentru a demonstra, creați un fișier de configurare numit setup.cfg. De asemenea, puteți adăuga opțiunile de configurare la un fișier numit tox.ini sau .flake8.
În acest fișier, începeți prin a crea o secțiune flake8 după cum urmează:
[fulg8]
Apoi adăugați opțiunile pe care doriți să le configurați:
[fulg8]
max-line-length = 100
ignora = F401
În acest exemplu, max-line-length = 100 îi spune Flake8 să emită avertismente pentru orice linie din fișierele de cod sursă care depășește 100 de caractere. ignore = F401 îi spune lui Flake8 să ignore erorile legate de importurile neutilizate.
Nu trebuie să adăugați aceste opțiuni la un fișier de configurare, deoarece puteți apela specificați-le pe linia de comandă astfel:
flake8 --ignore E203 --max-line-length 100
Utilizarea unui fișier de configurare este cea mai bună abordare, deoarece nu trebuie să specificați aceleași opțiuni de fiecare dată când utilizați flake8.
Folosind Flake8 în VS Code
Dacă utilizați VS Code pentru a vă scrie aplicația Python, puteți folosi extensia flake8 pentru a vă scame fișierele Python în timp ce introduceți.
Mai întâi, trebuie să instalați extensia flake8 de pe piața VS Code. Apoi, pentru a-l configura, deschideți setările VS Code, apoi căutați „python.linting.flake8Enabled” și activați liningul cu flake8.
Ar trebui să vedeți acum erori și avertismente evidențiate în codul dvs. cu o linie ondulată pe măsură ce îl scrieți. Trecând cu mouse-ul peste textul evidențiat, se va afișa un mesaj care explică problema și sugerează posibile remedieri.
Alte IDE-uri Python precum Pycharm au, de asemenea, extensii Flake8 pe care le puteți configura pentru a simplifica procesul de lingare.
De ce ar trebui să folosiți un Linter?
Pe măsură ce scrieți cod, este posibil să introduceți erori și inconsecvențe care cauzează eșuarea aplicației sau probleme de performanță. Un linter precum Flake8 vă permite să detectați unele dintre aceste probleme în avans, ajutându-vă să scrieți cod mai curat. Integrarea acestuia în fluxul dvs. de lucru de dezvoltare este foarte importantă.
Puteți face acest lucru utilizându-l în editorul dvs. de text sau IDE și integrându-l în continuu pipeline de integrare pentru a verifica automat codul pentru erori și avertismente înainte de a-l îmbina cu dvs ramura principală.