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

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

     28.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

TabPy для работы с данными в ClickHouse из Tableau

Выстраивание коммуникаций между брендами и людьми — то, чем мы в Dentsu Aegis Network занимаемся каждый день, и неотъемлемой частью этой работы является анализ данных. В ряде случаев этот процесс не требует data science (хотя и он у нас есть), тогда мы используем BI платформу Tableau. Ее основная цель — дать нашим сотрудникам и клиентам удобный интерфейс для потребления данных без написания скриптов, SQL запросов и т.п.

В этой статье мы расскажем, как нам удалось решить проблему взаимодействия Tableau с ClickHouse.

     27.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Клон NumPy

Небольшой модуль для работы с массивами в Python без использования сторонних библиотек (клон NumPy, но только на чистом Python).

Домашним заданием в университете задали написать программу, которая вычисляет нормы и разложения матрицы, но запретили использовать сторонние библиотеки. В выборе языка программирования не ограничивали. Я выбрал python (что было ошибкой, т.к. он намного медленнее Java и C/C++) и соответственно мне нельзя использовать NumPy. В процессе пришлось написать функции выполнения операций с массивами, функции нахождения миноров, определителя и тд. В итоге получилась мини библиотека для работы с массивами.

Мой код, написанный на чистом питоне намного медленнее NumPy, который производит вычисления на C и Fortran (плюс мой код не оптимизирован).

     26.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Нейросеть, которая поможет выбрать фильм – «твои вкусы специфичны»

Бывает смотришь фильм, и в голове только один вопрос – «я что опять попался на кликбейт?». Решим эту проблему и будем смотреть только годное кино. Предлагаю немного поэкспериментировать с данными и написать простую нейросеть для оценки фильма.

В основе нашего эксперимента лежит технология сентимент-анализа для определения настроения аудитории к какому-либо продукту. В качестве данных берем датасет обзоров пользователей на фильмы IMDb. Среда разработки Google Colab позволит быстро обучать нейросеть благодаря бесплатному доступу к GPU (NVidia Tesla K80).

     26.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Использование QThread с применением moveToThread

На основе одного из вопросов на форуме я написал пример по использованию QThread в PyQt5, а также использование метода moveToThread для перемещения объекта класса наследованного QObject в другой поток.

В данном примере производится выполнение некоего алгоритма, которые через сигнал возвращает текст, а также цвет текст в главный GUI. Эти данные добавляются в QTextBrowser с установкой цвета.

     25.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Развертывание модели глубокого обучения Keras в виде веб-приложения на Python

Создать классный проект с машинным обучением – это одно дело, другое дело, когда вам нужно, чтобы другие люди тоже смогли его увидеть. Конечно, вы можете положить весь проект на GitHub, но как ваши бабушка с дедушкой поймут, что вы сделали? Нет, нам нужно развернуть нашу модель глубокого обучения в виде веб-приложения, которое будет доступно любому человеку в мире.

     25.11.2019       Выпуск 310 (25.11.2019 - 01.12.2019)       Статьи

Превращаем робот-пылесос в универсального солдата

Все началось с увлечения глубоким обучением, нейронными сетями и далее по списку. Я посмотрел пару курсов, поучаствовал в соревновании на Kaggle… "чем бы еще заняться?". Тут мимо как раз по своим делам проползал робот-пылесос (Xiaomi Vacuum Cleaner V1) и подкинул интересную идею…

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Конференции, события, встречи разработчиков

Python Meetup Chelyabinsk #8

Восьмой Python-митап в Челябинске состоится в четверг, 5 декабря.

Место: Клары Цеткин, 11, 1 этаж (Лекторий КЦ11)
Начало в 18:30.

Программа митапа:
— GraphQL в проекте на Python (Дмитрий Соболев, Napoleon IT)
— Логирование и сбор метрик, быстро и просто (Алексей Шагалеев, Napoleon IT)
— Использование Python для управления интернетом вещей (Александр Уфимцев, Fijowave Ltd)

Участие бесплатное, нужно зарегистрироваться по ссылке

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Django. Создание динамических настроек сайта с помощью SingletonModel

Допустим, вы создаёте сайт с CMS на основе Django, у которого должны быть какие-то динамические настройки сайта, которые будут доступны пользователю. Например, название сайта, какая-то специализированная информация, при этом вы учитываете возможность мультиязычности. То что тогда можно использовать для этого? Мне пришла мысль использовать базу данных.

Для реализации этого требуется следующее:

  1. Создание модели данных, которая всегда будет содержать только один объект, то есть только одну запись. То есть это будет Singleton Model.
  2. Запретить удалять данную запись и создавать новые в панели администрирования Django
  3. Возможность использования иноформации из этой модели прямо в шаблоне, без загрузки настроек сайта в view функции.

Давайте разберёмся по порядку, как это реализовать.

 

     22.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Как добавить пользовательские кнопки в Django Admin

В этой статье “шпаргалке” рассмотрено добавление пользовательских кнопок в интерфейс Django Admin. В первой части рассказано как добавить одно кнопку на страницу списка выбранной модели – list view. Например кнопку импорта чего либо. Во второй части рассказано как добавить пользовательские кнопки действий (actions) для каждой выбранной записи отдельно с дополнительными формами.

     21.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Ещё одна библиотека для создания mock'ов

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

     20.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

DeepPavlov для разработчиков: #2 настройка и деплоймент

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

Договоримся, что все скрипты запуска библиотеки выполняются в environment Python с установленной библиотекой DeepPavlov (про установку см. первую статью, про virtualenv можно прочитать здесь). Примеры из этой статьи не требуют знания синтаксиса Python.

     20.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

8 причин, по которым вы обязательно захотите использовать Azure Notebooks

Если вы data scientist, или занимаетесь машинным обучением, как я — наверняка вы пишете большую часть кода в Jupyter Notebooks. Для всех остальных поясню: Jupyter — это замечательная система, позволяющая вам сочетать исполняемый программный код и текстовые фрагменты на основе Markdown в едином документе, который можно редактировать и выполнять прямо через браузер. Такой документ называется ноутбуком (теперь вы знаете, как подарить другу ноутбук на день рождения и не сильно потратиться)

     18.11.2019       Выпуск 309 (18.11.2019 - 24.11.2019)       Статьи

Строим домашний CI/CD при помощи GitHub Actions и Python

Как то вечером, придя домой с работы, я решил немного позаниматься домашним проектом. Я сделал несколько правок и сразу захотел поэкспериментировать с ними. Но до экспериментов мне пришлось заходить на VPS, пулить изменения, пересобирать контейнер и запускать его. Тут я и решил, что пора разобраться с непрерывной доставкой.

     17.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Нейросеть для определения хейтеров — «не, ну это бан»

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

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

Для работы я буду использовать Google Colab. Этот сервис позволяет запускать Jupyter Notebook'и, имея доступ к GPU (NVidia Tesla K80) бесплатно, что ускорит обучение. Мне понадобится backend TensorFlow, дефолтная версия в Colab 1.15.0, поэтому просто обновим до 2.0.0.

     17.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Видео

10 серверных языков: сравнение

Я расскажу про разные языки на бэкенде и о том, что, вообще, там происходит в их уютных облаках. Я расскажу про несколько популярных языков для создания формочек, несколько языков из вторых рядов для перекладывания json, ну и покажу несколько языков из глубокого underground: crystal, pony, v. Будет весело, холиварно, субъективно!

     15.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Видео

Как писать и тестировать миграции БД с Alembic

Python приложения могут работать с самыми различными БД (Postgres, SQLite, MariaDB и др.) и перед разработчиками приложений возникает задача реализовать возможность легко и безопасно изменять состояние БД: как структуры так и самих данных, от версии к версии приложения.
В докладе я поделюсь опытом использования хорошо зарекомендовавшего себя инструмента для управления миграциями - alembic.

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

Мы рассмотрим проблемы необратимых изменений в миграциях, а также несколько лайфхаков alembic, которые сделают работу с миграциями легкой и приятной

     15.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Видео

Zappa, Chalice и друзья: запускаем код без серверов с помощью AWS Lambda

Технологии Serverless несколько лет, и с каждым годом её популярность растет. Для высоконагруженных систем это простой способ бесконечного масштабирования, а для простых сайд-проектов - это отличная возможность бесплатного хостинга. Принцип в том, что вы деплоите не вебсервер, а функции, и платите только за время выполнения этих функций (обычно это миллисекунды).

В докладе мы рассмотрим, как устроены эти функции, какие есть инструменты для их создания - и зачем это обычному питонисту. Также мы увидим, как деплоить уже готовые приложения на Django и Flask в serverless-режиме

     15.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Статьи

Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 2

Представляем вашему вниманию вторую часть перевода материала, посвящённого особенностям работы с модулями в Python-проектах Instagram. В первой части перевода был дан обзор ситуации и показаны две проблемы. Одна из них касается медленного запуска сервера, вторая — побочных эффектов небезопасных команд импорта. Сегодня этот разговор продолжится. Мы рассмотрим ещё одну неприятность и поговорим о подходах к решению всех затронутых проблем.

     14.11.2019       Выпуск 308 (11.11.2019 - 17.11.2019)       Видео

Moscow Python Podcast. Big data, Data science, Machine Learning. (level: junior)

Big data, Data science, Machine Learning — все эти названия на слуху уже не первый год. Но до сих пор не всегда понятно, кто есть кто в этом мире хайповых названий. Что должен уметь Data Scientist и чем он отличается от Data Analyst? Зачем нужен Data Engineer и нужен ли он вообще? А чем занимается ML Engineer? Как разработчику попасть в мир Big data, нужны ли небольшим компаниям Spark и Hadoop, должен ли Data Scientist знать математику и можно ли за 7 недель стать Data Engineer