isort #110
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/isort"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
WIP: isortto isortDocela hit-or-miss, jak se dá od automatizovaného nástroje čekat… Mohlo to být i horší, asi mi je pořadí importů jinak dostatečně jedno, takže nevím, jak by za mě vypadalo ostré zlepšení 🤷
@ -13,0 +11,4 @@from vysledkovky import utilsfrom .utils import default_ovvpfileJe nějaký partikulární důvod, proč to tady vyrobilo dva prázdné řádky? A proč je to nekonzistentní, když třeba v
api/urls.pyje za impory prázdný řádek jen jeden?Tipuji, že před třídou a před funkcí jsou dva, před proměnnou jeden. Stejně jako v jiných formátítkách Pythonu…
Ah, další vynález PEP-8… A máme někdo pocit, že to pomáhá? Já totiž ne – jen to přidává scrollování / ubírá kontext, který vidím na obrazovce; blok importů (zarovnaný v prvním sloupci) od funkce/třídy (odsazený nejmíň jedním tabem) poznám vizuálně rovnou…
Jo má.
@ -2,3 +2,4 @@#from django.db.models import Qfrom imagekit.models import ImageSpecFieldfrom imagekit.processors import ResizeToFit, TransposeNevím, jestli bych ImageKit dalo hned vedle Djanga. Also: ten zakomentovaný import by buď měl být zatříděný, nebo smazaný (asi nutný ruční zásah)
Tak já neříkám, že ruční zásahy nemáme dělat (navíc jsou supposedly jednorázové) :-) Já říkám, že pokud už se někdo snaží dělat systém v importech, tak že bych ocenilo, aby to bylo plošné…
@ -9,4 +12,2 @@from personalni.utils import resitel_uzivatelefrom galerie.models import Obrazek, Galerie, VZDY, ORG, UCASTNIK, NIKDYfrom soustredeni.models import SoustredeniSkoro mi přijde, že je praktičtější mít všechny modely u sebe. Ale nevím, jak těžké je to zařídit…
Nevím, mám pocit, že těžké. A ono možná chceme spíš stejné balíčky u sebe (aby bylo vidět, co všechno z daného balíčku potřebujeme).
@ -12,2 +11,3 @@from mamweb.settings_local import * # Import all the settings for local development# Import common settingsfrom .settings_common import * # zatim nutne, casem snad vyresime # noqaTak tohle disapprovuju. Ty overridy tam jsou schválně a to
# noqabeztak taky!Je možné, že se to technicky nerozbilo (v případě, že se podruhé importovaný kód neprovádí), ale vůbec mi nepřijde příčetné se na to spoléhat.
Dík :)
@ -8,4 +11,2 @@## Import common settingsfrom .settings_common import *Tady se spíš komentář výš měl změnit na docstring a import měl zůstat tu imho.
I pro produkci a test
@ -30,3 +31,4 @@from ipaddress import ip_networkALLOWED_HOSTS = [str(ip) for ip in ip_network('192.168.0.0/16')]Nepřijde mi zas tak moc užitečné tady rozbíjet tu těsnou vazbu mezi importem a jediným použitím… A když už, tak ten import
ip_networkmůže klidně být úplně nahoře (je mi jasné, že tohle se staticky rozhodnout nejspíš nedá)@ -7,4 +4,1 @@from django.conf import settingsfrom django.views.generic.base import TemplateViewfrom django import viewsfrom django.urls import path # As per docs.Není mi moc jasné, co mělo být podle dokumentace, asi možno zrušit?
@ -11,0 +6,4 @@from django.contrib import adminfrom django.contrib.staticfiles.urls import staticfiles_urlpatternsfrom django.urls import path # As per docs.from django.urls import includeMá někdo vysvětlení, proč zrovna tady je
pathaincludev tomto pořadí?To by mě také zajímalo :D
@ -1,5 +1,7 @@from django.contrib import adminfrom django_reverse_admin import ReverseModelAdminfrom django.contrib import adminHuh? Zatímco
django_ckeditor_5.widgetsto vnovinky/admin.pyklidně připlácne ke zbytku Djanga, ač je to jiná věc, tak tady to vyrobilo prázdný řádek? Proč?Je třeba přidat django_reverse_admin do skupiny dalšího Djanga v
pyproject.toml…@ -13,0 +12,4 @@vzorecek_na_prepocet)from personalni.models import Resitelfrom tvorba.models import (Cislo, Deadline, Problem, Uloha,aux_generate_filename)Na první čtení mám pocit, že tohle rozlámání je vyloženě rušivé a znepřehledňující. (Neříkám, že si na to nejde zvyknout, jen že to nelahodí mému oku teď…)
Radši bych měl
Ale přežiju obojí…
Mít
mi přijde OK, pokud to tak bude systematicky (tj. asi kdekoliv, kde se to „nevejde“ na jeden řádek).
@ -6,4 +9,2 @@# Jen typová anotacefrom tvorba.models import Problemfrom personalni.models import Osoba, Organizator, Resitel, Prijemcefrom django.contrib.auth.models import AnonymousUser, UserDěkujeme, klíčenku neposíláme. Ten komentář tam nebyl zbytečně…
A nechceme tam tedy přidat
if TYPE_CHECKING, když je důležité, že je to jen typová anotace (protože jakmile někdo přidá něco, co tyhle věci použije na ne-typing, tak komentář zastará aniž by si toho někdo všiml)?No, je to nesystematicky jinak řešený type checking proti všemu ostatnímu (co když by ten komentář byl
# používáme na zpracování obrázků, třeba někde jinde…), ale takový Python holt trochu je. Asi za mě klidně.@ -4,2 +3,3 @@from django.contrib.auth import get_user_modelfrom django.contrib.auth.decorators import permission_required, user_passes_testfrom django.contrib.auth.decorators import (permission_required,user_passes_test)Já bych skoro preferovalo dlouhý řádek než náhodné zalomení. A taky mi přijde, že odsazovat mezerami podle závorky je spíš špatně – odsazujeme taby a pokračování dlouhých řádků (třeba v modelech) bývá o tab dál nezávisle na závorkách.
Námitky k lámání a závorkování platí i jinde, nepřišlo mi užitečné to psát ke všem, pokud bude zájem, tak klidně projdu a
pohejtímoznačím@ -48,6 +47,7 @@ def sync_skoly(base_url):from django.urls import reversefull_url = base_url.rstrip('/') + reverse('export_skoly')import requestsHuh, za
importem prostě musí být prázdný řádek… Ale ne zafrom něco import něcoo dva řádky výš.A jo, uznávám, že ten kód je hnusný, ale mám silné tušení, že tohle ho nezlepšuje…
(Chápu to správně, že
isortje prostě hloupý, sémantiku Pythonu spíš nechápe a řeší to všechno syntakticky? ☹️)@ -87,0 +92,4 @@default_section = "THIRDPARTY"known_first_party = ["mamweb"]known_django = ["django"]known_takydjango = ["django_countries", "reversion", "rest_framework", "polymorphic", "taggit", "imagekit", "dal", "ckeditor_uploader", "django_ckeditor_5"]Už si nepamatuju kde, ale někde máme jiné djangoviny mimo tenhle výčet…
@ -5,4 +8,0 @@from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilterfrom .models import TreeNode, RocnikNode, CisloNode, MezicisloNode, TemaVCisleNode, UlohaZadaniNode, PohadkaNode, UlohaVzorakNode, TextNode, CastNode, OrgTextNode, ReseniNodefrom .models import Text, ObrazekTrochu váhám, jestli
TextaObrazeknejsou dostatečně odlišné objekty na smíchání se zbytkem, ale možná nejsou (resp. importy se stejně nepíšou na to, aby se nějak moc četly).@ -6,2 +3,2 @@from unidecode import unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované)from unidecode import \unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované)Komentář nad, import na jeden řádek. (Že tady ale najednou nevadí, že věci nejsou zarovnané mezerami 🤪)
@ -8,1 +9,4 @@import soustredeni.modelsfrom tvorba.models import (Cislo, Clanek, Deadline, Problem, Rocnik, # tvorbaTema, Uloha, ZmrazenaVysledkovka)Ten komentář je úplně zbytečný, a navíc se přesunul :-D
@ -7,1 +7,4 @@from solo.models import SingletonModelfrom unidecode import \unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované)Když už to musí být bez závorek, tak prosím na jeden řádek…
Also, odsazovat tabem a ne mezerami! (i v
treenode/models.py)@ -19,4 +19,3 @@from django.db.models import Count, Q, Sumfrom django.http import Http404, HttpResponse# ZbytekPrázdný řádek spíš nechat?
@ -15,4 +11,1 @@from novinky.testutils import gen_novinkyfrom personalni.testutils import gen_organizatori, gen_osoby, gen_prijemci, gen_resitele, gen_skolyfrom soustredeni.testutils import gen_soustredeni, gen_konferyfrom tvorba.testutils import gen_cisla, gen_clanek, gen_dlouhe_tema, gen_rocniky, gen_temata, gen_ulohy_do_cisla, gen_ulohy_k_tematumtbf tady to taky dávalo víc smysl před sesortěním… Jakože, asi lítají třísky, ale i tak…
3b7cddc291to0323cc10e10323cc10e1tobc356443c2View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.