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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     27.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи

[Перевод] Путь к проверке типов 4 миллионов строк Python-кода. Часть 2

Сегодня публикуем вторую часть перевода материала о том, как в Dropbox организовывали контроль типов нескольких миллионов строк Python-кода.

     27.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи
     26.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи

Начало работы с асинхронными функциями в Python

Если вы совершено не знакомы с асинхронным программированием и хотите разобраться с этим максимально простым способом, это статья для вас. В статье рассказывается то такое синхронные и асинхронные программы, и их отличия.

Оригинальная статья: Doug Farrell  – Getting Started With Async Features in Python

     26.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи

Путь к проверке типов 4 миллионов строк Python-кода. Часть 1

Сегодня мы предлагаем вашему вниманию первую часть перевода материала о том, как в Dropbox занимаются контролем типов Python-кода.

В Dropbox много пишут на Python. Это — язык, который мы используем чрезвычайно широко — как для бэкенд-сервисов, так и для настольных клиентских приложений. Ещё мы в больших объёмах применяем Go, TypeScript и Rust, но Python — это наш главный язык. Если учитывать наши масштабы, а речь идёт о миллионах строк Python-кода, оказалось, что динамическая типизация такого кода неоправданно усложнила его понимание и начала серьёзно влиять на продуктивность труда. Для смягчения этой проблемы мы приступили к постепенному переводу нашего кода на статическую проверку типов с использованием mypy. Это, вероятно, самая популярная самостоятельная система проверки типов для Python. Mypy — это опенсорсный проект, его основные разработчики трудятся в Dropbox.

     25.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи

Играемся с комплексными числами

Очередной очерк. На этот раз поиграемся с комплексными числами, с формулами и их визуализацией.

     24.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи

Как обработать большие xml на 8 Гб памяти. Работаем с базой ФИАС,pandas и python

Скачать ее можно перейдя по ссылке, данная база является открытой и содержит все адреса объектов по России (адресный реестр). Интерес к этой базе вызван тем, что файлы, которые в ней содержатся достаточно объемны. Так, например, самый маленький составляет 2,9 Гб. Предлагается остановиться на нем и посмотреть, справится ли с ним pandas, если работать на машине, располагая только 8 Гб оперативной памяти. А если не справится, какие есть опции, для того, чтобы скормить pandas данный файл.

     24.09.2019       Выпуск 301 (23.09.2019 - 29.09.2019)       Статьи

Робот-танк на Raspberry Pi с Intel Neural Computer Stick 2

Вот и наступил новый этап в развии Raspberry-танка.

В предыдущей серии оказалось, что семантическая сегментация из коробки не по зубам Raspberry.

     21.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.

     20.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Как создать Python wrapper и не сойти с ума

Недавно прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrapper) для Cи-шной библиотеки. В тот момент я подумал "О, что-то интересное, уверен, это займет не больше часа". Как же сильно я ошибался.

 

В этой статье я решил показать не один путь для решения подобной задачи, а несколько разных вариантов. Я покажу варианты создания модулей на Pythonс компиляцией в С, использование маленькой самописной библиотеки С в Python и – последний вариант – использование большой C библиотеки в Python без боли и pxd файлов.

     20.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Задача: извлечь ключевые выражения из текста на русском языке. NLP на Python

Что было нужно в самом начале:

 

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

     19.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

C/C++ из Python (CFFI, pybind11)

Продолжаем тему как вызывать C/C++ из Python3. Теперь используем библиотеки cffi, pybind11. Способ через ctypes был рассмотрен в предыдущей статье.

     19.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Наследование и композиция: руководство по ООП в Python

В этой статье мы подробно рассмотрим наследование (inheritance) и композицию (composition) в Python. Наследование (Inheritance) и композиция (composition) – это две важные концепции в объектно-ориентированном программировании, которые моделируют отношения между двумя классами. Они являются строительными блоками объектно-ориентированного проектирования (object oriented design) и помогают программистам писать повторно используемый код.

Оригинальная статья  Isaac Rodriguez  – Inheritance and Composition: A Python OOP Guide

     18.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Делаем домашнюю библиотеку с Notion и Python

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

     18.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Анализируем историю прослушивания в «Яндекс.Музыке»

Вот уже почти год я пользуюсь сервисом Яндекс Музыка и меня все устраивает. Но есть в этом сервисе одна интересная страница — история. Она хранит все треки, которые были прослушаны, в хронологическом порядке. И мне, конечно, захотелось скачать ее и проанализировать, что я там наслушал за все время.

     18.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Must-have алгоритмы машинного обучения


Этот пост — краткий обзор общих алгоритмов машинного обучения. К каждому прилагается краткое описание, гайды и полезные ссылки.

     18.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Элементарная симуляция кастомного физического взаимодействия на python + matplotlib

Что будет в этой статье.

Общий случай:

 

  1. Опишем базу, а именно работу с векторами (велосипед для тех, у кого нет под рукой numpy)
  2. Опишем материальную точку и поле взаимодействия
Частный случай (на основе общего):

 

  1. Сделаем визуализацию векторного поля напряженности электромагнитного поля (первая и третья картинки)
  2. Сделаем визуализацию движения частиц в электромагнитном поле

     17.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

Как оптимизировать pandas при работе с большими datasetами (очерк)

Когда памяти вагоны и/или dataset небольшой можно смело закидывать его в pandas безо всяких оптимизаций. Однако, если данные большие, остро встает вопрос, как их обрабатывать или хотя бы считать.

Предлагается взглянуть на оптимизацию в миниатюре, дабы не вытаскивать из сети гигантские датасеты.

В качестве датасета будем использовать хабрастатистику с комментариями пользователей за 2019 г., которая является общедоступной благодаря одному трудолюбивому пользователю:
dataset

     17.09.2019       Выпуск 300 (16.09.2019 - 22.09.2019)       Статьи

PyCrunch – Интеллектуальное выполнение тестов и визуальное покрытие кода в IDE

Около 3 лет назад я перешел с C# разработки на Python. Два с половиной года я пытался найти инструмент, который был бы похож на NCrunch по удобству в ежедневной работе.

В какой-то момент я забил забил на unit-тестирование, и писал код, прогоняя тесты на CI.

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

Полгода разработки, и активное использование на собственных проектах, вызывает желание показать продукт сообществу.

     13.09.2019       Выпуск 299 (09.09.2019 - 15.09.2019)       Статьи

Робот-тележка на ROS.Часть 4. Создаем симуляцию робота в rviz и gazebo

Продолжение цикла статей о создании небольшого робота. В этот раз речь пойдет о создании копии робота в симуляции, которую предлагают визуальные ROS-среды rviz и gazebo (далее «редакторы»). Работа в редакторах будет вестись на виртуальной машине, образ которой был ранее предоставлен для скачивания (образ). Так как речь идет о симуляции, построении модели, сам робот-тележка не понадобится.