IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
консультируем про IT, Python


Новый материал в ленте
  Sphinx - 7.3.6

Python генератор документации. Скачать можно по ссылке: https://pypi.python.org/pypi/Sphinx/


Python Дайджест. Выпуск 99

(09.11.2015 - 15.11.2015)

поделиться выпуском 
pythondigest.ru: Выпуск 99

Конференции, события, встречи разработчиков

  PyNSK #4 — четвертая встреча Новосибирского Python сообщества

Прошел месяц с прошлой встречи и вот, организуем новые посиделки для любителей Python в Новосибирске. 15-го ноября (воскресенье) состоится четвертая встреча. Она пройдет в анти-кафе «Самовар» и начнется 13-00. На встрече вас ждет море общения и 3 доклада

Статьи

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

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

  Использование библиотеки Matplotlib. Как рисовать линии и геометрические фигуры на графике

Matplotlib позволяет рисовать на графиках различные геометрические фигуры, стрелки, а также линии, заданные различными способами. В этой статье будут рассмотрены основные моменты, характерные для рисования различных геометрических фигур. В качестве примера будет рассматриваться скрипт, который рисует следующую картинку:

  Некоторые репозитории в помощь изучающим и преподающим Python и машинное обучение

Я Юрий Кашницкий, раньше делал здесь обзор некоторых MOOC по компьютерным наукам и искал «выбросы» среди моделей Playboy.

Сейчас я преподаю Python и машинное обучение на факультете компьютерных наук НИУ ВШЭ и в онлайн-курсе сообщества по анализу данных MLClass, а также машинное обучение и анализ больших данных в школе данных одного из российских телеком-операторов. 

Почему бы воскресным вечером не поделиться с сообществом материалами по Python и обзором репозиториев по машинному обучению… В первой части будет описание репозитория GitHub с тетрадками IPython по программированию на языке Python. Во второй — пример материала курса «Машинное обучение с помощью Python». В третьей части покажу один из трюков, применяемый участниками соревнований Kaggle, конкретно, Станиславом Семеновым (4 место в текущем мировом рейтинге Kaggle). Наконец, сделаю обзор попавшихся мне классных репозиториев GitHub по программированию, анализу данных и машинному обучению на Python.

  Подсчет элементов в Python: история

Иногда питоновский путь решения проблем со временем меняется. Например, подсчет элементов. В статье будет рассмотрено несколько способов подсчета элементов в списке и как в связи с этим менялся Pythonic-way. О производительности задумаемся позже

  Настраиваем Flask Response Class

Знали что класс Response в Flask можно переоределить? А что эта операция вполне стандартна? И можно все преобразования ответа не дубликовать от функции к функции, а записать все в одном классе? Тогда эта статья будет интересна

from flask import Flask, Response
 
class MyResponse(Response):
    pass
 
app = Flask(__name__)
app.response_class = MyResponse

  uvloop -- альтернатива стандартному asyncio loop

В последнее время Юра Селиванов (ага, тот самый автор PEP-492 aka async/await и MagicPython) работал над тем чтобы сделать asyncio побыстрее.

Он взял libuv и построил с её помощью uvloop -- asyncio совместимый event loop.

Результаты замера производительности здесь.

Получается, что uvloop в 3.5 раза быстрее стандартного и в 1.25 раза обгоняет gevent.
Т.е. абсолютный победитель по скорости в мире Python.

Библиотека пока еще не имеет стабильной версии, скоро всё будет.

  Бюджетная рассылка СМС

Один из двух примеров работающих на raspberry pi, модуле SIM 900 и 3g-modem huawei e-линейки - с примерами кода на Python

  Создаем интерактивный Dashboard на Jupyter

Это вторая часть из цикла статей "Advanced Jupyter Notebook Tricks."  В этой статье вы познакомитесь с возможностью Jupyter как создание интерактивных виджетов.

  Играем в Pacman c помощью жестов: Python+OpenCV

Статья описывает как реализовать обработку жестов на Python. В качестве примера была выбрана игра Pacman. Автор с помощью жестов поиграл в нее

  Сигнализируем о проходе МКС с помощью Redis-Queue и Twilio Copilot

Статья описывает пример использования Twillo для оповещения о событиях. В качестве события выбран проход МКС над пользователем.

  Тестируем Django используя RAM (оперативную память)

Статья описывает возможность использовать RAM в качестве хранилища для базы данных PostgreSQL. Что в свою очередь повышает скорость тестирования

  Простой консольный мессенджер для VK на Python

Как-то меня осенила мысль: «Зачем на работе постоянно прятать вкладку браузера с ВК от начальства, если можно ее замаскировать?»

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

Учебные материалы

  Python Playground: Geeky Projects for the Curious Programmer

Python Playground представляет собой сборник задач, проектов, которые будут вдохновлять вас использовать Python, чтобы создавать музыку, имитацию реальных явлений, а также взаимодействовать с аппаратным вроде Arduino и Raspberry Pi. Вы узнаете, как использовать общеизвестные библиотеки, такие как NumPy, Matplotlib и Pygame

  Django: практика создания Web-сайтов на Python

Вышла этой осенью новенькая книга "Django: практика создания Web-сайтов на Python" - Дронов Владимир

Колонка автора

  Математика в Python: Преобразование фурье

Осторожно, МАТАН!!!

По-простому, преобразование Фурье — разложение некоторого сигнала на гармонические (синусы или косинусы) колебания (спектр). 

Если вы осознанно употребляете слово "частота", вы уже хотя бы интуитивно представляете, что такое преобразование Фурье. Даже в наших ушах есть хардверный анализатор Фурье (улитка) (а также продвинутые драйвера в мозгу), благодаря которому мы различаем голоса, ноты, тембры... 

  Железный Python: Одноплатные компьютеры

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

Одноплатные компьютеры хорошо подходят для решения типовых задач, таких как:

- Медиа-центр для LCD-телевизора с поддержкой торрентов и видео из социальных сетей;
- Устройство для сбора данных датчиков по Ethernet;
- Выделенный веб-сервер, FTP или VPN-сервера;
- Сервер управления «умным домом»;
- Охранную систему с распознаванием лиц;
- Робота с компьютерным зрением;
- Недорогой бюджетный образовательный компьютер;

Интересные проекты, инструменты, библиотеки

  pipdeptree - рисуем дерево зависимостей для всех модулей

Модуль позволяет преобразовать вывод pip freeze в виде дерева зависимостей: 

$ pipdeptree
Warning!!! Possible confusing dependencies found:
* Mako==0.9.1 -> MarkupSafe [required: >=0.9.2, installed: 0.18]
  Jinja2==2.7.2 -> MarkupSafe [installed: 0.18]
------------------------------------------------------------------------
Lookupy==0.1
wsgiref==0.1.2
argparse==1.2.1
psycopg2==2.5.2
Flask-Script==0.6.6
  - Flask [installed: 0.10.1]
    - Werkzeug [required: >=0.7, installed: 0.9.4]
    - Jinja2 [required: >=2.4, installed: 2.7.2]
      - MarkupSafe [installed: 0.18]
    - itsdangerous [required: >=0.21, installed: 0.23]
alembic==0.6.2
  - SQLAlchemy [required: >=0.7.3, installed: 0.9.1]
  - Mako [installed: 0.9.1]
    - MarkupSafe [required: >=0.9.2, installed: 0.18]
ipython==2.0.0
slugify==0.0.1
redis==2.9.1

  pythran - конвертер Python в С++

Ускорение Python кода можно делать разными способами.

Для начала нужно определить какие куски кода наиболее тормозят. Для этого потребуется собрать статистику с помощью PyCharm или APM инструментов (например через Sentry). Вероятнее, "тормоза" будут связаны с базой данных или с не оптимальным алгоритмом. Если с кодом и алгоритм оптимален, то можно посмотреть на инструменты

  • Cython - и небольшую часть кода перевести на него
  • pythran - и конвертировать код в C++

Мы предоставляем консультации по оптимизации Python кода - обращайтесь в https://t.me/axsapronov. Подскажем как провести анализ кода, подскажем как оптимизировать

  tredify - визуализируем 2д и 3д данные из JSON

[
    {
        "DIRECTION": "y"
    },
    {
        "xs": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],
        "ys": [
            0.13637986,
            0.81848763,
            0.94809069,
            0.81352269,
            0.94943976,
            0.33354841,
            0.14769246,
            0.66518745,
            0.6922248,
            0.47103811,
            0.03248075,
            0.30346144,
            0.00491906,
            0.1544151,
            0.4929639,
            0.33019535,
            0.76123614,
            0.97240316,
            0.89122254,
            0.0263647
        ],
        "zs": 30
    }
]

  django-image-renderer - отображаем картинки в любом размере

{% load renderer %}
...
{% rendition master 42 42 %}
...

  paasta - распределенная платформа как сервис

paasta - это набор инструментов для написания, построения, деплоя, мониторинга проекта. Используется множество сторонних проектов, типа docker

  mps-youtube - проигрыватель YouTube в консоли

mps-youtube - позволяет проигрывать видео и музыку с Youtube. Также есть возможность скачать необходимый ролик

  Empire of Code

Новая игра-стратегия для программистов, в которую можно просто играть, а можно и решать задачи, развивая свой скилл. В игре 2 клана: Python и Java Script, давайте покажем, что наш клан лучше. Результаты и рейтинг кланов можно смотреть в Leader board

  AndroBugs_Framework - ищем баги в андройд приложениях

AndroBugs_Framework - это фреймворк (набор утилит в данном случае), который позволяет находить уязвимости в андройд приложениях. Можно использововать для отладки приложений.

  xkcd-dl - загружаем все комиксы с xkcd-dl

Это консольная утилита, которая позволяет работать с комиксами xkcd. Демо:

Usage

  toasyncio - Tornado+asyncio - вместе мы сила

Библиотека позволяет смешивать вызовы coroutine от tornado и asyncio в едином стиле. Также добавляет обработчики для тестирования в стиле Tornado. Только если вы пишите асинхронный WEB на python 3.4 или выше.