Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2012 22:42:58

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

reclosedev
Думал вы про HTTP, или про него тоже?
Это относится ко всем.

reclosedev
Кстати, тут: http://stackoverflow.com/questions/3386724/python-how-can-i-fetch-emails-via-pop-or-imap-through-a-proxy
наследуются от IMAP4 и переопределив один метод получают SocksIMAP4.
Видел. Предлагают два решения: одно - совсем УГ (перезапись глобальной переменной), второе - чуть менее (наследование, но имена переменных - приватные, хоть они так и не обозначены, что если их переименуют или поменяют логику?). Решение с передачей по цепочке файлобьекта свободно от каких-либо сторонних эффектов.

reclosedev
С логированием непонятно. Получается будет весь сетевой обмен в лог попадать?
Это как логгер решит. Можно одни заголовки.



Офлайн

#2 Июнь 3, 2012 11:53:08

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

asilyator
какие ещё приватные переменные? Какую логику поменяют? socksipy уже с 2007 года не обновляется.
решил на новую тему потроллить?

пиши в python-dev, там тебя с радостью послушают и примут твои новаторские мега идеи В)

Офлайн

#3 Июнь 3, 2012 23:18:14

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

Slavonic, прочел бы топик до конца, в чем именно изменяются переменные. И речь шла о том, что решение не без побочных эффектов.

Могу выслать мазь против бугурта, или не читай топики, где критикуется что-то в питоне - тебе вредно.


Читая твой пост, создается впечатление, что питонистам архитектура программного обеспечения нинужна.



Отредактировано asilyator (Июнь 13, 2012 12:24:22)

Офлайн

#4 Июнь 4, 2012 00:40:16

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

asilyator
разберёшься что такое приватный метод и monkey patching, тогда уже поговорим об архитектурах …

Офлайн

#5 Июнь 4, 2012 00:52:10

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

А где тут упоминался приватный метод? А изменение глобальной переменной (socket.socket) - это и есть monkey patching.



Офлайн

#6 Июнь 11, 2012 15:01:50

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Почему встроенные модули такое УГ?

http модули:
Низкоуровневые. Работу с куками и сессии приходится прикручивать сбоку. Вызовы хрен запомнишь.
Обертки. Есть гораздо более удобный requests, но он базируется на httplib и тоже с проксями не дружит. Есть несколько приемлемых высокоуровневых модулей, но они разные и не включены в стандартную библиотеку. Т.е. перед тем как просто написать код, надо написать его со встроенной библиотекой (которых аж 3 штуки - а нафига?), блевануть, пойти искать библиотеки, попробовать пару самописных оберток, упереться в их границы, плюнуть на них, лазить по малочисленным постам на эту тему, скачать пару библиотек, перепробовать их все, натыкаясь на грабли и в конце концов выбрать себе что-то более-менее работающее. И это всего лишь для того, чтобы написать простую последовательность запросов с сессией так, чтобы свой код не вызывал отвращения. А как же “there is only one way to do it”?
Запустить запросы в тредпуле через прокси одним вызовом - это ниибатсо хайлевел.
httplib не умеет проверять сертификаты - а нахрена тогда ssl вообще сдался?

Попробуйте Grab: http://grablib.org

Офлайн

#7 Июнь 14, 2012 09:34:15

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

А как сделать в грабе несколько запросов в тредпуле?



Офлайн

#8 Июнь 14, 2012 10:29:40

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Почему встроенные модули такое УГ?

Примерно так:

    from grab import Grab
    from grab.tools.work import make_work
    def worker(url):
        g = Grab()
        g.go(url)
        return url, g
    urls = ['http://yandex.ru'] * 100
    for requested_url, g in make_work(worker, urls, 10):
        print requested_url, g.response.body

Пишу по памяти, может что забыл. Проверки ошибок в примере нету. Не обязательно юзать grab make_work просто в его комплекте идёт.

Отредактировано lorien (Июнь 14, 2012 10:30:40)

Офлайн

#9 Июнь 14, 2012 10:36:02

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Почему встроенные модули такое УГ?

А лимиты на сайт и вообще есть?



Офлайн

#10 Июнь 14, 2012 12:03:33

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Почему встроенные модули такое УГ?

> А лимиты на сайт и вообще есть?
не понял

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version