pelegrinova / morfo_segmentace

poloautomatická segmentace textu na morfémy + výpočet dat pro MAL: pokusy
3 stars 1 forks source link

Formátování: Zajisti dodržení podle PEP 8 #7

Open Glutexo opened 3 years ago

Glutexo commented 3 years ago

Hezky postupně, ať toho není moc naráz a nevzniká příliš mnoho konfliktů. Nezanášejme nová. Úplně na konec bych nechal délku řádků, to bývá bolavé.

Zjistit všechna porušení lze instalací a použitím nástroje Flake8.

$ pip install flake8
$ flake8 .
./morfo_segmentace_výpočet_malu_types.py:7:1: E266 too many leading '#' for block comment
./morfo_segmentace_výpočet_malu_types.py:11:78: E261 at least two spaces before inline comment
./morfo_segmentace_výpočet_malu_types.py:11:79: E262 inline comment should start with '# '
./morfo_segmentace_výpočet_malu_types.py:11:80: E501 line too long (146 > 79 characters)
./morfo_segmentace_výpočet_malu_types.py:15:5: E266 too many leading '#' for block comment
…

Spuštění bez stížností na konkrétní porušení zajistí parametr --ignore. Obdobně vypsat jen nějaká konkrétní umožní parametr --select.

$ flake8 --ignore E501 .
./morfo_segmentace_výpočet_malu_types.py:7:1: E266 too many leading '#' for block comment
./morfo_segmentace_výpočet_malu_types.py:11:78: E261 at least two spaces before inline comment
./morfo_segmentace_výpočet_malu_types.py:11:79: E262 inline comment should start with '# '
./morfo_segmentace_výpočet_malu_types.py:15:5: E266 too many leading '#' for block comment
./morfo_segmentace_výpočet_malu_types.py:31:5: E266 too many leading '#' for block comment
…

Nástroj Black je ještě přísnější a umí kód i sám naformátovat. ⚠️ Pozor! Jeho spuštění bez parametru --check, nebo --diff přepíše stávající soubory. Zůstanou funkční, ale budou jinak naformátované.

$ black --line-length 79 --check .
would reformat morfo_segmentace_automatická.py
would reformat morfo_segmentace_výpočet_malu_tokens.py
would reformat morfo_segmentace_výpočet_malu_types.py
would reformat morfo_segmentace_manuální.py
Oh no! 💥 💔 💥
4 files would be reformatted.
$ black --line-length 79 --diff .
--- morfo_segmentace_automatická.py     2021-10-19 18:38:29.806510 +0000
+++ morfo_segmentace_automatická.py     2021-10-19 19:07:32.098119 +0000
@@ -15,21 +15,27 @@

 cisla = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "slouč"]

 for cislo in cisla:
     # načtení textu/slov k segmentaci (a odstranění případné mezery na konci)
-    with open(f"foneticky_přepsaný_stud_{cislo}.txt", encoding="UTF-8") as soubor:
+    with open(
+        f"foneticky_přepsaný_stud_{cislo}.txt", encoding="UTF-8"
+    ) as soubor:
         slova_k_segmentaci = soubor.read().strip().split(sep=" ")
…
@@ -135,12 +175,16 @@
             vysledek_segmentace.writerow(dvojice)

 # takhle asi neee :D ale já nevíím jak :D
 # spustím úpravu textu
-text_k_segmentaci_substituovany, text_na_slova_uniq_foneticky = uprava_textu(text_k_segmentaci)
+text_k_segmentaci_substituovany, text_na_slova_uniq_foneticky = uprava_textu(
+    text_k_segmentaci
+)

 # spustím porovnání s mojim slovníkem
-slova_k_segmentaci = porovnani_textu_se_slovnikem(text_na_slova_uniq_foneticky, slova_ze_slovniku)
+slova_k_segmentaci = porovnani_textu_se_slovnikem(
+    text_na_slova_uniq_foneticky, slova_ze_slovniku
+)

 # spustím segmentování samotné (a rozšiřování slovníku, ale je tam chybaaa - anebo není? ověřit, jestli se to fakt zapisuje dobře do toho souboru)
 segmentace_manualni(slova_k_segmentaci)
would reformat morfo_segmentace_manuální.py
All done! ✨ 🍰 ✨
4 files would be reformatted. 

Pro porovnání

Pozor na to, že Flake8 považuje ve výchozím nastavení za nejvyšší přípustnou délku řádků 79 znaků, zatímco Black 88 znaků. PEP 8 doporučuje 79 pro řádky kódu a 72 pro souvislé bloky textu jako jsou dokumentační řetězce.

Seznam žádostí

Glutexo commented 3 years ago

Zatím máme #6.

Glutexo commented 3 years ago

A ještě #8.

Glutexo commented 3 years ago

A ještě #9.

Glutexo commented 3 years ago

Přidal jsem ještě #10. Tím by mělo být vyřešeno vše kromě délky řádků. Pro dnešek končím.

Glutexo commented 3 years ago

12 pomůže s délkou řádků. Většina kódu je nyní o jednu úroveň odsazení výše.

Flake8 a Black mají možná jiné výchozí nastavení nejvyšší přípustné délky řádku. To chce prozkoumat.

Glutexo commented 3 years ago

Doplnil jsem popisek, jak použít Black.

Glutexo commented 3 years ago

_morfo_segmentaceautomatická.py je podle Flake8 již zcela v pořádku. Dobrá práce! 🎉