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

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

     15.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Опыт разработчиков: assert как средство для валидации

Хочется сегодня осветить такой элемент синтаксиса как assert.
assert - это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы.
Какая же...[Продолжение]

     14.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Статьи

Работа с данными среднего размера в Python. Pandas и Seaborn

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

Я попробовал много инструментов: Excel, Python+Matplotlib, R+ggplot, Python+ggplot, и остановился на связке Python+Pandas+Seaborn. Решил с их использованием уже много задач и хотел бы поделиться наблюдениями.

     14.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Синтаксис Python: работа с матрицами

Матрица - это, если утрировать, "табличка", N-мерный массив (чаще всего двумерный).
Матрицы возникают не редко. Например, игровое поле, карта мира - тоже можно представить матрицей, да то же решето Эратосфена - тоже...[Продолжение]

     14.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Учебные материалы: книга "Программируем коллективный разум"

Книга "Программируем коллективный разум" - это введение в мир машинного обучения и статистики. В ней объясняется, как делать полезные с точки зрения маркетинга выводы о поведении и предпочтениях пользователей на основе...[Продолжение]

     13.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Статьи

Группируем одинаковые приложения из разных магазинов по иконке

Однажды случилось мне несчастье обратить свой взор на одну заманчивую вакансию. Все бы ничего, но, как обычно, подкинули тестовое задание. Если кратко, то нужно было сгруппировать ссылки на одно и тоже приложение в разных маркетах. По ссылкам были такие приложения как Skype, Skype WiFi, Skype Qik, Viber, и две игры с одинаковым названием Skyward. Среди магазинов были Google Play, App Store и маркет Windows Phone. В задании было так же описание граблей, мол, не надо особо привязываться на названия приложений, название компании разработчика и т.д. «Но ведь одинаковые приложения легко узнаваемы на разных платформах тупо по иконке» — подумал я, и полез выяснять детали. Но не все так просто.

     12.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Статьи

Snaql. Raw SQL в Python-проектах

Рассматривая стек Luminus, я наткнулся на простую и в то же время шикарную, на мой вкус, библиотеку Yesql для организации SQL-запросов в проекте на Clojure и я не увидел чего-то похожего для Python (может плохо искал). Идея этой библиотеки простая — не морочьте себе голову, используйте обычные SQL-запросы, у вас есть возможность именования этих запросов и мапинга на соответствующие динамические функции. Всё это выглядит как набор микро-шаблонов с SQL и их рендер по какому-то контексту. Просто, эффективно, хочу такое у себя в проекте на Python.
 

     13.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Таинство стандартной библиотеки: textwrap для сокращения текста

При работе над Python Дайджестом - http://pythondigest.ru/ ">http://pythondigest.ru/ а именно при работе над "Колонкой автора"...[Продолжение]

     11.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Статьи

Скачивание музыки из VK, используя VK api и Python3

Ещё совсем недавно было первое июня, а тут уже первое сентября. Осень на дворе.

Да, недавно тоже так отвернулся, а очнулся — Mail поглотил VK. И началось: видео без рекламы не посмотришь, музыку не послушаешь — запретили правообладатели. Ходят слухи, что вообще запретят. Почуял неладное. А тут как раз такое время года. Вот и подумал, а почему бы мне не собрать свои запасы? Законсервирую свою музыку на своём компе, перекину на диск — слаще любого варенья будет! А поможет мне в этом, как не странно, сам ВК, а точнее — его api. А ещё третий python, встроенная библиотека urllib и библиотека по работе с данным в формате json.

     10.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Статьи

Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 3

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

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

     10.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Конференции, события, встречи разработчиков

PYCON RUSSIA 2015: финальное расписание

18-19 сентября в Екатеринбурге пройдет одно из самых ярких событий python-сообщества — конференция PYCON RUSSIA. 21 доклад от ведущих python-разработчиков из США, Франции, Германии, Чехии, Украины и России, два мастер-класса, Lightning Talks — и это только в официальной части. У вас есть еще неделя, чтобы посмотреть на программу этого года, купить билет и приехать в Екатеринбург. Все подробности ниже. 

     10.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Статьи

Старый новый pywinauto: автоматизация Windows GUI на Python на примере install/uninstall

Однажды, в процессе поиска инструмента для автоматизации GUI тестирования, мне попался интересный питоновский пакет pywinauto. И хотя он поддерживает только нативные контролы и частично Windows Forms, для наших задач он вполне подошёл. История pywinauto берёт своё начало где-то в районе 1998 года, когда Mark McMahon написал для своих нужд GUI Automation утилиту на языке C (на это потребовалось года два), а затем, уже в 2005-м, переписал её на Python за три месяца. Мощь питона проявила себя во всей красе: интерфейс pywinauto получился простым и выразительным. Инструмент активно развивался с 2006 по 2010. В годы затишья, в 2011-2012 добрый человек moden-py написал GUI helper для просмотра иерархии окон и генерации pywinauto кода под названием SWAPY. Тем временем мир менялся. Наша команда перешла на 64-битные бинарники, и клон pywinauto заработал на 64-битном Python. В основной ветке проект не развивался четыре года и порядком устарел. В 2015 году с согласия Марка удалось вдохнуть в проект новую жизнь. Теперь pywinauto официально живёт на гитхабе, а во многом благодаря камраду airelil модульные тесты бегают на CI сервере AppVeyor. 

     10.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Hardcore Python: Конкурентность в Питоне с нуля. Вживую

http://www.youtube.com/watch?v=ys8lW8eQaJQ">http://www.youtube.com/watch">http://www.youtube.com/watch?v=ys8lW8eQaJQ

     09.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Полезные библиотеки: funcy - набор конструкций, которые упрощают код

Есть ряд модулей, которые стоит ставить первыми. Этот набор у каждого свой.
В моем наборе есть место для funcy.
funcy - это набор мелких полезностей при работе с данными.
Например, можно создать бесконечный список,...[Продолжение]

     09.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Извлечение информации: скачиваем список ссылок с помощью asyncio

Порой возникают рутинные задачи, которые не хочется делать руками. Примером такой задачи может являться - скачать множество страниц по ссылкам. Если 5 ссылок еще вручную сохранить можно, а если их 1000? или 6250, как было в моем случае....[Продолжение]

     08.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Статьи

Программа-помощник для освоения слепой печати на клавиатуре в Linux

Хочу показать и рассказать о небольшой программке, которая принесла пользу.

Однажды на работе мне написал друг. Диалог у нас состоялся примерно следующий:
— Привет, я тут обучаюсь технике слепой печати. Дело в том, что на линуксе нет программки, которая могла бы мне помочь. В общем, может ты сможешь быстренько написать такую?

Так как помочь другу — святое дело, да и задача выглядела интересной, помочь я согласился. В итоге получилось вот что: Кому интересно, подробности ниже 

     08.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Тесты тесты тесты: coverage - узнаем сколько процентов кода покрыто тестами

Юнит-тесты хороши, когда покрывают весь ключевой код. Однако если проект чуть больше, чем "Hello, world!", то оценить степень покрытия весьма проблематично. Существуют инструменты, которые помогают это делать. Например - ...[Продолжение]

     07.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Синтаксис Python: генераторы

Генераторы это итерируемые объекты, которые можно прочитать лишь один раз. Это связано с тем, что они не хранят значения в памяти, а генерируют их на лету:
»> mygenerator = (x*x for x in range(3))
»> for i in mygenerator...[Продолжение]

     07.09.2015       Выпуск 90 (07.09.2015 - 13.09.2015)       Колонка автора

Учебные материалы: Python. Подробный справочник

Не так редко спрашивают "Какую книжку почитать". Ответить на такой вопрос не просто, ибо зависит от человека. Однако, есть и универсальные книги - справочники. Сегодня хочу представить аннотацию к книге - Python. Подробный справочник от...[Продолжение]

     06.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Колонка автора

Таинство стандартной библиотеки: itertools

Еще один стандартный модуль в Python - itertools.
Модуль itertools - сборник полезных итераторов.
В нем содержатся множество операций над итераторами, да и сами интераторы.
Например есть бесконечная арифметическая...[Продолжение]

     06.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Колонка автора

Таинство стандартной библиотеки: docstring

Docstring - (сокращение от documentation string, строка документации) встроенное средство документирования модулей, функций, классов и методов. Делается очень просто - сразу после определения указывается строковое значение, которое и...[Продолжение]