Email or username:

Password:

Forgot your password?
Мя :sparkles_lesbian:

То есть у питона есть классы, есть возможность делать магию при их создании (и это реализовано в датаклассах!) но когда надо прочитать бинарный формат (стандартной либой) то добро пожаловать в регуляркоподобный синтаксис и кортежи, я правильно понимаю?

16 comments
Мя :sparkles_lesbian:

Типо серьезно, в какую упоротую голову пришло, что определять структуры строчками вида '<qh6xq' это хорошо?

Мя :sparkles_lesbian:

Кажется, проще просто дернуть who указав ему откуда читать файл (прокинутый в докер с хоста)

Мя :sparkles_lesbian:

А нет, who в альпайне работает принципиально по другому, вместо чтения файла коннектится к сокету...

Мя :sparkles_lesbian:

решила парсить только необходимые поля, а остальное выкидывать, но где-то проебала два байта. Ненавижу сишные типы и тех кто их использует вместо фиксированных

Мя :sparkles_lesbian:

"Это поле размера long long"

Мой долбоёб во Христе, байт там сколько блин???

Galactic Jew 🇮🇱

@mo от платформы зависит?

Мя :sparkles_lesbian:

Пересчитала байты ещё два раза. Жопой чую, что нарвалась на неочевидное неопытному глазу выравнивание, но где блин

Galactic Jew 🇮🇱

@mo есть еще простое решение. берешь код who, написанный на с (он ведь написан на с?) и говоришь корайлоту или чатгпт - а перепиши как вот это на пайтоне.

не знаю сколько это напильником потом дорабатывать но у меня один коллега так кое какие проекты с пайтона на го спортировал ;-)

Мя :sparkles_lesbian:

@GalacticJew там достаточно скормить определение структуры из utmp.h, но это неспортивно, да и мне не нужны все поля

Galactic Jew 🇮🇱

@mo
- но это же неэстетично
- зато дешево, надежно и практично :-)

Мя :sparkles_lesbian:

@GalacticJew неэстетично в плане? Мне надо прочитать структуру, логично скормить её определение, и попросить сгенерировать соответствующий код, а не засирать контекст тонной сишных сорцов

Galactic Jew 🇮🇱

@mo это просто цитата из бриллиантовой руки. к слову пришлось. (к слову неспортивно)

Мя :sparkles_lesbian:

К слову, вот этот надежный пароль кодирует структуру:
- long long в little endian
- short в native endian
- 6 байт паддинга
- ещё один long long, в native endian

Efi (nap pet) 🦊💤

@mo when reading binary data I've used a library called Xenomorph for racket and it was much easier than any alternative imho imo

Мя :sparkles_lesbian:

@efi im too lazy to add third party libraries to docker image. It's like gemini server + python for CGI, so adding anything will require rebuilding image, and this is just...meh

Go Up