Wprowadzenie
Narzędzia Lint to coś, co ułatwia nam życie, życie deweloperów. Te przydatne komponenty pomagają nam być lepszymi, szybszymi i bardziej produktywnymi. Wyobraź sobie sytuację, kiedy uruchamiasz kod, który został właśnie napisany, i nie udaje się... Sprawdzasz traceback, naprawiasz kod, uruchamiasz go ponownie i zawodzi, raz po raz. Dzieje się tak z powodu zatrzymania się na pierwszym napotkanym błędzie. Możesz wykryć wiele błędów za pomocą narzędzi do sprawdzania kodu Pythona, zanim jeszcze uruchomisz kod. Jednak linters nie tylko sprawdzają kod pod kątem błędów. Sprawdzają również stylizację. Wszyscy wiedzą, że utrzymanie standardu stylizacji jest bardzo ważne w projekcie. Pomaga czytać kod, pracować w zespole, dodawać nowe funkcje, a zwłaszcza znajdować błędy. Mamy wiele lintów Pythona do wyboru. Jednym z najpopularniejszych jest flake8. Jest to kombinacja wielu narzędzi, ale głównie Pyflakes (szybka i niska częstotliwość fałszywych alarmów sprawdzania kodu pythona) i Pep8/Pycodestyle (sprawdź kod z konwencją pep8). Jest łatwy w użyciu i ma wiele rozszerzeń, których możesz użyć, aby dokładnie sprawdzić swój kod i ustawić surowe zasady stylu.
Podstawy Flake8
Pierwszy krok do użycia płatki8 polega na zainstalowaniu go w swoim środowisku.
Uwaga Dobrą praktyką jest korzystanie ze środowiska wirtualnego dla każdej konkretnej aplikacji. Możesz użyć na przykład
venvBash
python -m pip install Flake8Możesz wywołać płatki8 przez wiersz polecenia lub przez Python.Bash
flake8 path/to/your/file.py
# lub
python -m flake8 path/to/your/file.pyW ten sposób sprawdzisz sprawdzanie kodu Pythona przy użyciu domyślnej konfiguracji. Ale możesz go po prostu dostosować.Bash
flake8 --max-line-length 120 path/to/your/file.pyUstawiamy maksymalną długość linii na 120 znaków zamiast 79 zgodnie z pep8. Możesz znaleźć pełną listę opcji tutajW większości przypadków używamy bardziej złożonej konfiguracji, którą chcemy ponownie wykorzystać. Flake8 pozwala nam przechowywać preferencje w pliku konfiguracyjnym. Przykładowy plik konfiguracyjny może wyglądać następująco:
txt
[flake8]
ignoruj = D203
wykluczyć =
.git,
__pycache__,
docs/source/conf.py,
stary,
budować,
dyst
maksymalna złożoność = 10
Włącz prześcieranie w IDE
Korzystanie z flake8 z wiersza poleceń działa, ale lepiej jest używać go bezpośrednio z preferowanego Pythona IDE! Widzimy błędy kodu i niedokładność stylu w locie. Ponadto IDE podświetli wadliwą linię/obiekt. W tym artykule pokażemy, jak włączyć linię python w VCS IDE, ale możesz go włączyć w swoim ulubionym narzędzie.Przede wszystkim upewnij się, że zainstalowałeś flake8 w swoim środowisku. Następnie otwórz Virtual Code Studio, naciśnij F1 i zacznij pisać „Sprawdzanie kodu Pythona: Wybierz prześcieradło”.
I wybierz flake8 z listy.
To jest to. Teraz możemy zobaczyć wyjście z płatka w zakładce „problemy” w IDE. Jak wspomnieliśmy wcześniej, istnieje wiele rozszerzeń, których możemy użyć do dostosowania flake8 do naszych wymagań. Na przykład wyobraź sobie, że w naszym projekcie chcielibyśmy mieć dokumentację Pydoc, aby PEPTYK 257 zasady. Możemy użyć flake8-docstrings rozszerzenie. W tym celu zainstaluj pakiet za pomocą pip:Bash
python -m pip zainstaluj Flake8-DocStringsReload flake8 sprawdź, zapisując plik (Ctrl + s) i zobacz, co otrzymujemy
Jak wspomnieliśmy wcześniej, istnieje wiele rozszerzeń, których możemy użyć do dostosowania flake8 do naszych wymagań. Na przykład wyobraź sobie, że w naszym projekcie chcielibyśmy mieć dokumentację Pydoc, aby PEPTYK 257 zasady. Możemy użyć flake8-docstrings rozszerzenie. W tym celu zainstaluj pakiet za pomocą pip:Bash
sprawdzenie kodu Pythona
-m pip zainstaluj Flake8-DocStringsReload flake8 sprawdź, zapisując plik (Ctrl + s) i zobacz, co otrzymujemy
Możemy również dołączyć plik konfiguracyjny ze wszystkimi ustawieniami dostosowanymi do naszych wymagań podczas korzystania z flake8 z IDE. Załóżmy, że nie musimy sprawdzać D403 — „Pierwsze słowo pierwszego wiersza powinno być poprawnie napisane wielką literą”. Plik konfiguracyjny powinien wyglądać następująco:txt
[flake8]
ignoruj = D403Teraz musimy skonfigurować VCS, aby używać tego pliku. Dodaj nową linię w pliku settings.json w podfolderze.vscode Json
{"python.linting.flake8args”: [” --append-config=/path/to/flake8/config/.flake8"]} Plik powinien wyglądać następująco:
[/vc_column_text] [vc_single_image image="6872" img_size="full "] [vc_column_text] Idealne! Flake8 nie sprawdza już D403.
Zadanie „Sprawdź kod” w działaniach GitHub
Do tej pory sprawdziliśmy nasz kod lokalnie, ale możemy zrobić to samo automatycznie. Kontrola/przegląd kodu jest częścią CI/CD (CI — Kontynuuje integrację w szczególności). W ten sposób możemy sprawdzić kod przy każdym push to repozytorium, z PR (pull request) lub cokolwiek chcesz, w zależności od ustawionego wyzwalacza. Kiedy używamy GitHub do przechowywania naszego kodu w repozytorium, istnieje łatwy sposób na jego implementację - „akcje GitHub”. „Działania GitHub” to wbudowane narzędzie CI/CD. Nawet w „darmowym” planie konta w tej najpopularniejszej platformie repozytorium git oferuje 2000 minut miesięcznie na automatyzację. Możemy ich użyć do budowania, testowania i wdrażania naszego kodu w sposób, w jaki chcemy. Przede wszystkim utwórmy repozytorium. Możesz to zrobić tutaj.
Możesz stworzyć własną praktykę. Zainicjujmy repozytorium git i wypchnijmy ich pliki. Uruchom polecenia w terminaluBash
git init
git dodaj flake8_demo.py, .flake8
git commit -m „init commit”
git remote dodaj źródło git@github.com:nazwa_użytkownika/twoja_nazwa_repo.git
git push początkowy master
UwagaUżywam połączenia ssh z klawiszami ssh. Możesz znaleźć więcej informacji na ten temat tutaj. Ale możesz też użyć https.
Jesteśmy gotowi do stworzenia przepływu pracy akcji GitHub. Musimy stworzyć dodatkową strukturę katalogów pod naszym repozytorium. Ścieżka .github/workflows zostanie rozpoznana przez GitHub i zadeklarowane przepływy pracy zostaną przetworzone. „Działania” są napisane w YAML. W ten sposób można skonfigurować akcję „Python Checker”.Yaml
nazwa: PythonChecker
na:
żądanie ściągnięcia:
oddziały: [master]
oferty pracy:
flake8check:
uruchomienie: ubuntu-latest
Strategia:
macierz:
wersja pythona: [3.8]
nazwa: sprawdzenie flake8 (poprzez Python $ {{matrix.python-version}})
kroki:
- nazwa: kod kasowy repo
zastosowania: akcje/wymeldowanie @v2
- nazwa: Skonfiguruj Python$ {{matrix.python-version}}
używa: actions/setup-python @v2
z:
wersja pythona: $ {{matrix.python-version}}
- nazwa: Zainstaluj rozszerzenia flake8
bieg: |
python -m pip instalacja --upgrade pip
jeśli [-f. /requirements-flake8.txt]; następnie python -m pip install -r. /requirements-flake8.txt; fi
- nazwa: Uruchom sprawdzenie
bieg: |
#stop sprawdź, czy są błędy flake8
flake8 --config=.flake8
Spróbujmy zrozumieć, jak to działa. W pierwszym wierszu deklarujemy nazwę naszego działania. Ta nazwa będzie widoczna w zakładce „Akcja” portalu - pokażę to później.W drugim głównym węźle określamy wyzwalacz dla naszego przepływu pracy. Nasza akcja rozpocznie się od PR do masteringu branch.W węźle „jobs” opisujemy środowisko i poszczególne etapy przepływu pracy. Każdy przepływ pracy może mieć wiele zadań. W naszym przypadku istnieje jeden identyfikator zadania „flake8check”, który będzie uruchomiony w najnowszej wersji systemu Ubuntu OS ze zmienną listy macierzy „python-version” z jedną wartością '3.8'. Funkcja macierzy może być użyta do uruchomienia tego samego zadania, na przykład z inną wersją pytonów. Nasza praca będzie nosiła nazwę „flake8 check (przez Python {matrix_variable})” i ta nazwa zostanie wyświetlona w GitHubie. Wreszcie doszliśmy do opisu kroków.Istnieją cztery kroki z parametrem nazwy i konfiguracją kroku:
- „Checkout code repo” pociągnij kod oddziału, który chcemy połączyć z „master” za pomocą „actions/checkout @v2”. To jest akcja z rynku akcji Github.
- „Skonfiguruj Pythona” to kolejna akcja z rynku, która polega na instalacji Pythona w naszym środowisku.
- „Zainstaluj rozszerzenia flak8” użyj polecenia „run”, aby wykonać dostarczony kod w terminalu OS. Jest to aktualizacja narzędzia pip i instalacja wszystkich niezbędnych modułów Pythona (flake8 i flake8-docstrings)
- Ostatnim krokiem „Uruchom sprawdzenie” jest wywołanie aplikacji flake8 za pomocą naszego pliku konfiguracyjnego.
Teraz znamy kod, więc sprawdźmy, jak to działa.Bash
git checkout -b python_checker
git dodaj .github/workflows/python_checker.yaml requirements-flake8.txt
git commit -m „dodaj akcję GitHub” Stworzyłem PR z gałęzi „python_checker” do „master” na portalu Github, ponieważ wyzwala naszą akcję. Następnie możemy zobaczyć wyniki w zakładce „Działania”.
Jak podejrzewamy, że praca nie powiodła się. Możemy sprawdzić szczegóły po kliknięciu w uruchomieniu przepływu pracy.
Działania GitHub są łatwe do opracowania i możemy go wykorzystać w wielu innych zadaniach. Co więcej, nawet w darmowym planie konta otrzymujemy 2000 minut na naszą pracę. Cały kod używany w tym artykule można znaleźć na
https://github.com/michalmi-dss/flake8_check_code
Co to jest relacyjna baza danych? Zalety i wady relacyjnych baz danych.
Denormalizacja bazy danych - co to jest i praktyczne przykłady