Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Запуск курса по asyncio

Блог компании KTS Python *Учебный процесс в IT

В понедельник, 18 октября, стартует новый курс школы Metaclass, посвященный asyncio. 

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

А в этот четверг, 14 октября, мы проведем вебинар про курс, на котором преподаватели ответят на вопросы по программе и разыграют бесплатное место на продвинутый трек курса.

Записаться на вебинар можно по ссылке, всех ждем!

Посмотреть, что будет на курсе
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 1.2K
Комментарии 0

Примеры использования asyncio: HTTPServer?!

Разработка веб-сайтов *Python *Программирование *
Не так давно зарелизилась новая версия Python 3.4 в changelog которой вошло много «вкусностей». Одна из таких — модуль asyncio, содержащий инфраструктуру пригодную для написания асинхронных сетевых приложений. Благодаря концепции сопрограмм (coroutines), код асинхронного приложения прост для понимания и поддержки.

В статье на примере простого TCP (Echo) сервера я постараюсь показать с чем едят asyncio, и рискну устранить «фатальный недостаток» этого модуля, а именно отсутствие реализации асинхронного HTTP сервера.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Просмотры 46K
Комментарии 9

Работа с ZeroMQ и PostgreSQL в asyncio

Python *
Наверное, все уже слышали о чудесной библиотеке asyncio?

Если нет, то коротко: эта либа стала стандартом на асинхронное сетевое программирование на Python. tornado и twisted или научатся с ней работать или постепенно уйдут в маргиналы.

asyncio прекрасна, но это просто библиотека для работы с TCP, UDP, UNIX сокетами, PIPES и асинхронным запуском subprocess.

Чтобы всем было здорово нужны сторонние библиотеки, умеющие работать с asyncio. Кое-что уже есть, но мало.

Вот я с коллегами и сделал пару: одну для ZeroMQ и другую для PostgreSQL

Если вы прочно сидите на Python 2 и не интересуетесь Python 3 — не ходите под кат во избежание глупых вопросов и прочих недоразумений.
Читать дальше →
Всего голосов 37: ↑37 и ↓0 +37
Просмотры 14K
Комментарии 36

Окружение для разработки на aiorest (asyncio) + angular.js

Python *Angular *
Tutorial
В этой статье мы соберём вместе aiorest + jinja2 + angular.js + gulp.js + bower.js + nginx. В результате мы получим:
  • авто-перезапуск сервера при изменении python-кода и jinja-шаблонов
  • сборка, минификация и автоматическая пересборка при изменении клиентского js-кода
Начнём с главного — как пользоваться, а затем я подробнее опишу некоторые моменты реализации. Если вам легче читать код — вот ссылка на репу.

Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 6.1K
Комментарии 6

Python реализация парадигмы event-driven с помощью сопрограмм

Python *Алгоритмы *Параллельное программирование *
Статья про то, как с помощью расширенных генераторов Python сделать собственную реализацию сопрограмм, переключающихся по получению событий. Простота кода получившегося модуля вас приятно удивит и прояснит новые и мало используемые возможности языка, которые можно получить, используя такие генераторы. Статья поможет разобраться и с тем, как это устроено в серьезных реализациях: asyncio, tornado, etc.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры 46K
Комментарии 17

Многопользовательский онлайн-шутер на WebGL и asyncio, часть вторая

Python *JavaScript *NoSQL *HTML *WebGL *

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

Введение
1. Структура игры
2. Импорт моделей и blender
3. Подгрузка моделей в игре с babylon.js и сами модели
4. Передвижения, миникарта и звуки игры в babylon.js
5. Вебсокеты и синхронизация игры
6. Игроки и их координация
7. Балансировка игроков по комнатам и объектный питон
8. Asyncio и генерация поведения бота
9. Nginx и проксирование сокетов
10. Асинхронное кэширование через memcache
11. Послесловие и RoadMap

Всех кому интересна тема асинхронных приложений в Python3, WebGL и просто игр, прошу под кат.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 22K
Комментарии 5

Асинхронная работа с Tarantool на Python

Блог компании VK Высокая производительность *Python *NoSQL *Tarantool *
На Хабре уже есть статьи о NoSQL СУБД Tarantool и о том, как его используют в Mail.Ru Group (и не только). Однако нет рецептов того, как работать с Tarantool на Python. В своей статье я хочу рассказать о том, как мы готовим Tarantool Python в своих проектах, какие проблемы и сложности при этом возникают, плюсы, минусы, подводные камни и, конечно же, «в чем фишка». Итак, обо всем по порядку.



Tarantool представляет собой Application Server для Lua. Он умеет хранить данные на диске, обеспечивает быстрый доступ к ним. Tarantool используется в задачах с большими потоками данных в единицу времени. Если говорить о цифрах, то это десятки и сотни тысяч операций в секунду. Например, в одном из моих проектов генерируется более 80 000 запросов в секунду (выборка, вставка, обновление, удаление), при этом нагрузка равномерно распределяется по 4 серверам с 12 инстансами Tarantool. Не все современные СУБД готовы работать с такими нагрузками. Кроме того, при таком количестве данных, очень дорого ожидание выполнения запроса, поэтому сами программы должны быстро переключаться от одной задачи к другой. Для эффективной и равномерной загрузки CPU сервера (всех его ядер) как раз нужен Tarantool и асинхронные приемы в программировании.
Читать дальше →
Всего голосов 46: ↑44 и ↓2 +42
Просмотры 23K
Комментарии 10

Python 3.5; async/await

Python *Программирование *Проектирование и рефакторинг *Алгоритмы *Параллельное программирование *
Тихо и незаметно (с), вышел Python версии 3.5! И, безусловно, одно из самых интересных нововведений релиза является новый синтаксис определения сопрограмм с помощью ключевых слов async/await, далее в статье об этом.

Поверхностный просмотр «PEP 0492 — Coroutines with async and await syntax» по началу оставил у меня вопрос «Зачем это надо». Сопрограммы удовлетворительно реализуются на расширенных генераторах и на первый взгляд может показаться, что все свелось к замене yield from на await, а декоратора, создающего сопрограмму на async. Сюда можно добавить и возникающее ощущение, что все это сделано исключительно для использования с модулем asyncio.

Но это, конечно же, не так, тема глубже и интереснее.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 186K
Комментарии 26

Асинхронный Python 3.5 и Mongodb

Python *NoSQL *MongoDB *
Перевод
Tutorial

Это достаточно вольный перевод статьи об основных новшествах асинхронного драйвера для mongodb используемого в tornado. Основной мотив, который послужил для написания этого перевода — новшества, появившиеся в этой версии, такие как поддержка asyncio, async, await и Python 3.5. Сама статья не сколько перечисление новшеств, сколько лаконичные примеры асинхронной работы с MongoDB.


Введение
asyncio
aggregate
Python 3.5
async and await

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 30K
Комментарии 22

Asyncio Tarantool Queue, вставай в очередь

Блог компании VK Python *Tarantool *


В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 18K
Комментарии 14

Moscow Python Meetup №34 (27 апреля)

Блог компании Rambler&Co Python *
27-го апреля мы вновь встречаемся в Rambler&Co на 34-й встрече MoscowPython:



На встрече мы услышим 4 доклада.

Их список под катом:
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 3.8K
Комментарии 2

Вышел uvloop — продвинутая реализация цикла событий для asyncio в Python

Высокая производительность *Python *
В стандартной библиотеке Python 3.4 в своё время появился модуль asyncio, позволивший удобно и быстро писать асинхронный код. А уже к Python 3.5 в синтаксис были добавлены конструкции async/await, окончательно оформившие асинхронность «из коробки» как красивую и гармоничную часть языка.



Хотя asyncio сам по себе и позволяет писать высоконагруженные веб-приложения, оптимизация производительности не была приоритетом при создании модуля.

Один из авторов упомянутого PEP-492 (async/await) Юрий Селиванов (на Хабре — 1st1, его твиттер) взялся за разработку альтернативной реализации цикла событий для asyncio — uvloop. Вчера вышла первая альфа-версия модуля, о чём автор написал развёрнутый пост.

Если вкратце, то uvloop работает примерно в 2 раза быстрее Node.js и практически не уступает программам на Go.
Под катом небольшая выжимка из записи в блоге
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 37K
Комментарии 60

Moscow Python Meetup №35 (23 мая, 19:00)

Блог компании Rambler&Co Python *
image

23-го мая мы вновь встречаемся на Мансарде в 19:00 на 35-й встрече MoscowPython:

На встрече мы услышим 3 доклада:

1. Павел Петлинский (Rambler&Co). Asyncio/Aiohttp — предел производительности.

«Смотрим как мерить, что мерить, какие накладные расходы и где нас обманули маркетологи.»

2. Антон Егоров (Островок). Докеризация приложений на Python:

«Контейнеры уже давно стали стандартом для доставки кода. Я расскажу о нашем опыте с Docker-ом в Островке и покажу практический пример создания образа для Django-приложения.»

3. Азамат Галимжанов, (ГдеМатериал, технический директор). Автоматизация интернет-знакомств.

Построение системы на основе django, python-rq, dlib, scikit-learn для обучения и предсказания рейтинга привлекательности лица на фотографии. Подключение к Tinder API.

Регистрация тут.

Приходите, будет интересно!
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 3.5K
Комментарии 4

PyCon 2016 в Портленде: видео всех значимых докладов и мастер-классов

Python *
image

Под словами PyCon чего только не проводится. От шумных конференций с билетами за N сотен долларов до бесплатных заседаний зимбабвийского клуба питонистов в количестве 2-х голодных темнокожих разработчиков.

Портлендский PyCon этого года — мероприятие крупного калибра с крутыми докладчиками и действительно ценной информацией. Тут были и простые развлекательные презентации на 30 минут о будущем Python, и мастер-классы по популярным темам типа масштабирования Flask и упаковки приложений в Docker, и хардкорные многочасовые занятия по статистике и машинному обучению.

Организаторы не поскупились, все качественно записали и уже выложили на официальный канал конференции.
Все на английском языке, но довольно понятном. Мимо такой кучи ценных знаний просто нельзя пройти мимо.

Несколько примечательных видео с комментами под катом
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 5.6K
Комментарии 4

Вышла asyncpg — клиентская библиотека PostgreSQL для Python/asyncio

Python *PostgreSQL *
На конференции EuroPython 2016 Юрий Селиванов (автор async/await-синтаксиса и автор uvloop) представил новую высокопроизводительную библиотеку для асинхронного доступа к PostgreSQL — asyncpg. Тесты демонстрируют в среднем в два раза большую скорость, чем у psycopg2 (и её асинхронного варианта — aiopg).


Причина высоких показателей в том, что asyncpg реализует бинарный протокол PostgreSQL нативно, без использования абстракций, вроде DB-API. Кроме того, это позволило получить простую в использовании реализацию:


Читать дальше →
Рейтинг 0
Просмотры 8.2K
Комментарии 2

Принципы реактивного программирования на примере простого RSS-агрегатора с использованием ReactiveX для Python

Python *
Из песочницы

В последние годы реактивное программирование в целом, а технология ReactiveX в частности, обретает всё большую популярность среди разработчиков. Одни уже активно используют все преимущества этого подхода, а другие только “что-то слышали”. Со своей стороны я постараюсь помочь вам представить, насколько некоторые концепции реактивного программирования способны изменить взгляд на привычные, казалось бы, вещи.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 20K
Комментарии 1

Учимся работать с asyncio+aiohttp: в Москве пройдет курс от Core-разработчика Python

Блог компании Positive Technologies Python *Программирование *


17 и 18 декабря в Москве пройдет двухдневный курс под названием «Обучение работе с asyncio+aiohttp». Его автор — core-разработчик Python, украинский программист Андрей Светлов (подробнее о нем можно почитать здесь). Андрей — один из ведущих мировых экспертов по Python и создатель авторского курса. Он никогда раньше не читал его в Москве, так что наше мероприятие — отличный шанс для всех, кто интересуется Python и асинхронной разработкой, получить новые знания и ответы на свои вопросы напрямую от создателя популярных инструментов.

Мы поговорили с Андреем о том, какие вопросы будут рассмотрены на курсе, кому он может быть полезен, и какие еще ресурсы Python-разработчикам следует изучить, чтобы повысить свой уровень.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 8.7K
Комментарии 12

Миллион строк в секунду из Postgres с помощью Python

Python *PostgreSQL *
Из песочницы
image

asyncpg — новая Python open-source библиотека для работы с PostgreSQL. Она была написана с использованием asyncio и Python 3.5. asyncpg — самый быстрый драйвер для работы с PostgreSQL среди похожих реализаций на Python, NodeJS и Go.

Почему asyncpg?


Мы создаем EdgeDB — базу данных нового поколения, с PostgreSQL на бэкенде. Нам необходима высокая производительность, низкая задержка доступа и дополнительные возможности самого PostgreSQL.

Самый очевидный вариант – использовать psycopg2 — популярнейший драйвер Python для работы с PostgreSQL. У него отличное комьюнити, он стабильный и проверенный временем. Также есть aiopg, который реализует асинхронный интерфейс, поверх psycopg2. Тогда очевиден вопрос — зачем писать свой велосипед? Короткий ответ: производительность и поддержка возможностей PostgreSQL. Ниже мы рассмотрим это более детально.
Читать дальше →
Всего голосов 37: ↑37 и ↓0 +37
Просмотры 38K
Комментарии 12

Telegram-бот, webhook и 50 строк кода

Python *Программирование *
Recovery mode
Tutorial
Как, опять? Ещё один туториал, пережёвывающий официальную документацию от Telegram, подумали вы? Да, но нет! Это скорее рассуждения на тему того, как построить функциональный бот-сервис используя Python3.5+, asyncio и aiohttp. Тем интереснее, что заголовок на самом деле лукавит…
Читать дальше →
Всего голосов 31: ↑21 и ↓10 +11
Просмотры 132K
Комментарии 19