gentoo.ru
python
python@conference.gentoo.ru
Четверг, 3 марта 2011< ^ >
krigstask установил(а) тему: Пей тон @ Жуй картон || https://gist.github.com/289467 || Логи: http://tinyurl.com/gentoo-py-logs || "Python's a drop-in replacement for BASIC in the sense that Optimus Prime is a drop-in replacement for a truck."
Конфигурация комнаты
Участники комнаты

GMT+3
[00:19:02] krigstask вышел(а) из комнаты: Replaced by new connection
[00:19:12] krigstask вошёл(а) в комнату
[00:49:39] maksbotan вышел(а) из комнаты
[01:47:05] maksbotan вошёл(а) в комнату
[01:48:43] maksbotan вышел(а) из комнаты
[08:53:31] maksbotan вошёл(а) в комнату
[09:16:59] maksbotan вышел(а) из комнаты
[09:35:21] krigstask вышел(а) из комнаты
[10:48:34] lk4d4 вошёл(а) в комнату
[11:21:12] krigstask вошёл(а) в комнату
[11:46:57] <krigstask> Ботан, Python 2.5 есть?
[14:14:55] maksbotan вошёл(а) в комнату
[14:23:20] <krigstask> Ботан! ^^^
[14:23:27] <maksbotan> есть
[14:23:52] <krigstask> А PyQt4 для него установлена?
[14:24:20] <maksbotan> как узнать?
[14:24:30] <krigstask> Вообще установлена?
[14:24:47] <maksbotan> вроде да
[14:25:16] <krigstask> % python2.5 -c "import PyQt4"
[14:25:57] <krigstask> Если не выругается, значит, есть
[14:25:58] maksbotan вышел(а) из комнаты: Replaced by new connection
[14:26:08] maksbotan вошёл(а) в комнату
[14:26:22] <maksbotan> нету
[14:26:29] <maksbotan> поправить не долго
[14:26:35] <krigstask> USE_PYTHON не определён?
[14:26:40] <maksbotan> не-а
[14:26:52] <krigstask> А смысл тогда в старом питоне? (-:Е
[14:26:57] <krigstask> Ну как недолго, перебирать надо
[14:27:07] <maksbotan> магический контейнер поможет
[14:27:45] <maksbotan> а что ты хотел-то?
[14:29:17] <krigstask> http://paste.pocoo.org/show/347378/ попробовать со Python 2.5
[14:29:44] <maksbotan> этоже ебилд
[14:30:01] <krigstask> Не без этого
[14:30:26] <maksbotan> а почему бы ему не работать?
[14:30:33] <krigstask> Мало ли
[14:30:54] <maksbotan> ну ща переберу
[14:42:58] <lk4d4> ботан, а где ты контейнеры берешь?
[14:43:10] <maksbotan> найт предоставляет же
[14:43:32] <lk4d4> надо ему запрос сделать?
[14:43:51] <maksbotan> ну он мне просто так дал
[14:44:28] <maksbotan> я попросил, он дал
[14:52:54] <krigstask> Предоставьте ботану «жэ»
[14:55:40] maksbotan вышел(а) из комнаты: Replaced by new connection
[14:55:50] maksbotan вошёл(а) в комнату
[14:56:08] <maksbotan> девы сонаты — уроды
[14:56:21] <krigstask> Бывает
[14:56:27] <maksbotan> то есть не девы а ебилдер
[14:56:37] <krigstask> И это бывает
[14:56:39] <krigstask> А почему?
[14:56:48] <maksbotan> SUPPORT_PYTHON_ABIS нету
[14:56:59] <krigstask> Ну и чего страшного?
[14:57:00] <maksbotan> и там шабанг python2.6
[14:57:06] <maksbotan> ессно нифига не фурычит
[14:57:17] <krigstask> Поправь и повесь на b.g.o, делов-то
[14:57:27] <maksbotan> уже поправил, ща проверю
[16:56:52] maksbotan вышел(а) из комнаты: Replaced by new connection
[16:57:02] maksbotan вошёл(а) в комнату
[16:57:07] <maksbotan> а лучше патч лить или новый ебилд?
[17:00:19] krigstask вышел(а) из комнаты
[17:34:17] krigstask вошёл(а) в комнату
[17:36:24] <krigstask> Патч
[17:37:31] <maksbotan> ок
[17:40:41] <maksbotan> http://paste.pocoo.org/show/347467
[17:40:46] <maksbotan> что скажешь о таком решении?
[17:41:12] <krigstask> Решении чего?
[17:41:14] <lk4d4> а что за задача?
[17:41:47] <maksbotan> суть в том, что нужно в функции вернуть значении, которое появляется только в gtk callback'е
[17:41:49] <maksbotan> который _answer
[17:42:08] <maksbotan> то есть ask() должен возвращать то, чего ещё нет
[17:42:20] <lk4d4> while self.answer == None:
            pass
[17:42:21] <krigstask> Хрень какая-то
[17:42:26] <lk4d4> и это ты типа такой модный?
[17:42:40] <maksbotan> это я просто лучше ничего не придумал
[17:45:53] <maksbotan> ну так что?
[17:46:12] <krigstask> Хрень какая-то
[17:46:32] <maksbotan> а как бы ты сделал?
[17:46:41] <krigstask> Без понятия
[17:46:44] <maksbotan> :'(
[17:46:51] <krigstask> Потому что вообще неясно, что там у тебя происходит
[17:47:10] <maksbotan> я объясняю ж
[17:47:24] <maksbotan> некая либа вызывает ask() и хочет чтоб оно вернуло значение
[17:47:43] <maksbotan> ask рисует вопрос на окошке и ждет пока сработает _answer, который вызывается из gtk
[17:47:48] <maksbotan> при нажатии на кнопку
[17:49:19] <krigstask> Сотона ты мой, а что, по-человечески в GTK такое не делается?
[17:49:28] <maksbotan> как по-человечески?
[17:49:44] <krigstask> Как-нибудь не так
[17:50:11] <maksbotan> ну как бы ты делал?
[17:50:22] <krigstask> Я бы покурил доки GTK/PyGTK
[17:50:27] <maksbotan> на тему?
[17:50:33] <krigstask> И не входил бы в бесконечный пустой цикл
[17:50:51] <maksbotan> просто другого способа заставить ask() ждать я не придумал
[17:51:04] <maksbotan> потому что если использовать замок, то gtk не получить GIL
[17:51:32] <krigstask> Запусти % python -c 'while 1: pass' и посмотри на загрузку проца
[17:52:13] <maksbotan> ёё
[17:52:39] <krigstask> Ну я не знаю, как в диалогах GTK такое делается
[17:52:58] <maksbotan> в том-то и прикол, что это не диалог
[17:53:04] <maksbotan> а очень даже главное окно
[17:53:43] <krigstask> Без разницы
[17:53:48] <krigstask> Подумай в сторону сигналов
[17:54:26] <maksbotan> гтк сигналы это не так просот
[17:54:35] <maksbotan> тваю мать, Queue же!
[17:54:43] <maksbotan> хотя...
[17:54:45] <maksbotan> то же что замок
[17:54:47] <maksbotan> :(
[17:56:20] <maksbotan> krigstask: http://paste.pocoo.org/show/347474/
[17:57:15] <krigstask> Стало быть, поставилось?
[17:57:19] <maksbotan> ога
[17:57:31] <krigstask> Работает?
[17:57:36] <maksbotan> не проверял
[17:57:57] <maksbotan> ща проверю
[18:01:11] <maksbotan> http://paste.pocoo.org/show/347479/
[18:01:26] <maksbotan> а, я ж ebuild merge сделал
[18:01:31] <maksbotan> ясное дело депендов нету
[18:11:08] <maksbotan> http://paste.pocoo.org/show/347485/
[18:11:16] <maksbotan> поразительно, оно работает
[18:13:13] <maksbotan> krigstask: http://paste.pocoo.org/show/347487/ вот твой хгвью
[18:13:56] <krigstask> Гм. Странно
[18:14:24] <maksbotan> вот вот
[18:14:35] <maksbotan> с 2.6 тоже самое5
[18:15:10] <lk4d4>     with lock:
        pass
[18:15:13] <krigstask> А-а-а, у тебя ж и qscintilla нету
[18:15:17] <lk4d4> это значит пока лок закрыт?
[18:15:24] <krigstask> Ты можешь emerge hgview сделать или нет?
[18:15:24] <maksbotan> lk4d4: да
[18:15:29] <maksbotan> krigstask: я и сделал
[18:15:42] <maksbotan> у меня просто qscintilla не для всех питонов собран
[18:15:51] <krigstask> Только для 2.7?
[18:15:54] <maksbotan> ага
[18:15:57] <maksbotan> ща поправлю
[18:16:40] <maksbotan> посмотрел примерчик с замком?
[18:17:17] <lk4d4> вот у меня тут возник вопрос
[18:17:19] <krigstask> Костылём отдаёт
[18:17:26] <lk4d4> разве это не тоже самое что и было?
[18:17:39] <maksbotan> lk4d4: нет, тут цикла нет бесконечного
[18:17:42] <maksbotan> просто блокировка
[18:17:54] <maksbotan> krigstask: ну как по-другому то?
[18:18:00] <lk4d4> а по-моему
with lock:
        pass
и есть бесконечный
[18:18:16] <lk4d4> иначе как он его там проверяет?
[18:18:31] <krigstask> Я ж тебе говорю, кури доки PyGTK/GTK
[18:18:36] <lk4d4> но выглядит круче, я не спорю
[18:18:41] <krigstask> На тему передачи событий
[18:18:51] <maksbotan> krigstask: ну вот как в куте это?
[18:21:14] <krigstask> Да я и в Qt плаваю
[18:21:24] <krigstask> Подумаю ещё
[18:21:29] <maksbotan> ок
[18:21:56] <maksbotan> я просто не представляю причем тут передача событий, если функция должна ждать
[18:24:02] <lk4d4> прошу мне тоже потом рассказать
[18:24:16] <maksbotan> =)
[18:25:17] <maksbotan> lk4d4: может там и бесконечный цикл, но он внутри интерпретатора
[18:25:23] <maksbotan> значит оптимизирован
[18:26:03] <lk4d4> что-то мне так не кажется
[18:26:13] <maksbotan> кхм
[18:28:20] <lk4d4> но в любом случае круто
[18:28:52] <maksbotan> хаха
[18:28:53] <lk4d4> хотя я и не так думал
[18:29:43] <lk4d4> я думал бомбим
with lock:
    tralivali
и лок сам закрывается и открывается
[18:29:47] <lk4d4> а про это не знал
[18:29:54] <maksbotan> ну да
[18:29:56] <maksbotan> это равносильно
[18:30:01] <maksbotan> lock.wait()
[18:30:04] <maksbotan> tralivali
[18:30:07] <maksbotan> lock.release()
[18:30:19] <lk4d4> acquire в смысле?
[18:30:27] <maksbotan> ну да
[18:31:06] <lk4d4> ну так
[18:31:25] <lk4d4> а поясни мне логику как твой код работает
[18:32:07] <maksbotan> в смысле?
[18:32:15] <maksbotan> что там неясно-то?
[18:32:23] <lk4d4> ну вот мы делаем acquire()
[18:32:28] <lk4d4> а потом with lock
[18:32:31] <maksbotan> да
[18:32:34] <lk4d4> ну
[18:32:40] <maksbotan> потому что он освободится в handler
[18:32:49] <maksbotan> который вызывает гткшкой, в другом потоке
[18:33:46] <lk4d4> блин
[18:33:52] <lk4d4> так я думал with что делает
[18:33:53] <maksbotan> что блин?
[18:34:48] <lk4d4> lock.acquire() на время выполнения кода в этом блоке
[18:34:53] <lk4d4> а у тебя там pass
[18:35:02] <maksbotan> и что
[18:35:32] <maksbotan> ты меня запутал
[18:35:36] <lk4d4> и ты меня
[18:35:49] <maksbotan> =)
[18:36:06] <lk4d4> ну так вот
[18:36:09] <lk4d4> я думал
[18:36:39] <lk4d4> with lock:
    pass
[18:36:57] <lk4d4> тоже самое что
lock.acquire()
pass
lock.release()
[18:37:06] <maksbotan> так и есть
[18:37:31] <lk4d4> ну вот в твоем-то коде если это заменить
[18:38:08] <maksbotan> то фигня будет
[18:38:23] <lk4d4> ну так
[18:38:29] <lk4d4> значит не тоже самое
[18:38:47] <maksbotan> в моем случае не тоже самое, а вообще тоже
[18:38:54] <maksbotan> krigstask: ↑↑ ?
[18:39:07] <lk4d4> ну вот ты можешь мне обхяснить в чем разница
[18:39:32] <maksbotan> нет
[18:39:42] <maksbotan> krigstask: этому гаду ещё докутилс надо
[18:39:57] <maksbotan> lk4d4: http://docs.python.org/reference/compound_stmts.html#the-with-statement
[18:41:10] <maksbotan> то есть замки реализуют менеджер контекста
[18:42:31] <lk4d4> ни фига я все равно не понял
[18:42:38] <maksbotan> гг
[18:43:29] <lk4d4> это как-то неявно все
[18:43:52] <lk4d4> то есть если сделать __enter()__, а потом with
[18:44:08] <lk4d4> то он будет ждать пока кто-нибудь не сделает __exit()__?
[18:46:40] <maksbotan> штооо
[18:46:52] <maksbotan> я нифига не понял
[18:47:11] <lk4d4> а я тем более
[19:53:56] lk4d4 вышел(а) из комнаты
[20:26:10] maksbotan вышел(а) из комнаты
[21:25:24] krigstask вышел(а) из комнаты: Logged out
[21:26:15] maksbotan вошёл(а) в комнату
[22:18:22] maksbotan вышел(а) из комнаты: Replaced by new connection
[22:18:32] maksbotan вошёл(а) в комнату
[22:38:27] maksbotan вышел(а) из комнаты
[22:46:22] maksbotan вошёл(а) в комнату
[22:53:59] krigstask вошёл(а) в комнату
[23:23:28] maksbotan вышел(а) из комнаты
[23:27:51] maksbotan вошёл(а) в комнату
[23:45:30] <krigstask> Кстати, https://bitbucket.org/skrattaren/gruq
[23:59:56] <maksbotan> просит войти в аккаунт
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!