Посты с тегом python (37)

Продвинутое использование Celery

В начале октября Яндекс проводил Python Party в Киеве. Это формат мини-конференций с полноценными докладами и неформальным общеменим. Мой доклад был про опыт использования Celery. Рассказать удалось далеко не всё, но, кажется, у меня получилось донести нескоклько важных концепций.


Последние годы я регулярно бываю в Киеве на конференциях. Очень рад, что, несмотря ни на что, в этом году тоже удалось приехать. Я уверен, никакие внешние обстоятельства не должны мешать общению увлеченных людей и распространению знаний.


Видео:


Слайды:

Спасибо всем кто пришел и команде Яндекс Events, который всё это организовали.

Препарирование работы асинхронного кода. PyCon Ru 2013

В Екатеринбурге прошел первый наш отечественный PyCon. Я там выступил с докладом.

Вот, подоспело видео:

Слайды:

Кажется, я был в огне и получилось не плохо. Тема очень обширная и интересная – надеюсь на продолжение.

Спасибо всем организаторам этой замечательной конференции и родной компании, которая меня туда отправила в составе большой приятной делигации.

Сервер приложений

Всё чаще стал себя ловить на мысли, что нам в питонячей вселенной не хватает классического сервера приложений.

От него хочется совершенно банальных вещей:

  • Менеджмента конфигураций
  • Абстракции над хранением данных
  • Возможности легкого добавления точек входа и компонентов
  • Инфраструктуры для отложенного выполнения задач
  • Каких-то батареек типа библиотеки с хелперами
  • Простой интеграции с другими системами
  • Предсказуемых внутренних процессов и возможности на них влиять (явная и контролируемая инициализация например)

Самое интересное, что почти всё это есть как отдельные компонеты, но нет среды которая могла бы их объединить или предложить своё комплексное решение. При этом, конечно, этот сервер должен быть достаточно легким и не давить своим весом на пугливые умы опытных разработчиков.

Эта ситуация мне очень что-то напоминает. Да, это похоже на мир веб-фреймворков. Они, зачастую, как раз закрывают эту нишу. Я уже не один раз приходил к выводу, что проще продолжать использовать веб-фрейморк даже в тех задачах, где нет непосредственой вебной составляющей. Тем более, если он уже применяется и его окружение уже содержит нужный контектс для функционирования других компонентов.

Кажется, что отсутствие такого сервера приложений не продлится вечно и через какое-то время появится новый интересный игрок в этой нише. И как всегда, приходится бить себя по рукам, чтобы не ввязаться в его написание «на ...

DevConf::Python() 2010

Какие у вас планы на 17-18ое мая этого года? Пока не знаете? Тогда я могу вам предложить интересное занятие на эти дни.

В означенные дни в Москве пройдет первая российская конференция DevConf, которая соберет множество веб-разработчиков из различных "вселенных".

Среди прочих вселенных (секций), там будет своя, отдельная, уютная и посвященная Python. Не знаю как вы, а я о чем-то подобном уже давно мечтал.

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

Поверьте, такие мероприятия проходят не часто и если вы хотите быть в курсе последних трендов в Python мире, то оно того стоит чтобы поучаствовать.

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

Call to arms!

Чем ходить по http?

Как оказалось в питоне нет однозначно подходящего варианта. Всего-то хочется удобно дергать какие-то API и иногда стягивать файлы.

Есть несколько библиотек, многие из которых друг друга используют и заимствуют функционал. Но вот чего-то одного, удовлетворяющего достаточно простым (ведь так?) требованиями, нет.

Требования же эти такие:

  • поддержка http/https
  • возможность использовать любые http verb
  • возможность отослать body запроса с произвольным Content-Type
  • поддержание коннекта между запросами (keep-alive)
  • работа с куками
  • стандартная аутентификация
  • file-like интерфейс к body ответа
  • кеширование
  • conditional get
  • обработка низкоуровневых ошибок и оборачивание их в какой-то дженериковый HTTPError и наследников.
  • возможность добавить в конвейер запроса хуки, чтобы можно было какие-то действия производить с отсылаемыми данными, либо результатом.
  • возможность задать таймаут хотя бы для соединения

Ну и пара экзотических хотелок:

  • поддержка http pipelinening
  • возможность делать запросы асинхронно

Ведь не невозможного хочется. Но что мы имеем.

httplib

По сути основа всех питонячих "ходилок" по http. Находится в стандартной библиотеке. Главная особенность -- позволяет присоединиться к http серверу и делать запроса к его урлам в рамках одного соединения.

connection = httplib.HTTPConnection('example.com')
result = connection.request('GET', '/foo')
# ...
result = connection.request('GET', '/bar')
# ...
connection.close()

Возвращает file-like объект и с недавних пор позволяет задать таймаут для соединения. Тут фичи заканчиваются и мы остаемся наедине ...