Admin strxfrm mac #81

Merged
zelvuska merged 4 commits from strxfrm_pro_mac into master 2025-01-07 18:30:52 +01:00
Showing only changes of commit eb2b861d48 - Show all commits

View file

@ -56,8 +56,11 @@ def get_app_list(self, request, app_label=None):
# Sort the models alphabetically within each app.
for app in app_list:
app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower()))
try:
for app in app_list:
app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower()))
except OSError:
pass # locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení
return app_list
Review

Aspoň u mně tohle vygeneruje něco typu 2025-01-14 19:46:39,302 - mamweb.admin - ERROR - OSError: Invalid argument a nic víc, což není moc užitečné (nikde není odkaz přímo do zdrojáku ani chybová hláška nejde najít ve zdrojácích). Navrhuji něco typu logger.error(f"Zdá se, že nefunguje strxfrm: {e}; admin bude špatně seřazený.")

I mean, měnit to teď asi nebudu, ale aspoň pro příště, prosím. Jinak vyrobíme web, který generuje náhodné errory, které nepůjde dohledat… (A ano, tím myslím, že logger.error('Kočka leze dírou!') je v tomhle místě možná užitečnější, as long as ta kočka dírou nepoleze úplně všude…)

(A pročže to není logger.warning? Funkčnost webu to omezuje jen v omezeném rozsahu… Ale asi je to jedno…)

Aspoň u mně tohle vygeneruje něco typu `2025-01-14 19:46:39,302 - mamweb.admin - ERROR - OSError: Invalid argument` a nic víc, což není moc užitečné (nikde není odkaz přímo do zdrojáku ani chybová hláška nejde najít ve zdrojácích). Navrhuji něco typu `logger.error(f"Zdá se, že nefunguje strxfrm: {e}; admin bude špatně seřazený.")` I mean, měnit to teď asi nebudu, ale aspoň pro příště, prosím. Jinak vyrobíme web, který generuje náhodné errory, které nepůjde dohledat… (A ano, tím myslím, že `logger.error('Kočka leze dírou!')` je v tomhle místě možná užitečnější, as long as ta kočka dírou nepoleze úplně všude…) (A pročže to není `logger.warning`? Funkčnost webu to omezuje jen v omezeném rozsahu… Ale asi je to jedno…)
Review

Za mě logger.error('Kočka leze dírou!') je úplně k ničemu z toho pohledu, že vůbec netušíš, proč to spadlo (a pak to může spadnout z nějakého absurdního důvodu, který se jen tak nezopakuje, a budeme lovit duchy). A proto jsem něco podobného Vaškovi zatrhl a nechal ho vypisovat chybu.

To je trochu smutné, že to nenapíše nic víc. Neumíme tu chybu vypsat nějak použitelněji?

Za mě `logger.error('Kočka leze dírou!')` je úplně k ničemu z toho pohledu, že vůbec netušíš, proč to spadlo (a pak to může spadnout z nějakého absurdního důvodu, který se jen tak nezopakuje, a budeme lovit duchy). A proto jsem něco podobného Vaškovi zatrhl a nechal ho vypisovat chybu. To je trochu smutné, že to nenapíše nic víc. Neumíme tu chybu vypsat nějak použitelněji?
Review

Proto navrhuji ….error(f"…{e}…"). A přijde mi, že stejně v ≥80% případů při chybě budu potřebovat koukat do kódu, takže hlavně potřebuji umět najít místo v kódu (pramení ze zkušenosti s lovením divných bugů v náhodných kusech SW). A to není argument proti tomu tam mít actually co se stalo (byť EINVAL je důvod jak noha…), ale pro to mít před ním / v okolí nějakou věc, které se při lovení chyby půjde chytit. (Teoreticky se dá vypsat celý traceback, což trochu může pomoci…)

A ano, hodí se i vědět, jak kód reprodukovat, ale to (a) obstará i komentář na příslušném místě v kódu (ten tam je), (b) se vykouká případně o dost snadněji z okolí toho kódu a (c) v tomhle případě se to nejspíš bude na jednom HW chovat konzistentně pořád.

Proto navrhuji `….error(f"…{e}…")`. A přijde mi, že stejně v ≥80% případů při chybě budu potřebovat koukat do kódu, takže hlavně potřebuji umět najít místo v kódu (pramení ze zkušenosti s lovením divných bugů v náhodných kusech SW). A to není argument proti tomu tam mít actually co se stalo (byť EINVAL je důvod jak noha…), ale pro to mít před ním / v okolí nějakou věc, které se při lovení chyby půjde chytit. (Teoreticky se dá vypsat celý traceback, což trochu může pomoci…) A ano, hodí se i vědět, jak kód reprodukovat, ale to (a) obstará i komentář na příslušném místě v kódu (ten tam je), (b) se vykouká případně o dost snadněji z okolí toho kódu a (c) v tomhle případě se to nejspíš bude na jednom HW chovat konzistentně pořád.