← All posts tagged Python

datacompboy
pygtk Python Мигрирую старый говнокод с GTK 2 на GTK 4 одновременно с переносом Py2 на Py3.

Заметка на бубущее, как ловить бектрейсы GTK ворнингов:
```
G_DEBUG=fatal_warnings gdb -ex "r" -ex "py-bt" --batch --args python src/main.py
```
datacompboy
Python DataBase Посоветуйте хорошую изкаробочную БД, которую можно насиловать из разных процессов на червячке, файловую.
sqlite неплохо, но с ростом слишком медленно делает выборки с подсчетом.
datacompboy
Python А никто не знает, почему я на gevent не могу запустить обльше 1100 websocket воркеров?
при том, что они все в общем-то, висят в лупе ожидания?
Там как-то можно переключить select() на poll(), или в чем дело?
datacompboy
Python А напомните-ка мне, в питоне аналог null(X)?Y:X есть, который можно заюзать даже для булевых?
А то X is not None and X or Y не работает для булевых зараза
datacompboy
Crash Python GTK Ура, да, это явно было оно — последнее место, где доступ к гую был из неправильного треда.
В принципе, теперь явно можно поменять назад "@gui.GuiCalled" на
with gui.GtkLocker:
...
Кстати, можно его на "@gui.GtkLocker:" переделать... И добавить захват только если из НЕ гуй-треда...
А не, так не выйдет. В общем, надо обновить статью на хабре. Или, лучше, написать вторую-продолжение: подводные камни, и методы обхода.
datacompboy
Python Вот. Родил 100% рабочий вариант, покрывающий все мои потребности.
pastebin.com
Что делает:
1. Работает win/lin
2. Ловит всё что валится на stdout/stderr и пишет в debug.log
3. Принимает всё что посылает запущенное приложение в тот же самый debug.log с тем же форматированием
4. Можно слать в лог полновесный traceback — так как записи пишутся многострочно
В общем, всё, что мне не хватало в моих логах — теперь пыщпыщ.
datacompboy
Python Так, нельзя по-простому — сделаем по-сложному.
Вот такой вариант почти работает: pastebin.com
"Почти" — потому что строки могут резаться в произвольном месте. Надо в районе pumper'а добавить попытку коллапсировать "близкие" по времени...
datacompboy
Python Так, сложный вопрос. Надо ловить stdout/stderr (в который может писать и код нативных DLLок), и перенаправить в logging. Вопрос — как? Форкаться что-ли?
datacompboy
Python GUI Господжа хорощиы! А какие есть хорошие гуйтулкиты, на пЫтоне, кросс-платформ (w32/lin, mac не обязателен), с минимальными депами (желательно, чтоб не как gtk на 60 метров рантайма), и нативлуком?