gentoo.ru
python
python@conference.gentoo.ru
Среда, 30 марта 2011< ^ >
maksbotan установил(а) тему: Пей тон @ Жуй картон || 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+4
[00:20:06] <maksbotan> аниме — зло
[00:20:07] <maksbotan> вот
[00:50:29] <lk4d4> хохо
[00:50:43] <maksbotan> не хохо, а зло
[00:50:50] <lk4d4> ты же сам заядлый
[00:50:55] <maksbotan> да ну
[00:51:01] <lk4d4> шаман кинг или че там
[00:51:11] <maksbotan> 1 анимешка за жизнь
[00:51:14] <maksbotan> че там
[00:52:00] <lk4d4> у тебя все еще тока начинается
[00:52:18] <maksbotan> Да ну
[00:52:23] maksbotan не любит аниме
[00:52:46] <lk4d4> за что?
[00:53:12] <maksbotan> а просто так
[01:12:48] <maksbotan> lk4d4: смотри какой я упоротый
[01:12:52] <maksbotan> http://paste.pocoo.org/show/362310
[01:14:25] <lk4d4> ну я в общем-то не одобряю такого угара
[01:14:32] <lk4d4> но если работает, то почему бы и нет
[01:14:43] <maksbotan> я два последних уже выкинул )
[01:14:51] <maksbotan> просто проверил действительно ли оно будет работать
[01:14:56] <maksbotan> оказалось — да
[01:16:06] <maksbotan> http://paste.pocoo.org/show/362312
[01:16:08] <maksbotan> так лучше
[01:17:16] <lk4d4> уверен, что три последних по отдельности будешь использовать?
[01:17:27] <maksbotan> что значит по-отдельности?
[01:18:39] <lk4d4> ну я вот думаю зачем тебе три декоратора, если ты их все время вместе будешь применять
[01:19:45] <maksbotan> не все время
[01:20:01] <maksbotan> это единственная функция пока где channel_fetcher применен =)
[01:20:07] <maksbotan> обычно только один c_u
[01:20:13] <lk4d4> наверняка везде применишь :E
[01:20:33] <lk4d4> ну посмотрим что в итоге выйдет
[01:20:45] <lk4d4> может ты и правда разветвленную сеть декораторов сделаешь
[01:20:51] <lk4d4> и будешь повелевать миром
[01:20:51] <maksbotan> не везде
[01:20:55] <maksbotan> гарантирую
[01:22:06] <lk4d4> докстринги напиши
[01:22:36] <maksbotan> напишу
[01:23:46] <lk4d4> желательно чтоб сразу было понятно про декораторы
[01:23:59] <lk4d4> а то неохота мне лазить в них смотреть каждый раз что будет
[01:24:40] <maksbotan> ладно, ладно
[01:25:25] <maksbotan> адова зараза
[01:27:39] <lk4d4> а какие депенды у твоей штуки?
[01:27:42] <lk4d4> flask?
[01:28:15] <maksbotan> flask, BeautifulSoup, pygments
[01:28:18] <maksbotan> вроде все
[01:28:25] <lk4d4> суп тебе еще
[01:28:28] <maksbotan> да
[01:28:28] <lk4d4> а че не lxml?
[01:28:30] <maksbotan> суп мне
[01:28:44] <maksbotan> а я привык к супу
[01:29:11] <lk4d4> максим суповой
[01:29:39] <maksbotan> :(
[01:30:51] <maksbotan> ну вот как так написать можно было?
[01:30:55] <maksbotan> или это я кривой...
[01:32:29] <lk4d4> давай с гита на хг мигрируй
[01:32:34] <maksbotan> фигушки
[01:32:38] <lk4d4> а то Сишный дух над тобой довлеет
[01:32:41] <maksbotan> никаких хг
[01:32:58] <maksbotan> вот что за фигня
[01:33:08] <maksbotan> один раз пишу в сокет, в ответ получаю что надо
[01:33:13] <maksbotan> ещё раз пишу, не то
[01:33:16] <maksbotan> и так далее
[01:33:24] <lk4d4> че пишешь и в какой?
[01:33:27] <maksbotan> если перезапустить, то снова раз что надо, а потом нет
[01:33:34] <maksbotan> lk4d4: да запрос к серверу логики
[01:33:47] <lk4d4> хттп?
[01:33:55] <lk4d4> или у тебя свои запросы?
[01:34:15] <maksbotan> не, не хттп
[01:34:20] <maksbotan> там очень веселый протокол
[01:34:28] <maksbotan> бинарное представление словаря
[01:35:02] <lk4d4> у меня было такое с хттп
[01:35:08] <lk4d4> лишняя строка была
[01:35:14] <lk4d4> первый запрос норм
[01:35:24] <maksbotan> гм
[01:35:29] <lk4d4> остальные невалидные
[01:35:40] <maksbotan> а у меня ведь Request в замыкании хранится
[01:35:43] <maksbotan> а я его там правлю....
[01:36:42] <maksbotan> о, починил =)
[01:37:37] <lk4d4> самоделкин
[01:37:42] <maksbotan> R
[02:35:24] <lk4d4> maksbotan: здесь?
[02:35:32] <maksbotan> ненадолго
[02:36:11] <maksbotan> а что?
[02:36:18] <lk4d4> PYTHON_DEPEND="sqlite? 2"
[02:36:23] <lk4d4> так правильно?
[02:36:31] <maksbotan> ну читни екласс
[02:36:37] <maksbotan> думаешь я помню?
[02:36:40] <maksbotan> вроде правильно
[02:36:48] <lk4d4> ха
[02:36:50] <lk4d4> читни
[02:37:28] <lk4d4> не, мне надо флаг у питона включить
[02:37:40] <maksbotan> т.е. питон с таким юзом?
[02:38:06] <maksbotan>        PYTHON_USE_WITH
              Set this to a space separated list of USE flags the Python slot in use must be built with.
[02:38:15] <maksbotan> emerge eclass-manpages && man python.eclass
[02:38:53] <lk4d4> ну ты у нас разработчик
[02:38:57] <maksbotan> почти
[02:41:34] <maksbotan> ладно, пойду я спать
[02:42:45] <lk4d4> давай, я тоже щас с депендами скрапи доразберусь
[02:43:41] <maksbotan> хехе
[02:43:54] <maksbotan> и это будет мой первый user-contibuted ebuild :D
[02:45:10] maksbotan вышел(а) из комнаты
[08:35:38] maksbotan вошёл(а) в комнату
[08:40:55] lk4d4_1 вошёл(а) в комнату
[08:41:54] <lk4d4_1> не поймешь этот скрапи
[08:42:56] <maksbotan> м?
[08:43:21] <lk4d4_1> не качает файлы
[08:43:30] <maksbotan> хаха
[08:43:31] <lk4d4_1> по ссылкам бегает, а файлы не качает
[08:43:51] maksbotan о скрапи ещё год назад в ксакепе читал
[08:43:55] <lk4d4_1> хотя я даже проверил, код для загрузки файлов работает, а вот откуда он вызывается неизвестно
[08:44:01] <maksbotan> там его для фаззинга вроде юзали
[08:44:03] <lk4d4_1> неявно короче все
[08:44:20] <lk4d4_1> может я еще какой-то депенд не нашел
[08:44:30] <maksbotan> Explicit is better than implicit =)
[08:45:23] <lk4d4_1> да уж это и так было ясно)
[08:46:21] <lk4d4_1> по началу я прям зарадовался, ничего делать не надо - сам бегает по ссылкам
[08:46:24] <maksbotan> хохо, ЛОо в дереве
[08:47:03] <lk4d4_1> либре чтоле?
[08:47:21] <maksbotan> да
[08:47:59] <lk4d4_1> да ну его
[08:48:16] <lk4d4_1> все эти трехчасовые сборки с залезанием в свап
[08:48:32] <maksbotan> у меня есть чудо-контейнер =)
[08:56:04] <maksbotan> хм, lk4d4_1
[08:56:08] <maksbotan> а давай тебя в девы
[08:56:25] <lk4d4_1> запутанное это дело
[08:56:42] <maksbotan> ну и что
[09:18:51] <lk4d4_1> не качает подлец :E
[09:19:33] <maksbotan> хаха
[09:19:40] <maksbotan> сходи к ним на каналец )
[09:20:46] <lk4d4_1> придется по ходу
[09:24:06] <lk4d4_1> даже и не знаю что им сказать
[09:31:51] krigstask вышел(а) из комнаты
[09:55:25] <lk4d4_1> игнорируют меня
[09:57:00] <maksbotan> хаха
[09:57:02] <maksbotan> это ирц =)
[09:57:05] <maksbotan> он такой
[10:00:51] <lk4d4_1> вся эта неявщина и докстринги отсылающие на сайт, мне не по душе
[10:13:24] <lk4d4_1> хоть вручную пиши этот обработчик
[11:11:28] <maksbotan> с моими декораторами писать код легко и просто
[11:13:43] <lk4d4_1> лучше бы твой код было поддерживать легко и просто с твоими докстрингами
[11:13:54] <maksbotan> аа, докстринги
[11:14:30] <maksbotan> у меня в плане 1) переделать старые функции с декораторами 2) сделать докстринги 3) пофиксить все по пайлинту и пеп-8
[11:15:02] <lk4d4_1> по пеп-8 сразу бы писал
[11:16:13] <maksbotan> да у меня и так почти по пеп8
[11:16:25] krigstask вошёл(а) в комнату
[11:16:28] <maksbotan> просто когда перечитнул его, заметил несколько косяков у себя
[11:16:37] <maksbotan> Your code has been rated at 4.76/10 (previous run: 4.88/10)
[11:16:39] <maksbotan> :'(
[11:17:31] <maksbotan> хех, он ругается на имена переменных
[11:17:31] <maksbotan> зараза
[11:18:19] <maksbotan> W: 63:gen_monitor: Unreachable code
[11:18:20] <lk4d4_1> это только из-за имен переменных?
[11:18:25] <maksbotan> а это уже весело
[11:18:26] <lk4d4_1> хаха
[11:18:30] <maksbotan> lk4d4_1: нет, ещё куча всего
[11:19:19] <maksbotan> и правда анричебл
[11:19:53] <krigstask> maksbotan> анричебл
КОго-то банить пора
[11:19:58] <maksbotan> W:146:gen_monitor: Used builtin function 'filter'
[11:20:01] <maksbotan> это ещё что
[11:20:05] <maksbotan> krigstask: извини
[11:20:09] <maksbotan> забыл что ты уже здесь
[11:20:25] <krigstask> Дуб ты, вообще надо за языком следить, всегда
[11:20:35] <maksbotan> R: 29:gen_monitor: Too many branches (33/12)
R: 29:gen_monitor: Too many statements (120/50)
lk4d4_1: а ты с этим вот разобрался?
[11:20:43] <lk4d4_1> нет
[11:20:53] <lk4d4_1> у меня еще too many local variables
[11:20:54] <maksbotan> хм
[11:21:13] <lk4d4_1> бранчес я ваще не понял что такое
[11:21:38] <maksbotan> хм, реально почти все ошибки — имена переменных
[11:22:04] <lk4d4_1> еще строки длинные
[11:22:41] <maksbotan> дада
[11:23:02] <krigstask> Your code has been rated at 7.89/10
[11:23:20] <maksbotan> хаха
[11:23:26] <lk4d4_1> у меня 9.4 вроде
[11:23:43] <lk4d4_1> хотя лучше б скрапи работал
[11:24:50] <maksbotan> хаха
[11:25:05] <maksbotan> как-то мне совсем не хочется все переменные переименовывать
[11:25:10] <maksbotan> ещё по идиотским правилам
[11:29:49] <krigstask> Конечно, идиотские
[11:29:53] <krigstask> Бота не одобряет
[11:30:15] <maksbotan> не, ну
[11:30:27] <maksbotan> C:  8:login_required: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
[11:36:15] <lk4d4_1> хаха
[11:36:24] <lk4d4_1> декорирует он
[11:36:31] <lk4d4_1> дизайнер внутренних помещений
[11:36:35] <maksbotan> Што
[11:58:06] <krigstask> Помещений
[12:04:58] <lk4d4_1> в ирке этого скрапи такое уныние
[12:05:23] <maksbotan> в ирке всегда униние
[12:05:29] maksbotan вышел(а) из комнаты
[12:05:59] <lk4d4_1> бесит
[12:58:34] <lk4d4_1> починил блин
[12:58:45] <krigstask> Молодец
[12:59:18] <lk4d4_1> полрабочего дня потратил на паука для анимешных обоев
[12:59:31] <lk4d4_1> вот это по-мужски
[12:59:42] <krigstask> Воистину
[13:03:30] <lk4d4_1> только хэши в именах бесят, половину скрапи перепишешь пока добьешься чего надо
[16:31:35] krigstask вышел(а) из комнаты
[16:32:51] krigstask вошёл(а) в комнату
[16:52:49] maksbotan вошёл(а) в комнату
[16:54:46] youshi вошёл(а) в комнату
[16:59:57] <youshi> приветы!
[17:00:55] lk4d4_1 вышел(а) из комнаты
[17:01:36] <maksbotan> oh hai
[17:01:43] <youshi> подскажите, кто знает, как можно и можно ли результат запроса из SQLAlchemy превратить в список словарей (или как оно правильно звучит? :)) - [{...},{...},{...}...]
[17:02:16] <youshi> пытаюсь его в json сконвертить, а оно мне возвращает список списков
[17:02:19] <youshi> а ключи теряются
[17:06:45] <krigstask> Сейчас глянем
[17:08:15] <krigstask> Это который Query?
[17:08:59] <youshi> ага
[17:09:09] <maksbotan> .fetchall же вроде как и возвращает то что надо
[17:09:39] <maksbotan> http://paste.pocoo.org/show/362627
[17:10:17] <youshi> maksbotan: читал документацю - не начитал.. ща попробую
[17:10:39] <maksbotan> ну это в простом режиме, может в сессионном по-другому
[17:11:12] <youshi> AttributeError: 'Query' object has no attribute 'fetchall'
[17:11:17] <youshi> вот почему не начитал
[17:11:22] <youshi> )
[17:11:56] <krigstask> Вообще тамошний ORM же возвращает список объектов, нет?
[17:12:30] <maksbotan> ну я просто ORM'ами не заморачивался )
[17:12:34] <youshi> да. именно список объектов. каждый объект хранит поля таблицы в своих атрибутах
[17:12:48] <youshi> и можно легко получить к ним доступ напрямую
[17:13:12] <youshi> но мне надо их, эти объекты, как-то в обычные словари сконвертить
[17:13:24] <youshi> классы json понимать нормально не хочет(
[17:13:38] <krigstask> Я б тоже не стал! (-:Е
[17:13:41] <youshi> )
[17:14:04] <youshi> но значения полей-то он возвращает)
[17:14:13] <youshi> только списком - без ключей
[17:16:54] <maksbotan> a = {}
for i in Query.__dict__:
    a[i] = Query.__getattr__(i)
[17:16:55] <maksbotan> не?
[17:17:52] <youshi> ну вот только как-то так и остается
[17:17:53] <maksbotan> костыль какой-то
[17:17:56] <youshi> во во
[17:18:01] <youshi> не хотелось бы
[17:18:24] <krigstask> Я бы в методы этого объекта поглядел
[17:20:27] <youshi> http://paste.pocoo.org/show/362631/
[17:22:18] <youshi> там есть метод keys, который эти самые ключи возвращает. но опять же ручной перебор, как maksbotan предложил, получается
[17:22:55] <maksbotan> а метода values нету?
[17:22:55] <youshi> summary, title - поля таблицы
[17:23:14] <youshi> count, index, keys
[17:23:18] <youshi> только эти
[17:23:28] <maksbotan> хехе
[17:23:39] <youshi> во те и хехе
[17:29:33] <youshi> наверное придется наследовать JSONEncoder и самому мутить обработчик этого дела....
[17:30:16] <maksbotan> а нафиг оно тебе вообще?
[17:33:07] <youshi> дык я ж говорю. хочу выдрать из БД некий набор данных и отдать его в виде json. без обработки. мож потом и не пригодится, но я пока не волшебник, а только учусь )
[17:34:39] <maksbotan> аа
[17:35:40] <maksbotan> dict(zip(q.keys(), [getattr(q, i) for i in q.keys]))
[17:35:45] <maksbotan> попробуй, менее костыльно
[17:37:19] <youshi> угу. только надо это для каждого элемента списка применить
[17:38:08] <youshi> попробуем что-нить придумать. а не получится - придумаем что-нить другое
[17:39:39] <krigstask> В 2.7/3.1 есть словарные включения
[17:40:56] <maksbotan> ого
[17:41:03] <maksbotan> кинь ссылку на доку
[17:43:52] <maksbotan> хм, а можно вообще dict([(i, gettattr(q, i) for i in q,keys()])
[17:43:55] <krigstask> google://dictionary+comprehensions
[17:44:24] <maksbotan> ух ты
[17:44:29] <krigstask> И вообще WhatsNew читать полезно
[17:44:55] <maksbotan> ясно
[17:45:05] maksbotan ушел на концерт Nazareth
[17:45:09] maksbotan вышел(а) из комнаты
[19:27:11] youshi вышел(а) из комнаты
[20:32:38] krigstask вышел(а) из комнаты
[22:16:25] krigstask вошёл(а) в комнату
[23:12:20] maksbotan вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!