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

Собрали в одном месте самые важные ссылки
читайте авторский блог


Новый материал в ленте
  coverage - 7.6.10

Утилита позволяющая измерить процент покрытия тестами. Скачать можно по ссылке: https://pypi.python.org/pypi/coverage/


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

(19.10.2015 - 25.10.2015)

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

Статьи

  Как подружить AWS Lambda и PostgreSQL

С недавних пор в сервисе AWS Lambda появилась нативная поддержка Python 2.7. Для тех, кто не в курсе, что такое AWS Lambda, отсылаю к статье на хабре. Основное преимущество использования сервиса — создание масштабируемой беcсерверной архитектуры. В данной статье я расскажу о способе подружить AWS Lambda и PostgreSQL.

 

  Введение в машинное обучение на Python

В туториале вы найдете базовые основы машинного обучения, небольшие примеры, термины 

  PYCON RUSSIA-2015: видео и презентации докладов

18-19 сентября в Екатеринбурге прошла третья международная конференция python-разработчиков PyCon Russia. 21 доклад, два мастер-класса, Lightning Talks — все это PyCon-2015. Под катом — отчет о прошедшей конференции, много видео и презентации докладов. Питонисты собрались из 25 городов, среди которых: Сан-Франциско, Париж, Прага, Бонн, Таллин, Минск, Киев, Москва, Санкт-Петербург, Казань, Уфа 

  10 приложений для изучения Python на Android-устройствах

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

В процессе изучения языка программирования, в частности Python, я считаю, что нужна погружаться в него полностью. Лозунг: «Ни дня без кода!» я дополняю, ну если ни кодить, то хотя бы почитать об этом. Для того чтобы не выходить из ритма в условиях, когда нужно в жизни сделать многое, но некогда, а хотелось бы учить Python, мобильный приложения помогут не тратить зря время в транспорте, во время ожиданий и т.д.Предлагаю список приложений из Google Play для изучения Python на Android-устройствах, которые помогут не только получить знания, но и проверить свой уровень по Python.Три из ниже перечисленных приложений я обязательно советую студентам при изучении Python: Learn Python, Quiz&Learn Python и Python Challenge. Ну теперь подробнее.

  Проигрываем список WAV файлов с помощью PyAudio

В статье вы найдете полный код для проигрывания WAV файлов на Python

  Поиск картинок-дубликатов Python

Статья описывает алгоритм поиска дубликатов среди картинок. Там же вы сможете найти рабочий код.

  Генерация тестов

При тестировании приложения постоянно надо придумывать граничные условия и на них проверять. Но такой подход ресурсо-затратный. В этой статье вы найдете пример генерации тестов в автоматическом режиме.

  Python объекты и классы - наглядное руководство

В посте вы найдете руководства по методам и классам. Узнаете почему же Python это ОО язык

  Анализ обложек Time за 91 года

В посте вы найдете анализ обложек журнала Time на предмет поиска зависимостей и закономерностей

  Модуль SymPy. Пример символьных вычислений.

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

  Celery: лучшие практики

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

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

  Сервис для системного администратора. Часть 1

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

  Андрей Светлов — MagicPython -- Syntax Highlighter для SublimeText

Мой приятель Юра Селиванов попросил написать рекламный пост о его новом проекте MagicPython.

Это syntax highlighter для Sublime Text и Atom, который поддерживает все новые языковые конструкции Python 3.5 (async def и await например) плюс type annotations, string formatting и регулярные выражения.

Sublime поддерживает Python из коробки, но с Python 3 (а особенно с Python 3.5) у него проблемы. MagicPython понимает всё.
Разметка шаблонов для форматирования строк и регулярок заслуживает отдельного упоминания -- выглядит прекрасно и заметно облегчает жизнь.

  Создание .exe файла для авторизации и взаимодействия с VK API при помощи Python

 

В этой статье будет рассмотрен способ создать .exe файл, позволяющий пройти авторизацию ВК и выполнить определенные запросы к VK API. Установка Python не требуется.
 

Системные требования

 

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

  Синтаксис Python: переменная __all__

Вы наверное слышали фразу "wild import - зло". В коде это выглядит так

from my_super_module import *

Ответ почему это "зло" очень простой - вы импортируете всё - то что надо и то что не надо. А значит вы можете смело перегрузить какой-то метод. Как же быть? Можно импортировать только нужные переменные и функции/классы, что является правильным подходом. Но ведь должен быть альтернативный вариант.

  Синтаксис Python: слайсы/срезы

Синтаксис Python легкий, читаемый. Хочется упомянуть массивы (как структура с последовательными элементами). В Python они бывают разные - list, tuple, строки Операции с массивами:

  • Получить копию
  • Получить первые/последние N элементов
  • Получить N элементом с позиции M
  • Получить каждый N элемент
  • Развернуть

  Математика в Python: Матрицы в NumPy

Списки - встроенный тип Python, могут содержать любые элементы: целые, дробные числа, строки, объекты. Это великая сила Python, но в то же время и слабость — в отношении скорости работы. В стандартные дистрибутивы Python входит модуль array, реализующий аналог массивов C/C++, он может пригодиться для простейших расчётов с многомерными массивами, матрицами. NumPy — мощнейшая библиотека для научных вычислений. Написать здесь операции с матрицами так же просто, как и с обычными числами. Матрица в NumPy — это объект numpy.array, массив чисел одного типа, какой угодно размерности: 0 (одно число, скаляр), 1 (вектор), 2 (матрица), 3 (тензор третьего ранга)...

  Таинство стандартной библиотеки: timeit - измерим время работы!

Представим мы придумали алгоритм, на пальцах оценили его быстродействие, закодили и получили медленно работающий софт. Что делать? куда бежать? С чего стоит начать? Да сначала стоит измерить сколько ресурсов (память, время, проц) кушает ваш софт. Уже имея числа на руках можно думать дальше. Для измерения временных затрат для вашего кода можно воспользоваться библиотекой timeit. А другие ресурсы измерим в след. раз. Она позволяет измерить время работы куска кода программы:

  Таинство стандартной библиотеки: .pyi файлы - python stubs

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

Появился модуль typing, который в 3.5 есть по умолчанию, а начиная с 3.2 можно установить с PyPi Но что делать с кодом на 2.7? Хочется же больше ошибок вылавливать. Здесь на пользу приходят python stubs - .pyiфайлы.

  Учебные материалы: познаем Django

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

  Учебные материалы: Что нового в Python 3.5

Когда полезны аннотации типов? Станет ли асинхронное программирование обычной практикой с новыми async-await? Устроим обсуждение этих и других новинок Python 3.5. Все это вы сможете узнаете в докладе Андрея Власовских

https://www.youtube.com/watch?v=2GuTQwBYsgI

  Таинство стандартной библиотеки: zipimport - импортируем код из zip файлов

Еще в далеком Python 2.3 был добавлен модуль zipimport. Этот модуль упростил возможность импорта изzip файлов:

  Интересные концепции: утиная типизация

Слышали фразу: "Если что-то выглядит как утка, плавает как утка и крякает как утка, то, вероятно, это утка"? Эта поговорка характеризует утиную типизацию == утипизацию

Смысл утиной типизации заключается в ослаблении типов. Вместо того чтобы заботиться о точном классе объекта мы заботимся о том какие методы для него можно вызвать и какие операции над ним можно выполнять. Таким образом, обычным делом становится просто передать объект методу, зная, что при неправильном использовании будет выброшено исключение (exception).

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

  MagicPython - подсветка синтаксиса для Sublime Text and Atom.

Плагин для редакторов, который подсвечивает синтаксис Python. Поддерживаются самые свежие фичи языка.

  whatsappcli - управляем сервером из Whatsapp

Проект позволяет управлять вашим Unix сервером прям из чата Whatsapp

  torrentool — работа с торрентами и bencode из Python

Анонс torrentool 0.1.0 — нового инструмента для манипуляций над .torrent-файлами и не только.

Релизы

  pymongo - 2.9

Python интерфейс для MongoDB. Изменения описаны по ссылке https://allmychanges.com/p/python/pymongo/#2.9. Скачать можно по ссылке: http://pypi.python.org/pypi/pymongo/

  aiohttp - 0.18.1

http клиент/сервер для asyncio. Изменения описаны по ссылке https://allmychanges.com/p/python/aiohttp/#0.18.1. Скачать можно по ссылке: https://pypi.python.org/pypi/aiohttp/