Išvalykite savo kodų bazę naudodami šį lengvai naudojamą komandinės eilutės įrankį.
Smulkinimo įrankis yra vertingas šaltinis, galintis padėti pastebėti kodo klaidas ir neatitikimus.
„Flake8“ yra vienas populiariausių Python valymo įrankių. Jis nustato kodo sintaksės ir formatavimo klaidas bei kitas problemas, pvz., nepanaudotus importus. Tai labai lanksti, nes, nors ir turi numatytąsias taisykles, galite jas pakeisti arba papildyti, kad atitiktų jūsų poreikius.
Taip pat galite sukonfigūruoti „Flake8“, kad jis veiktų, kai išsaugote kodo naujinimus naudodami „VS Code“. Visos šios funkcijos daro jį vertingu įrankiu rašant Python programas.
„Flake8“ diegimas
Atlikite toliau nurodytus veiksmus, kad įdiegtumėte „Flake8“ savo kūrimo aplinkoje. Jums gali prireikti įdiekite Pip savo kompiuteryje Pirmas.
- Paleiskite toliau pateiktą komandą savo terminale, kad įdiegtumėte Flake8:
pip įdiegti flake8
- Įsitikinkite, kad Flake8 yra įdiegtas, vykdydami šią komandą:
flake8 --versija
- Jei Flake8 įdiegtas teisingai, turėtumėte matyti išvestį, panašią į toliau pateiktą:
4.0.1 (mccabe: 0.6.1, pikodo stilius: 2.8.0, pyflakes: 2.4.0) CPython 3.9.13įjungta
Linux
Sėkmingai įdiegę „Flake8“, galite pradėti jį naudoti.
Flake8 naudojimas Python kodui analizuoti
Norėdami suprasti, kaip naudoti Flake8, pradėkite nuo šio kodo. Jame yra keletas tyčinių klaidų. Nukopijuokite jį į failą, vadinamą pasisveikinimas.py.
defpasisveikinimas(vardas):
spausdinti ("Sveiki, " + vardas)
sveikinu ("Alisa")
sveikinu ("Bobas")
„Flake8“ paleidimas viename faile
„Flake8“ paleidimo viename faile sintaksė yra tokia.
flake8 kelias/to/file.py
Šiame pavyzdyje eikite į katalogą, kuriame yra failas greting.py, ir paleiskite šią komandą.
flake8 sveikinimas.py
Flake8 turėtų grąžinti šį pranešimą, rodantį, kad įvyko įtraukos klaida.
pasisveikinimas.py:5:1: E999Įtraukimo klaida: netikėtasįtrauka
Ši išvestis rodo, kad 5 eilutė yra be reikalo įtraukta. Į ištaisykite šią įtraukimo klaidą, turite pašalinti tarpą nuo šios eilutės pradžios.
defpasisveikinimas(vardas):
spausdinti ("Sveiki, " + vardas)
sveikinu ("Alisa")
sveikinu ("Bobas")
Dabar, kai paleisite „Flake8“, gausite šiuos įspėjimus.
pasisveikinimas.py:4:1: E305tikimasi 2 tuščiaslinijospo toklasėarbafunkcijaapibrėžimas, rasta 1
pasisveikinimas.py:5:16: W292nenauja linijaadresugalasapiefailą
Ši išvestis rodo šias problemas:
- 4 eilutėje po pasisveikinimo funkcijos apibrėžimo turėtų būti dvi tuščios eilutės, tačiau yra tik viena.
- 5 eilutėje failo pabaigoje turėtų būti nauja eilutė.
Ištaisius šias problemas, flake8 neturėtų grąžinti jokių pranešimų.
Iki šiol išanalizavome tik vieną failą, bet daugeliu atvejų norėsite analizuoti kelis failus.
„Flake8“ paleidimas keliuose failuose
Pasakykite, kad turite kitą skambutį test_greeting.py kuriame yra šis kodas:
iš pasisveikinimas importuoti pasisveikinimas
deftestas_pasveikinimas():
tvirtinti sveikinu ("Alisa") == "Sveika, Alisa!"
Norėdami analizuoti šiuos du failus, paleiskite šią komandą.
flake8 greeting.py test_greeting.py
Šis metodas veikia, bet jei turite daugiau nei du failus, failų pavadinimų įvedimas gali būti varginantis ir gali sukelti klaidų.
Norint analizuoti visus dabartinio katalogo failus, efektyviau naudoti šią komandą:
dribsnis8 .
Flake8 klaidų ir įspėjimų supratimas
Flake8 praneša apie dviejų tipų problemas:
- Klaidos: klaida nurodo sintaksę arba struktūrinę problemą, kuri neleidžia jūsų kodui paleisti kaip įtraukos klaida, pateikta greeting.py pavyzdyje.
- Įspėjimai: įspėjimas nurodo galimą problemą arba PEP 8 stiliaus gairių pažeidimą, pvz., įspėjimą „Failo pabaigoje nėra naujos eilutės“ iš greeting.py pavyzdžio.
Kai kurios dažniausiai pasitaikančios klaidos ir įspėjimai:
- E101: įtraukoje yra mišrių tarpų ir skirtukų.
- E302: laukiama 2 tuščių eilučių, rasta 0.
- E999 IndentationError: netikėta įtrauka.
- W291: galinis tarpas.
- E501: eilutė per ilga (daugiausia 79 simboliai).
- F401: modulis importuotas, bet nenaudojamas.
Kai paleisite „Flake8“, jis išves tokį pranešimą, kaip parodyta aukščiau, ir eilutės numerį bei kodo vietą, kurioje nurodo pranešimo nuorodas. Tai padeda sužinoti, kur tiksliai jūsų kode yra problemų, todėl sutaupysite derinimo laiko.
„Flake8“ konfigūravimas
Kai kuriems projektams Flake8 taisyklės gali būti per griežtos. Tokiais atvejais „Flake8“ leidžia ją konfigūruoti ir pritaikyti elgseną pagal jūsų poreikius.
Galite pateikti konfigūracijos parinktis, tokias kaip:
- Konkrečių klaidų ar įspėjimų ignoravimas.
- Didžiausio linijos ilgio nustatymas.
- Nurodant papildomas taisykles.
Norėdami parodyti, sukurkite konfigūracijos failą pavadinimu setup.cfg. Taip pat galite įtraukti konfigūracijos parinktis į failą, pavadintą tox.ini arba .flake8.
Šiame faile pradėkite kurdami flake8 skyrių taip:
[flake8]
Tada pridėkite norimas konfigūruoti parinktis:
[flake8]
maksimalus linijos ilgis = 100
ignoruoti = F401
Šiame pavyzdyje max-line-length = 100 nurodo Flake8 pateikti įspėjimus bet kuriai šaltinio kodo failų eilutei, kurios ilgis viršija 100 simbolių. ignoruoti = F401 nurodo Flake8 ignoruoti klaidas, susijusias su nenaudojamu importavimu.
Jums nereikia pridėti šių parinkčių į konfigūracijos failą, nes galite jas nurodyti komandų eilutėje taip:
flake8 – ignoruoti E203 – maksimalus linijos ilgis 100
Konfigūracijos failo naudojimas yra geriausias būdas, nes jums nereikia nurodyti tų pačių parinkčių kiekvieną kartą, kai naudojate flake8.
Flake8 naudojimas VS kode
Jei „Python“ programai rašyti naudojate VS kodą, galite naudoti plėtinį flake8, kad įvesdami „Python“ failus susitrauktumėte.
Pirmiausia turite įdiegti flake8 plėtinį iš VS Code prekyvietės. Tada, norėdami sukonfigūruoti, atidarykite VS kodo nustatymus, tada ieškokite „python.linting.flake8Enabled“ ir įgalinkite linting su flake8.
Rašydami kode turėtumėte matyti klaidas ir įspėjimus, paryškintas vingiuota linija. Užvedus pelės žymeklį virš paryškinto teksto bus rodomas pranešimas, kuriame paaiškinama problema ir siūlomi galimi pataisymai.
Kita Python IDE pvz., Pycharm, taip pat turi Flake8 plėtinius, kuriuos galite konfigūruoti, kad supaprastintumėte pūkavimo procesą.
Kodėl turėtumėte naudoti „Linter“?
Rašydami kodą galite įnešti klaidų ir neatitikimų, dėl kurių programa sugenda arba gali kilti našumo problemų. „Linter“ kaip „Flake8“ leidžia iš anksto pastebėti kai kurias iš šių problemų ir padėti rašyti švaresnį kodą. Labai svarbu jį integruoti į savo kūrimo darbo eigą.
Tai galite padaryti naudodami teksto rengyklę arba IDE ir integruodami į nuolatinį integravimo vamzdyną, kad prieš sujungdami jį su savo kodu automatiškai patikrintų, ar kode nėra klaidų ir įspėjimų pagrindinė šaka.