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

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

     21.10.2019       Выпуск 305 (21.10.2019 - 27.10.2019)       Статьи

Deploy приложений с помощью Docker Swarm

Целью написания данной статьи является описание внедрения системы кластеризации docker swarm под staging-площадку, не нарушая сложившейся workflow наших процессов в условиях ограниченного времени. Представленное вашему вниманию повествование разделено на две части. Первая часть описывает CI/CD до использования docker swarm, а вторая — процесс его внедрения. Кто не заинтересован в чтении первой части, может смело переходить ко второй.

     21.10.2019       Выпуск 305 (21.10.2019 - 27.10.2019)       Статьи

Стохастический градиентный спуск(SGD) для логарифмической функции потерь(LogLoss) в задаче бинарной классификации

Предыдущая часть (про линейную регрессию, градиентный спуск и про то, как оно всё работает) — habr.com/ru/post/471458

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

Задача: для двух категориальных признаков, описывающих желтизну и симметричность, определить, к какому из классов (яблоко или груша) относится объект (обучить модель классифицировать объекты).

     19.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Реализация PEG парсера

Вдохновленный лишь частичным пониманием PEG, я решил попробовать его реализовать. Результат может получиться и не самым лучшим среди парсеров PEG общего назначения — их уже много (например, TatSu написан на Python и генерирует код Python) — но это хороший способ разобраться в PEG. В дальнейшем я хочу заменить им текущую реализацию парсера в CPython.

     19.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Реализация паттерна Page Object на Python + pytest

Когда я начинал изучать автоматизацию тестирования, не мог понять — “что такое Page Object и как его реализовать на Python + pytest?”. Штудируя интернет, нашел реализацию на других языках и фреймворках: обучающие статьи, которые были непонятны для меня. Поэтому решил написать этот разбор. Идея — показать реализацию на Python + pytest и объяснить ее доступным языком.

     18.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

5 способов запустить Python-сервер на Raspberry Pi. Часть 1

Сегодня в большом числе проектов домашней (и не только) автоматизации используется Raspberry Pi. При этом достаточно удобно иметь не только прямой доступ к устройству, но и использовать браузер — это позволяет выполнять необходимые действия и с компьютера, и с мобильного телефона, и даже удаленно из любой точки мира.

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

     18.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Система контроля библиотеки на Flask-Potion, Часть 0: готовим всё, что понадобится

В своей работе я уже некоторое время использую Flask-Potion — фреймворк, основными достоинствами которого являются: весьма удобная интеграция с SQLAlchemy моделями, автогенерация crud-эндпоинтов, наличие клиента potion-client (весьма удобного, если пишешь API сервиса, использование которого понадобится в другом сервисе).

 

Вместо простой обзорной статьи на этот фреймворк я решил написать несколько статей о создании системы контроля для библиотеки "Furfur" на основе Flask-Potion.

     18.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Нативное редактирование Jupyter Notebooks в VS Code

С осктябрьским релелизом расширения Python, мы рады объявить о поддержке нативного редактирования Jupyter Notebooks в Visual Studio Code! Теперь вы можете напрямую редактировать файлы .ipynb и получать интерактивность Jupyter Notebooks с полной мощью VS Code.

Вы можете управлять исходным кодом, открывать несколько файлов и использовать такие функции, как IntelliSense, интеграцию с Git и управление несколькими файлами. Все они предлагают совершенно новые способы для дата-сайнтистов и разработчиков эффективно экспериментировать и работать с данными. Вы можете попробовать все это уже сегодня, загрузив последнюю версию расширения Python и создав/открыв Jupyter Notebook внутри VS Code.

     17.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

PEG парсеры

Несколько лет назад меня кто-то спросил имеет ли смысл превести Python на PEG-парсер (или на грамматику PEG; я не помню точно кто и когда это было). Тогда я немного посмотрел на него, но так и не пришёл к какому-либо выводу, а потому и отбросил эту тему. Недавно я узнал больше о PEG (Parsing Expression Grammars, грамматике по парсингу выражений), и теперь я думаю, что это интересная альтернатива самописному генератору парсеров, который был разработан 30 лет назад, когда только начинал работать над Python. Я назвал его «pgen», и это был, наверно, первым фрагментом кода, который я написал для Python.

     17.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Python в Visual Studio Code – октябрьское обновление

Мы рады сообщить о доступности октябрьского обновления расширения Python для Visual Studio Code. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы также можете получить последнее обновление, перезапустив код Visual Studio. Подробнее о поддержке Python в Visual Studio Code вы можете узнать из документации.

В этом релизе мы рассмотрели 97 проблем, в том числе нативное редактирование Jupyter Notebooks, кнопку для запуска файла Python в терминале, а также улучшения «линтинга» (linting) и импорта с помощью Python Language Server. Полный список улучшений приведен в нашем журнале изменений.

     17.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Раскрашиваем ч/б фото с помощью Python

Одной из интересных и популярных (особенно перед разными юбилеями) задач является «раскрашивание» старых черно-белых фотографий и даже фильмов. Тема это достаточно интересная, как с математической, так и с исторической точки зрения. Мы рассмотрим реализацию этого процесса на Python, который любой желающий сможет запустить на своем домашнем ПК.

     16.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Первое знакомство с Home Assistant

Home Assistant – популярное приложение с открытым исходным кодом для организации умного дома. Первый опыт автора в работе с Home Assistant основывается на попытке интеграции в него ‘умной рисоварки‘. Автор постарается описать основные компоненты и возможности данного приложения, с которыми ему привелось пошагово познакомиться. Статья является в чем-то обзором, в чем-то руководством для желающих начать свое знакомство с Home Assistant.

Тем, у кого мало свободного времени, советую пропустить присказку – первую главу – и перейти сразу ко второй. Вам нужно знать только, что работать мы будем с умной китайской рисоваркой от Xiaomi.

     16.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Sberbank AI Journey. Как мы учили нейросеть сдавать экзамен

Если вы закончили школу уже во времена ЕГЭ, то вам известно, что все задания в нём имеют набор стандартных формулировок и упорядочены по типам. С одной стороны, это облегчает подготовку к экзамену: школьник уже знает, что нужно делать в задании, даже не читая его условия. С другой, любое изменение порядка вопросов может вызвать у него проблемы. Грубо говоря, на результат начинает больше влиять то, насколько человек довёл решения до автоматизма, а не то, как он рассуждает. Экзамен становится похож на работу скрипта.

     15.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

C/C++ из Python (boost)

Заключительная статья из серии как вызывать C/C++ из Python3, перебрал все известные способы как можно это сделать. На этот раз добрался до boost. Что из этого вышло читаем ниже.

     15.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Новинки аннотаций типов в Python 3.8 (Protocol, Final, TypedDict, Literal)

Сегодня ночью вышел Python 3.8 и аннотации типов получили новые возможности:

 

  • Протоколы
  • Типизированные словари
  • Final-спецификатор
  • Соответствие фиксированному значению

Если вы ещё не знакомы с аннотациями типов, рекомендую обратить внимание на мои предыдущие статьи (начало, продолжение)
И пока все переживают о моржах, я хочу кратко рассказать о новинках в модуле typing

     14.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Управление автоматизированными тестами с помощью Telegram

Работая QA инженером, я разрабатывал систему автотестестирования. Столкнулся с рядом проблем:

 

  • На каждый вид тестирования приходилось создавать свои job в CI и запускать их руками.
  • Разработчики отказывались запускать кейсы автотестов самостоятельно.
  • Отсутствие возможности запуска автотестов из любой точки \ устройства.
  • QA инженеры ручного тестирования не могли самостоятельно проводить запуск автотестов.
Поэтому я решил создать небольшой прототип бота для запуска автоматизированных тестов, который бы закрывал большую часть вышеописанных проблем.

     14.10.2019       Выпуск 304 (14.10.2019 - 20.10.2019)       Статьи

Генерация текста на русском по шаблонам

Когда я только начинал работать над своей текстовой игрой, решил, что одной из её главных фич должны стать красивые художественные описания действий героев. Отчасти хотел «сэкономить», поскольку в графику не умел. Экономии не получилось, зато получилась Python библиотека (github, pypi) для генерации текстов с учётом зависимости слов и их грамматических особенностей.

     13.10.2019       Выпуск 303 (07.10.2019 - 13.10.2019)       Статьи

Empire ERP. Занимательная бухгалтерия: главная книга, счета, баланс

В данной статье мы осуществим попытку проникновения в самое сердце "кровавого энтерпрайза" — в бухгалтерию. Вначале мы проведем исследование главной книги, счетов и баланса, выявим присущие им свойства и алгоритмы. Используем Python и технологию Test Driven Development. Здесь мы займемся прототипированием, поэтому вместо базы данных будем использовать базовые контейнеры: списки, словари и кортежи. Проект разрабатывается в соответствии с требованиями к проекту Empire ERP.

     12.10.2019       Выпуск 303 (07.10.2019 - 13.10.2019)       Статьи

Исследуем утверждение центральной предельной теоремы с помощью экспоненциального распределения

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

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