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

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

     23.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Slowpoke Finder: как я сделала CLI-инструмент для анализа медленных шагов в автотестах

Когда автотесты начинают тянуться как улитка, страдают все. CI медлит, разработчики косо смотрят на отчёты, а я вместо багов натыкаюсь на тайминги. Особенно это бесит в UI‑тестах — там каждый шаг может тормозить, но с ходу это не видно.

     23.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

How to separate test data from code: testing with CSV in pytest

Want to test a function with dozens of variants? I'll show you how to organize test cases in a CSV file and connect them to pytest using the pytest-csv-params plugin.

     22.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Временные и постоянные ошибки

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

     22.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Еще чуть-чуть быстрее ищем кратчайший путь на Python

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

     22.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

В этой статье расскажу о том, как можно повысить эффективность хранения данных за счет уменьшения их дублирования. Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

     21.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Scikit-learn теперь умеет в пайплайны: что изменилось и как работать с библиотекой в 2025 году

Scikit-learn — это одна из основных Python-библиотек для машинного обучения. В 2025 году в библиотеку добавили несколько важных обновлений: доработали работу с пайплайнами, подключили полную поддержку pandas API, упростили контроль за экспериментами.

     20.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Как новичок пытался написать свой «терминал»

Встроенная командная строка в Windows не устраивает многих разработчиков. У нее скудный функционал, нет «запоминания» и многих других функций, который были бы полезны её пользователям. Поэтому я решил попробовать сделать свою «консоль», с возможностью создания своих модулей для расширения функционала. Для этого, на языке программирования Python я начал писать своё CLI‑приложение, которое упрощает работу с консолью. И что из этого вышло? Узнать продолжение

     20.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи
     20.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Торговый робот без QUIK и Windows: мой путь к Raspberry Pi и Backtrader на Московской бирже

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

     20.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Jupyter-Ascending — новый способ работы с Jupyter Ноутбуками в Emacs

Вы обожаете Emacs, но вам необходимо работать с Jupyter ноутбуками? Данная статья расскажет еще об одном способе, как их подружить.

     20.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Я не люблю NumPy

Говорят, что невозможно по-настоящему возненавидеть кого-то, если сначала не полюбил его. Не знаю, справедливо ли это в целом, но это определённо описывает моё отношение к NumPy.NumPy — это ПО для выполнения вычислений с массивами на Python. Оно невероятно популярно и очень сильно повлияло на все популярные библиотеки машинного обучения, например, на PyTorch. Эти библиотеки во многом имеют те же самые проблемы, но для конкретики я рассмотрю NumPy.

     20.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи
     19.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Как провести пользовательское исследование без пользователей: пошаговый гайд с PyAutoGen

Я расскажу, как провела синтетическое исследование без респондентов, но с результатом, используя AutoGen — фреймворк от Microsoft, который позволяет моделировать диалоги между ИИ-агентами.Здесь не будет сложного кода. Только пошаговая инструкция, минимум настроек и максимум пользы, чтобы вытащить из AI внятные сценарии поведения пользователей.

     19.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Рукописный редактор на Python: инструкция для тех, кто хочет «рисовать» код

Концепция проста: создаем поле для рисования, распознаем написанный текст с учетом отступов и пытаемся его «запустить». С точки зрения архитектуры проект представляет собой веб-приложение. Фронтенд — JavaScript для работы «пера», а также исполнения кода в браузере. Бэкенд — Python для распознавания рукописного ввода.

     19.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Как я начал писать своё автопротоколирование

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

     17.05.2025       Выпуск 596 (12.05.2025 - 18.05.2025)       Статьи

Как я научился анализировать собственные собесы с помощью Whisper

Собеседования - всегда стресс. Я замечал, что после каждого интервью трудно вспомнить детали: какие вопросы задавали, как именно я отвечал, где были ошибки или неточности. А переслушивать запись, которая может длиться от часа и выше это долго и неэффективно. Задумался: а что если использовать что-то, что автоматически превратит аудиозапись интервью в текст? Так я открыл для себя Whisper от OpenAI

     17.05.2025       Выпуск 596 (12.05.2025 - 18.05.2025)       Статьи

Заставляем ботов бесконечно играть в карты. Часть 2

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

     19.05.2025       Выпуск 597 (19.05.2025 - 25.05.2025)       Статьи

Мой любимый векторный редактор PowerPoint или как я создал python библиотеку для добавления фигур в презентации

Если бы меня спросили, какой мой любимый векторный редактор, я бы, не задумываясь, ответил: PowerPoint. Это началось с желания делать презентации, которые приятно смотреть. Меня всегда огорчало, как часто даже в хороших докладах используются мыльные, шакальные картинки – особенно там, где вполне можно обойтись аккуратными векторными схемами.