- 1
- 2
def IsZIPFile(filename):
return filename.lower().endswith('.zip')
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
def IsZIPFile(filename):
return filename.lower().endswith('.zip')
ибааааать!
6oHo6o 11.03.2021 01:37 # 0
JloJle4Ka 11.03.2021 02:21 # 0
6oHo6o 11.03.2021 02:22 # 0
я бы просто написал
filename.lower().endswith('.zip')
алсо
import pathlib
pathlib.Path(filename).suffix == zip
JloJle4Ka 11.03.2021 02:27 # 0
6oHo6o 11.03.2021 02:28 # 0
https://www.python.org/dev/peps/pep-0008/#function-and-variable-names
JloJle4Ka 11.03.2021 02:31 # 0
Ну вдруг это код каких-нибудь сишников, и у них в компании свой кодстайл.
Лично я вот так пишу: variable_name, functionName, ClassName, и мне нормально .
6oHo6o 11.03.2021 02:36 # 0
фу, нахуя нарушать конвенции?
Всё таки питух реднкая вербозня, нахуя вот тут две строчки?
JloJle4Ka 11.03.2021 02:43 # 0
https://youtu.be/HGutEFXo9os
> Всё таки питух реднкая вербозня, нахуя вот тут две строчки?
Напиши на одной, мне не жалко. Потом придётся переделывать это, заебёшься искать по коду такие конструкции.
В данном конкретном случае в любом ЯП можно это обернуть в функцию, чтобы выглядело пижже. И не такой уж это и вербознух.
6oHo6o 11.03.2021 03:02 # +2
В нормальном языке даже эту функцию можно написать в одну строку.
И не надо filename делать строкой, кстати. Будешь потом слешики неправильные выкавыривать.
bormand 12.03.2021 14:28 # 0
6oHo6o 14.03.2021 00:18 # 0
bormand 12.03.2021 14:18 # +1
Да там половина стандартной либы с нарушением PEP8 написана...
Fike 11.03.2021 02:33 # +5
в IsBukva
Petro-san 11.03.2021 03:08 # 0
j123123 11.03.2021 06:06 # +1
Petro-san 13.03.2021 15:40 # +1
Джордейна все помнят?
booratihno 13.03.2021 15:43 # 0
мне казалось, что только я ту книжку сюда приносил
Steve_Brown 12.03.2021 12:21 # +1
bormand 12.03.2021 12:30 # 0
Desktop 12.03.2021 13:18 # +2
bormand 12.03.2021 12:38 # 0
А вдруг это docx или сейв от какой-нибудь игрушки?
Soul_re@ver 12.03.2021 21:43 # 0
и расширение проверять. А если нужно чисто для нас, то пофиг на расширение, главное чтобы открывалось, дальше разберёмся.
Паттерн "переименованый zip" — лидер на рынке хранения ресурсов.
guest6 12.03.2021 21:48 # +1
Telki.mp4.exe
Windows10.iso.exe
и даже
Windows10.torrent.exe
Soul_re@ver 12.03.2021 21:58 # 0
MAKAKA 12.03.2021 22:00 # +1
вдруг мы ебанутые, и храним это в базе, как BLOB, а расширение (вместе с контент диспозишином) приделываем сами, когда отдаем данные?
Petro-san 13.03.2021 15:55 # 0
помножил на 0
booratihno 13.03.2021 15:55 # 0
Petro-san 13.03.2021 16:00 # 0
JloJle4Ka 13.03.2021 16:08 # 0
Как часто вы находите неизвестные файлы на жёстком диске? Кто их вам подкладывает?
Desktop 13.03.2021 16:36 # +2
офигеешь от всех этих ~1~
booratihno 13.03.2021 16:39 # +2
Petro-san 14.03.2021 07:18 # +1
booratihno 13.03.2021 16:14 # 0
6oHo6o 14.03.2021 00:16 # +1
Проверил .scr файл. Заголовок MZ. Заглянул через Impex плагин в фаре, вижу обычное 64битное приложение. В секции IMPORTS вижу .dllки. В ресурсах вижу картинки.
bormand 14.03.2021 00:18 # 0
6oHo6o 14.03.2021 00:24 # 0
Там вроде был экстешнен для скринсейверов, нужно почитать
bormand 14.03.2021 00:25 # 0
6oHo6o 14.03.2021 00:26 # 0
зы: да, программа, общающаяся с сервером через тот самый экстиешншен
http://manpages.ubuntu.com/manpages/bionic/man3/Xss.3.html
bootcamp_dropout 12.03.2021 12:41 # +1
bormand 12.03.2021 16:13 # 0
Desktop 12.03.2021 16:15 # +1
Desktop 12.03.2021 13:20 # +2
Руками байтики читать, ещё из Пистона, это сорт пиздеца
Soul_re@ver 12.03.2021 21:49 # +1
Petro-san 14.03.2021 07:43 # 0
Petro-san 14.03.2021 09:31 # 0
даже несмотря на то что я "зип" вытащил из внешнего котейнера
booratihno 12.03.2021 14:57 # +2
а там 4 гб
bormand 12.03.2021 15:00 # 0
booratihno 12.03.2021 15:02 # 0
Вообще если тебя вольнуют первые 4 байта, то помоему лучше именно их и считать, а не readall
bormand 12.03.2021 15:04 # 0
booratihno 12.03.2021 15:09 # 0
read(len(prefix)) == prefix
bormand 12.03.2021 15:10 # 0
bootcamp_dropout 12.03.2021 15:19 # 0
Desktop 12.03.2021 15:27 # +2
bormand 12.03.2021 15:48 # +1
Так же, как и с проверкой мыла: собачка есть и ладно.
Desktop 12.03.2021 16:07 # +2
Но доктор сказал в морг, значит, в морг
bormand 12.03.2021 16:09 # 0
Именно поэтому я за "YAGNI".
MAKAKA 12.03.2021 16:17 # 0
Desktop 12.03.2021 16:20 # 0
ты переменную зачем завёл, изверг? она тебе не нужна.
напиши два раза строковый литерал.
правда... тогда ты нарушишь DRY! сложно быть читателем википедии.
но виноваты конечно авторы питоньячьей либы, сложно было что ли зафигачить метод readAndCheck(str)??
JloJle4Ka 12.03.2021 16:23 # 0
Ты в этом случае за «веб-програмиирование» или «DRY»?
Desktop 12.03.2021 16:25 # +1
тут нужна экспертиза Соломона Самсоновича и Африкана Свиридовича
MAKAKA 12.03.2021 16:32 # +2
Если же твой фреймворк позволяет написать её один раз, и запустить на беке и на фронте, то DRY не нарушен.
JloJle4Ka 12.03.2021 16:44 # 0
MAKAKA 12.03.2021 16:49 # +2
Хотя бы на уровне HTMLя расставлять type и pattern.
Валидировать на сервере нужно всегда, это вопрос безопасности
Валидировать на клиенте очень желательно: это вопрос удобства
Можно отсылвать всё на сервер, и валидировать там.
Но если фреймворк может логику валидации запустить и на сервере, и на клиенте, причем из одного и того же сурса, то это вообще классно.
Писать одну и ту же логику два раза на двух языках это же уныло
JloJle4Ka 12.03.2021 16:53 # 0
https://pypi.org/project/WTForms-ParsleyJS/
Но это для WTForms из фласка. Не знаю, есть ли такая скилльная штука в джанге...
Desktop 12.03.2021 16:56 # +1
MAKAKA 12.03.2021 16:31 # 0
Desktop 12.03.2021 16:40 # 0
bormand 12.03.2021 16:33 # +1
> тогда ты нарушишь DRY
read(3) == b"PK♥"
И YAGNI живы и DRY цел.
MAKAKA 12.03.2021 16:34 # 0
bormand 12.03.2021 16:38 # +2
MAKAKA 12.03.2021 16:41 # +1
Изменение одного должно приводить к изменению второго.
Если одно поменять, а про другое забыть -- будет неконсистентно.
Это главная проблма не DRY кода: ты в одном месте поменял, а в другом забыл.
В то время как одно можно вывести из другого просто на этапе компиляции.
bormand 12.03.2021 16:42 # 0
read(1000).startswith("PK♥")
MAKAKA 12.03.2021 16:43 # 0
bormand 12.03.2021 16:54 # 0
Ок, убрал магические числа: read(math.exp(math.pi)).startswith("PK♥" )
MAKAKA 12.03.2021 17:00 # +1
JloJle4Ka 12.03.2021 17:02 # +1
MAKAKA 12.03.2021 17:05 # +3
bormand 12.03.2021 17:07 # +3
MAKAKA 12.03.2021 17:11 # +2
MAKAKA 12.03.2021 17:22 # +2
Desktop 13.03.2021 16:37 # 0
JloJle4Ka 12.03.2021 17:08 # 0
j123123 12.03.2021 16:10 # 0
bormand 12.03.2021 16:10 # +1
j123123 12.03.2021 16:14 # 0
https://man7.org/linux/man-pages/man2/mmap.2.html
bormand 12.03.2021 16:18 # 0
j123123 12.03.2021 16:18 # +1
https://en.wikipedia.org/wiki/X86-64#Virtual_address_space_details
bormand 12.03.2021 16:23 # +1
CHayT 12.03.2021 16:34 # +2
bormand 12.03.2021 16:37 # +1
Desktop 12.03.2021 16:41 # +1
guest6 13.03.2021 17:25 # 0
guest6 13.03.2021 17:26 # 0
bormand 12.03.2021 16:24 # +1
Какой высокоуровневый язык с автоматическим управлением памятью )))
Desktop 12.03.2021 16:26 # +1
выстрелил и забыл
Rooster 12.03.2021 18:04 # 0
MAKAKA 12.03.2021 18:06 # 0
Rooster 12.03.2021 18:09 # +1
bormand 12.03.2021 18:16 # +1
MAKAKA 12.03.2021 18:19 # 0
Rooster 12.03.2021 18:22 # +1
MAKAKA 12.03.2021 18:25 # 0
Генерал Файлюра читал мой диск, и нашел там еггог
bormand 12.03.2021 18:28 # +2
Soul_re@ver 12.03.2021 21:50 # +2
Desktop 12.03.2021 23:19 # +1
- стильное радио
Petro-san 13.03.2021 15:52 # 0
этож не меньшее говно
3un, ебнип, надо сканить с конца файла ради сигнатурки