Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2012 02:32:50

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

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

Вроде бы питон - друг системного администратора, и сетевые средства должны быть искаропки, но они больше напоминают китайский швейцарский нож, который вроде бы как настоящий, но половина - из латуни и ломается при первой попытке это использовать.

Ни один модуль не работает с проксями или позволяет их прикрутить без грубого нарушения правил архитектуры (манкипатчинга).

http модули:

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

poplib/imaplib не питонические, какой-то полусишный обгрызок с многоуровневой структурой данных, которую хрен запомнишь и кодами возврата вместо ислючений. По удобству ненамного ушли от прямой работы с сокетом.

Почему бы не принимать файлобьект вместо адреса? Тогда можно было бы и прокси подключить без лишнего геморроя, и логгинг запросов сделать (для чего иначе нужны не очень удобные внешние средства, а в случае с ssl задача вообще нетривиальная).



Офлайн

#2 Май 31, 2012 09:51:46

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

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

Так в любом языке, по-моему. Сторонние библиотеки и появляются только потому, что не устраивают встроенные средства языка. И это нормально. “Есть единственный способ сделать что-то” думаю не об этой проблеме. Enjoy :)



Офлайн

#3 Май 31, 2012 10:03:21

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

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

Во-первых, многое из сказанного не соответствует действительности.
Во-вторых, к чему вообще этот вброс? Не нравится, используйте сторонние модули. Если и они не устраивают - напишите свое, а в идеале хорошо задокументируйте и выложите для всех.

Стандартная библиотека писалась давно, и так просто, из-за всех хотелок, каждый месяц ее не пообновляешь (как requests, например).

Офлайн

#4 Май 31, 2012 12:50:42

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

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

reclosedev
Во-первых, многое из сказанного не соответствует действительности.

Не подкармливай его.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Май 31, 2012 17:12:48

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

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

reclosedev
Во-первых, многое из сказанного не соответствует действительности.
Что именно? Поправлю - прокси в http относилось к socks и http connect.

reclosedev
Во-вторых, к чему вообще этот вброс?
БАБАХ!

reclosedev
Если и они не устраивают - напишите свое, а в идеале хорошо задокументируйте и выложите для всех.
А как же “there is only one way to do it”? И почему я должен обязательно что-то пилить и потом этим с кем-то делиться?

От того, что каждый варит свой супчик, получается, что есть куча модулей, которые надо попробовать и в процессе выяснить, что один не поддерживает прокси, во втором нет чего-то очевидного. Комьюнити распыляет усилия. Если консолидировать усилия, можно было бы получить что-то стандартное и удобное.

Soteric
Так в любом языке, по-моему. Сторонние библиотеки и появляются только потому, что не устраивают встроенные средства языка. И это нормально. “Есть единственный способ сделать что-то” думаю не об этой проблеме. Enjoy :)
… your aids?
Хорошо, но почему http библиотек аж 3, и все УГ?

reclosedev
Стандартная библиотека писалась давно, и так просто, из-за всех хотелок, каждый месяц ее не пообновляешь (как requests, например).
И она с тех пор не обновлялась?



Офлайн

#6 Май 31, 2012 17:40:21

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

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

asilyator
И почему я должен обязательно что-то пилить и потом этим с кем-то делиться?
this
asilyator
Если консолидировать усилия, можно было бы получить что-то стандартное и удобное.

Офлайн

#7 Май 31, 2012 18:53:12

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

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

reclosedev
this
this - это когда, например, обьединят requests с grab и добавят туда тредпул. И какое я имею к этому отношение?

Короче советов кроме как “сделать все самому и подарить другим” у тебя нет?

Почему на вопросы о продуктах майкрософт никто не отвечает “найди решение и отправь его в майкрософт”?



Отредактировано asilyator (Май 31, 2012 18:56:36)

Офлайн

#8 Май 31, 2012 20:01:11

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

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

Ясно.

asilyator
Почему бы не принимать файлобьект вместо адреса? Тогда можно было бы и прокси подключить без лишнего геморроя, и логгинг запросов сделать
А подробнее или код?

Офлайн

#9 Май 31, 2012 20:20:03

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

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

fo = Socks.connect(host, port)
fo = logger_wrap(fo)
imap = imap.IMAP(fileobj=fo)



Офлайн

#10 Май 31, 2012 21:40:12

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

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

Думал вы про HTTP, или про него тоже?
С IMAP ясно, соединились и шлем запросы.
Кстати, тут: http://stackoverflow.com/questions/3386724/python-how-can-i-fetch-emails-via-pop-or-imap-through-a-proxy
наследуются от IMAP4 и переопределив один метод получают SocksIMAP4.

С логированием непонятно. Получается будет весь сетевой обмен в лог попадать?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version