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

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


Новый материал в ленте
  Wyvern’s Open Satellite Feed

Wyvern is a satellite startup who has recently launched an open data program. This article plays with that data using Python libraries such as astropy, geocoder, rich and more.


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

(29.07.2024 - 04.08.2024)

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

Статьи

  Опыт автоматизации рутины: подсчет спецификации при помощи python

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

  Создание меню/кнопок в pyTelegramBotAPI на основе SQL запроса

В данной статье планирую поделиться с вами своей наработкой, которая позволяет создавать меню и кнопки вашего Telegram бота на основе данных хранящихся в БД. Реализовывать все это будем на Python и нам потребуются библиотеки.

  Кастомные email-оповещения в Apache Airflow

Они должны собирать необходимую информацию на всех стадиях пайплайна, то есть в каждой из задач DAG'a, а в зависимости от успешного выполнения или при отклонении алгоритма, формировать тело email-сообщения. Например: в задаче происходит ошибка валидации данных и в этом случае должна сообщаться конкретная причина падения DAG. Информация должна быть полезной и понятной для бизнеса.

  Как оптимизировать аккумуляторную батарею

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

  Как мы перешли с оффсетной пагинации на курсорную, или о проблемах динамической фильтрации

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

  Введение в MLflow

MLflow - это инструмент для управления жизненным циклом машинного обучения: отслеживание экспериментов, управление и деплой моделей и проектов. В этом руководстве мы посмотрим, как организовать эксперименты и запуски, оптимизировать гиперпараметры с помощью optuna, сравнивать модели и выбирать лучшие параметры. Также рассмотрим логирование моделей, использование их в разных форматах, упаковку проекта в MLproject и установку удаленного Tracking Server MLflow.

  Быстрая оценка эффекта рекламы/события на ключевые показатели: Python + Causal Impact

Сегодня я хочу поделиться, пожалуй, самым простым и быстрым способом оценки эффекта рекламы/события на ключевые показатели. Способ заключается в использовании библиотеки pycausalimpact для Python.

  Как ускорить интеграцию API с помощью библиотеки и продвигать свои услуги

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

  Давайте сделаем крупное приложение на Flask (язык Python)

Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем на электронную почту, сделаем WYSIWYG-редактор, реализуем полнотекстовый поиск Elasticsearch, закешируем Redis, покроем тестами pytest и запустим в Docker-контейнерах, поговорим о многопроцессности для WSGI-шлюза Gunicorn.

  История оптимизации Python сервиса: пара простых системных улучшений

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

  Сводка от pythonz net 28.07.2024 — 04.08.2024

А теперь о том, что происходило в последнее время на других ресурсах.

  Создание полного Fast-API сервиса с фронтендом и деплоем за полчаса

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

  HowTo: базовая геоаналитика

Хочу поделиться примером‑инструкцией как получить инсайты из геоданных без регистрации, смс (только open‑source и бесплатные инструменты: OSM, python, Портал открытых данных Правительства Москвы, DataLens). Как сделать так, чтобы дашборд не "умер" от количества точек и тяжелых полигонов, работал сравнительно быстро и давал пользователю представление общей картины.

  Моржовый оператор := в Python

В Python 3.8 появился моржовый оператор (:=), который стал причиной бурных споров в сообществе. О нем и пойдет речь в этой статье. А начнем мы с истории о том, как моржовый оператор довел Гвидо ван Россума, создателя Python, до ухода с должности "великодушного пожизненного диктатора" проекта по разработке языка.

  Различные вычисления, многопоточность, асинхронность и мультипроцессность в Python

Эта статья рассчитана на людей, которые уже знакомы с Python, хотя бы на уровне junior+. Я объясню, какие есть отличия и особенности в многопоточности, асинхронности и мультипроцессорности в Python, где и когда они используются. Как говорится в пословице: «Всё познаётся в сравнении», именно в таком стиле я подготовил примеры. Кроме этого, буду специально делать ошибки и рассматривать неправильные подходы, чтобы можно было сразу разобраться, убедиться и запомнить, почему так делать нельзя и какой другой подход в этом случае нужно использовать.

Видео

  Опыт обучения и прим. нейросетей.

Опыт обучения и применения нейросетей в качестве модуля российской DCAP системы.  Для анализа неструктурированных данных необходимо применять нейросети. Я хочу рассказать о проблемах, с которыми мы столкнулись при создании нейросетей, от этапа сбора и разметки данных и до создания нескольких микросервисов. Слайды: https://moscowpython.ru/meetup/91/neuro-for-dcap/

  Аль Амин Ужахов. Как внутри работает Litestar?

На рынке постоянно появляются новые фреймворки, многие исчезают с радаров так же быстро, как и появились. Можно подумать, что не стоит даже задумываться об этом и искать альтернативы существующим решениям, пока они не появятся в требованиях вакансий. Но Litestar это совершенно другое дело. Это восходящий более быстрый конкурент FastAPI с сommunity-driven философией и кучей функциональности внутри (от кэширования до Dependency Injection и MessagePack), который определённо заслуживает вашего внимания.

  Разблокируй это! Что такое nogil?

Когда Python был совсем маленьким, мир был другим. Компьютеры были в большинстве своем одноядерными, а одновременная работа потоков невостребована. С тех пор железо сделало огромный шаг вперед, но Python остался прежним. Добавленный еще на заре языка GIL строго запрещал нам параллельную работу потоков, но из этого правила было много исключений и способов обхода, и такая ситуация устраивала всех. Почти всех. Нам предстоит вспомнить, зачем в наш любимый язык добавлена глобальная блокировка, как она работает, какие ограничения и способы их обхода у нас есть. Также мы обсудим самые горячие новости из мира python, а именно pep-703, принятый совсем недавно. Он обещает нам свободу от оков GIL, но сможет ли он нам её дать?

  Готовим спагетти для графа

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

  Есть ли геймдев на Python?

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

  База, код и два стейджа: бета и прод

У долгоживущего проекта рано или поздно может возникнуть потребность проверки новых фич на группе пользователей до выкатки на всех. Как следствие, требуется одновременное существование разных версий приложения, работающих с одной базой данных. Расскажу, как мы в Яндексе решали эту задачу, а именно: В чём польза такого решения для бизнеса С какими техническими проблемами столкнулась команда в процессе перехода: на уровне БД и на уровне кода Какие решения применили и к чему это привело

  Распознавание данных по фото СТС

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

  Управление пакетами — хорошее, плохое, злое?

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

  Pythonoкартография

Pythonoкартография, или как заставить беспилотный автомобиль соблюдать ПДД Рассмотрю кейсы использования Python для создания высокоточных карт (HDMap) в беспилотной технологии и как мы автоматизируем большое количество задач по оцифровке локаций SberAuotTech. Слайды: https://moscowpython.ru/meetup/91/python-mapping/

  Переиспользование go-шной библиотеки малой кровью.

В этом докладе будет рассказ о том, как ленивые разработчики не захотели писать и поддерживать один и тот же фукнционал на языках Golang и Python, и решили вызывать гошный код из питона. Какой подход обмена структурами можно использовать, если методы принимают и возвращают "сложные структуры"? Сильно ли отличается скорость выполнения нативной реализации на питоне от примененного подхода? Слайды: https://moscowpython.ru/meetup/91/go-in-python/

  Распознать за 3 секунды. Узнать автоответчик до тарификации

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

  Чистый код: антипаттерны в питоне, и как с ними бороться

Код читают чаще, чем пишут. Каждая строчка, написанная нами и отправленная в "долгое плавание", будет прочитана — может, нашими коллегами, может, совершенно незнакомыми разработчиками. Поэтому код — это в том числе и время разработчиков, которые будут с этим кодом работать. Давайте сделаем этих людей чуточку счастливее! В докладе рассмотрим самые распространённые антипаттерны и ошибки на Питоне, как с ними бороться и, главное, как заставить компьютер помогать нам в этой борьбе.

Релизы

  aiohttp - 3.10.0

http клиент/сервер для asyncio. Скачать можно по ссылке: https://pypi.python.org/pypi/aiohttp

  redis - 5.0.8

Python клиент для Redis. Скачать можно по ссылке: https://pypi.python.org/pypi/redis/

  django-filter - 24.3

Django-приложение для гибкой фильтрации объектов модели (querysets). Скачать можно по ссылке: https://pypi.python.org/pypi/django-filter/

  SQLAlchemy - 1.4.53

Библиотека работы с базами данных. Скачать можно по ссылке: https://pypi.python.org/pypi/SQLAlchemy/

  django-taggit - 6.0.0

Приложение для поддержки тегов в Django. Приложение будет крайне полезно на сайте с новостями, которые необходимо помечать тегами, так же можно легко реализовать сортировку по тегам.. Скачать можно по ссылке: https://pypi.python.org/pypi/django-taggit/

  Sphinx - 8.0.2

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

  Sphinx - 8.0.0

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

  pip - 24.2

Утилита для управления модулями в Python. Скачать можно по ссылке: https://pypi.python.org/pypi/pip/