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

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


Новый материал в ленте
  Sphinx - 7.3.7

Python генератор документации. Скачать можно по ссылке: https://pypi.python.org/pypi/Sphinx/


Python Дайджест. Выпуск 447

(11.07.2022 - 17.07.2022)

поделиться выпуском 
Дайджест python,

Статьи

  Бескомпромиссный CI-конвейер для питонистов

Любому Python-проекту может пойти на пользу надёжный и стабильный конвейер непрерывной интеграции (Continuous Integration, CI). В рамках таких конвейеров выполняется сборка приложений, запуск тестов, проверка кода линтерами, контроль качества программ, анализ уязвимости приложений. Правда, построение CI-конвейеров занимает много времени, требует выполнения действий, которые, сами по себе, никакой пользы не приносят. Этот материал написан для тех Python-программистов, которым нужен полнофункциональный, настраиваемый CI-конвейер, основанный на GitHub Actions. Этот конвейер оснащён всеми мыслимыми инструментами, подключён ко всем необходимым сервисам, а подготовить его к работе можно всего за несколько минут.

  Найти вероятность выпадения k (сумма выпавших значений) при бросании n кубиков

Решение задачи и пояснение алгоритма: Есть n стандартных игральных костей (6-ти гранных кубиков) со стандартным обозначением всех граней от 1 до 6. Бросаем все n кубики разом. Нужно найти вероятность выпадения числа k, а именно суммы всех значений, выпавших на этих кубиках

  Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 7

На прошлом уроке мы изучили некоторые способы поиска областей интереса на изображении. Напомню, что мы делали:

  • пытались найти по цвету (чаще всего так делать не надо);

  • пытались найти круглый знак посредством функции HoughCircles (иногда работает);

  • а еще мы изучили морфологические операции (открытие закрытие).

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

  Часть 2. Пишем сервис парсинга матчей Dota 2 на Celery и Flask

В предыдущей статье мы распарсили реплей одного матча по Dota 2 и нашли хайлайты с помощью кластеризации. В данной статье увеличим масштаб и напишем сервис для параллельного парсинга реплеев на Celery и Flask.

  Расстояние Левенштейна для чайников

Когда я взялась решать задачку по динамическому программированию — реализовать алгоритм, который рассчитывает расстояние Левенштейна — мне пришлось послушать пару небольших лекций и прочесть несколько статей (приведу их в конце), чтобы разобраться. Я решила попытаться пересказать алгоритм настолько просто, чтобы по этому объяснению можно было снять ролик для тиктока (когда он снова возобновит свою деятельность в РФ). Дальше — мало формул и много картинок.

  Пишем первую программу по машинному обучению до 50 строк с помощью Scikit-Learn

Сегодня мы воспользуемся возможностями машинного обучения для анализа шоколадного печенья. Читать о печеньках и ML

  Автоматическое тестирование QT GUI с помощью python и funq

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

  Создание бота на основе discord.py. Часть 1

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

  Пишем онлайн-тренажёр для Python, C++ и Go: опыт Практикума

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

  19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 2. Блокирующие сокеты и многозадачность

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

  Статическое Python приложение в образе контейнера на базе scratch

Небольшое руководство о том, как можно собрать Python приложение в самодостаточный статически связанный двоичный файл и упаковать его в образ контейнера на базе scratch.

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

  Сравнительный анализ эффективности работы Cython и Python

Cython – это язык, который очень-очень похож на Python с добавлением синтаксических изюминок.

  19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 4. Сопрограммы в Python

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

  Интеграция картин в видео фасада здания за 60 часов

Художник-монументалист - человек, который выполняет действительно Большие Задачи. Вот и со мной рядом был такой человек, у которого еще не горел, но активно приобретал характерную черную корочку диплом.

  Python GUI. Обзор Hero Animation в библиотеке KivyMD

Сегодня как всегда будем делать обзор библиотеки для кроссплатформенной разработки, которая реализует набор виджетов в стиле Google Material Design для фреймворка Kivy — KivyMD. В этой статье рассмотрим пример создания и управления Hero анимациями, которые недавно были добавлены в библиотеку KivyMD.

  Сравнение двух систем для торговли акциями: модели ближайших соседей и торговли по скользящей средней

Я достаточно давно в качестве хобби занимаюсь анализом открытых данных в играх на деньги (ставки на спорт, биржевые котировки и тп). В основном работаю руками в экселе, но также стараюсь быть в курсе того, что делают машины. Для этого прошел курсы Kaggle от Google. В этой статье я попробую сравнить результативность предсказаний дневного движения цены акции от двух примитивных систем торговли:

  Знакомство с Apache Airflow: установка и запуск первого DAGа

Хочу поделиться опытом в работе с Apache Airflow. Расскажу, как установить интерпретатор Python и сам Airflow, а также как отладить его работу. Всё это — на примере запуска простейшего DAGа. 

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

  19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронности

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

  19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 5. Асинхронное программирование

Выше мы рассмотрели, как появились генераторы, как они работают и как их можно использовать в роли сопрограмм. Еще раньше было разобрано, как реализовать асинхронность на колбеках с помощью модуля selectors. Теперь соединим оба материала и реализуем настоящую асинхронность — на сопрограммах (coroutines).В конце мы создадим минимально возможную версию asyncio и используем ее как лабораторный макет для изучения внутреннего устройства данной библиотеки. Как по мне, это лучший способ понять, как работает асинхронное программирование в Python.

  В Data Science не нужна математика (Почти)

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат. В реальной повседневной работе Data Scientist'а я каждый день использую знания математики. Притом очень часто это далеко не «вышмат». Никакие интегралы не считаю, детерминанты матриц не ищу, а нужные хитрые формулы и алгоритмы мне оперативнее просто загуглить. Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется.

  Сопоставляем с образцом как Pythonista

Одним из самых нашумевших нововведений Python 3.10 стало так называемое структурное сопоставление с образцом (structural pattern matching). Этот мощный инструмент берёт своё начало в функциональных языках программирования, а в последнее время постепенно появляется и во многих мейнстримовых языках (Java, C#, Kotlin, Swift, и т.д.). Как всегда, Python старается не отставать и идти в ногу со временем. Так зачем же популярные языки программирования добавляют поддержку этого механизма? В чём его отличие от простого условного оператора if? И вообще, в чём практическая польза сопоставления с образцом? Пробуем разобраться далее.

  Как нам живется без DLP: Пишем автоматизацию поиска конфиденциальных документов

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

Видео

  Moscow Python Podcast. Redis, сова и глобус (level: all)

В гостях у Moscow Python Podcast Python CTO проекта Speechki Павел Мальцев. Поговорили с Павлом о том, как и когда использовать Redis, какие там есть структуры данных и когда они будут полезны.