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

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     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, строка документации) встроенное средство документирования модулей, функций, классов и методов. Делается очень просто - сразу после определения указывается строковое значение, которое и...[Продолжение]

     04.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Статьи

Centrifuge + Go = Centrifugo – harder, better, faster, stronger

В сентябре прошлого года была опубликована последняя статья о Центрифуге — сервере с открытым исходным кодом для обмена сообщениями в режиме реального времени. Теперь в списке хабов, в которые публикуется этот пост, присутствует Go. И неспроста, как можно понять уже из заголовка, Центрифуга была портирована с Python на Go — так появилась Centrifugo. О причинах миграции, о плюсах и минусах Go, а также о том, как эволюционировал проект с момента предыдущей публикации – читайте под катом.

     05.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Статьи

Разработка абстрактной модели графа зависимости, её визуализация и применение

Автор рассказывает разработке нодового виджета на PySide, и о том с какими проблемами ему пришлось столкнуться.

     05.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Новости

Django 1.9 получит новый дизайн админки

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

     03.09.2015       Выпуск 89 (31.08.2015 - 06.09.2015)       Статьи

Работа с текстовыми данными в scikit-learn (перевод документации) — часть 2

Данная статья представляет перевод главы, обучающей работе с текстовыми данными, из официальной документации scikit-learn. Начало статьи вы можете прочесть в части 1. Обучение классификатора Теперь, когда мы выделили признаки, можно обучать классификатор предстазывать категорию текста. Давайте начнем с Наивного Байесовского классификатора, который станет прекрасной отправной точкой для нашей задачи. scikit-learn включает в себя несколько вариантов этого классификатора. Самый подходящий для подсчета слов — это его поли номинальный вариант: >>> from sklearn.naive_bayes import MultinomialNB >>> clf = MultinomialNB().fit(X_train_tfidf, twenty_train.target)