Planet Python на русском Заметка

Planet Python на русском

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

Трэд заметок

Автор разработал новый подход к тестированию документации с использованием ИИ. После обновления учебных пособий и документации проекта в файлах Markdown, он решил использовать ИИ для проверки их эффективности. Автор дал ChatGPT указание создать изолированную среду чата, где он будет читать документацию и пытаться использовать описанный инструмент. ИИ согласился, сгенерировав подробный запрос для нового чата и отслеживая его прогресс.Затем ИИ сообщил о выявленных недостатках в документации. Например, он отметил, что в документации отсутствует явное указание на предполагаемое использование инструмента в Linux, несмотря на предоставление деталей настройки для Linux и WSL. Это побудило ИИ попытаться запустить инструмент в среде Windows, выявив неявное предположение автора, которое требовало уточнения.Автор ценит этот метод, при котором ИИ выступает в роли нового пользователя, активно пытаясь выполнить задачи и сообщая о возникших проблемах. Это выходит за рамки простой проверки формулировок, обеспечивая практическую проверку выполнимости инструкций в документации. Хотя ИИ может выдвигать необоснованные замечания, человеческое суждение остается решающим при определении того, какие изменения следует внедрять.Автор подчеркивает, что документация должна служить как людям, так и ИИ-помощникам. Поскольку все больше пользователей, вероятно, будут использовать ИИ для взаимодействия с проектом, документация должна быть достаточно понятной для прямого использования человеком и для того, чтобы ИИ мог эффективно помогать пользователям. Это означает, что необходимо учитывать, насколько хорошо документация поддерживает взаимодействие с ИИ, а не только писать исключительно для ИИ.В конечном итоге, автор предлагает тестировать документацию аналогично коду, оценивая, сможет ли пользователь, человек или ИИ, успешно следовать ей для выполнения задачи. Этот инновационный метод тестирования предлагает новый взгляд на повышение эффективности документации в будущих проектах.
CdXz5zHNQW_Tocx7RtYip.png
Python 3.15 представляет новый модуль стандартной библиотеки под названием profiling. Этот модуль объединяет встроенные инструменты профилирования Python под единым пространством имен. Он предоставляет доступ к двум различным профилировщикам: Tachyon, выборочному профилировщику, и трассирующему профилировщику. Tachyon, находящийся в profiling.sampling, обеспечивает практически нулевые накладные расходы за счет высокочастотной выборки. Трассирующий профилировщик, расположенный по адресу profiling.tracing, детерминированно профилирует код, инструментируя его, хотя и несет некоторые накладные расходы. Ранее в Python существовал устаревший модуль на чистом Python под названием profile, который имел ограниченную практическую ценность. Этот старый модуль планируется удалить в Python 3.17. Трассирующий профилировщик ранее был известен как cProfile в Python 3.14 и более ранних версиях. Этот новый модуль профилирования призван организовать и модернизировать возможности профилирования Python. Статья служит введением в эти два ключевых профилировщика.
CdXz5zHNQW_FgX6KQYd0y.webp
Правление PSF продолжит свои сессии "Час с правлением" в Discord PSF до 2027 года. Эти сессии, начавшиеся в сентябре 2024 года, способствуют связи сообщества с правлением. Они были решающими для обсуждения Стратегического плана PSF, выборов и Программы грантов. Часы работы также позволяют правлению и сотрудникам понимать деятельность и проблемы сообщества. Участники могут общаться в текстовых чатах в реальном времени с директорами правления PSF и сотрудниками. Обсуждения в основном сосредоточены на Python, PSF и сообществе, с редкими специальными темами, такими как PyCon US. PSF сотрудничает в продвижении Python, поддержке местных сообществ, организации PyCon US и содействии разнообразию. Они также занимаются вопросами Кодекса поведения и поддерживают региональные сообщества через гранты. Сессии проходят в канале #psf-board в Discord PSF, с чередующимися временами для глобальной доступности. Каждая сессия длится один час, а будущие даты после октября 2027 года будут объявлены дополнительно. Члены правления и сотрудники PSF присутствуют, чтобы слушать, помогать и оказывать поддержку, а также могут отслеживать решение проблем.
В этом тексте представлен Gnomon — решение проблем коммуникационных сбоев в разработке программного обеспечения, когда разные заинтересованные стороны по-разному интерпретируют описания систем. Автор, обладая разносторонним опытом, подчёркивает, как такие термины, как «fix» в «We are build an agent to fix invoices» приводят к различным пониманиям и неудачам проектов. Рост больших языковых моделей (LLM) усугубляет это, создавая правдоподобные, но потенциально неточные архитектурные чертежи. Gnomon решает эту задачу, предоставляя небольшой язык, gnomocode и компилятор, который проверяет операторы по онтологии. LLM переводит естественный язык в gnomocode, компилятор проверяет его валидность, а результат можно визуализировать, задавать запросы или преобразовать обратно в прозу. Компилятор, написанный на Python, использует Lark, rdflib и pySHACL. Мотивация Gnomon — преодолеть разрыв между устными словами и практическими диаграммами, обеспечивая последовательность и ответственность. Он стремится работать в обоих направлениях: от разговора к модели и от кода/диаграмм к читаемому тексту. Основной фокус статьи — направление вперёд — от беседы к модели. Ключевые требования к Gnomon включают однозначные термины, нативную поддержку современных архитектурных элементов (LLM, память, инструменты), читаемость для людей и моделей, множественные виды с одной модели, контроль версий и возможность выражать неопределённость. Подход развился из попыток более простых методов, таких как прямые запросы LLM или использование структурированных объектов, которые не справлялись со сложностью архитектурных графов и недостающей информации. Существующие обозначения, такие как UML или C4, также оказались недостаточными из-за фиксированных символов, отсутствия операторов «возможно» и ограниченной семантической проверки. Пользовательский язык с компилятором оказался наиболее жизнеспособным решением. Компилятор предоставляет локализованные ошибки и обратную связь LLM для исправления. Ядром Gnomon является его онтология, построенная на существующих RDF-лексиках, таких как SKOS, PROV-O и DPV. Это ядро из 57 терминов и двенадцати модулей определяет отношения и правила, обеспечивая согласованность. Онтология определяет лексикон, сообщения об ошибках компилятора, генерацию прозы и представления диаграмм. Сам Gnomocode разработан для читаемости и точности, используя синтаксис, заимствоваемый из языков Markdown, Python и графовых запросов. Он поддерживает такие понятия, как объявления, назначение свойств, действия и потоки. Важной особенностью является возможность выражать уровень доверия к фактам, что позволяет системе выявлять информацию, требующую дополнительного подтверждения. Компилятор, написанный на Python, использует Lark для парсинга. Его грамматика генерируется непосредственно из онтологии, то есть расширение языка требует изменения данных, а не кода. Такой модульный дизайн позволяет гибко расширять словарный запас без изменения основных правил парсинга.
CdXz5zHNQW_IUf3kDkWHC.png
biwak.info разработал мобильную карту для альпийских хижин, добавив 33 437 названных вершин с подробной информацией, полученной из OpenStreetMap и Wikidata. Для оптимизации работы на мобильных устройствах с ограниченным подключением, значительный объем данных о вершинах (15,4 МБ) требовал эффективной загрузки. Решением стало сегментирование данных на более мелкие файлы JSON на основе тайлов, аналогично существующей сетке тайлов slippy map, используемой Leaflet. Это позволяет браузеру загружать только релевантные данные о вершинах, видимые в текущем представлении карты пользователя.Для сетки данных был выбран фиксированный уровень масштабирования 10, обеспечивающий баланс между количеством сетевых запросов и размером каждого загружаемого файла. На этом уровне альпийский тайл имеет размер примерно 27x27 км, а типичный экран телефона при масштабировании 12 охватывает не более шести тайлов, при этом медианный размер тайла составляет 13 КБ (3,6 КБ в сжатом виде).Python-скрипт создает эти файлы тайлов, а также манифест непустых тайлов, гарантируя, что запрашиваются только необходимые файлы. Данные JSON каждого тайла компактны, используют целочисленные координаты и заголовок полей для минимизации размера файла. Вершины ранжируются по заметности или изоляции для управления видимостью на разных уровнях масштабирования карты, отображая только более значимые вершины при низких масштабах.Клиентский JavaScript использует событие Leaflet 'moveend' для определения необходимых тайлов, загружая их с максимальной скоростью четырех параллельных запросов для предотвращения перегрузки медленных соединений. LRU-кэш из 64 тайлов управляет загруженными данными, удаляя наименее недавно использованные тайлы, если они не находятся в текущем представлении. Данные о вершинах отображаются на одном холсте вместо использования отдельных маркеров Leaflet, что повышает производительность.Нажатие на карту выполняет поиск ближайших соседей в загруженных тайлах для идентификации близлежащих вершин. Сетка на основе тайлов также естественным образом поддерживает глубокие ссылки, позволяя создавать стабильные URL-адреса для конкретных вершин. Будущие улучшения включают добавление большего количества категорий данных, таких как перевалы и смотровые площадки, а также потенциальный переход на векторные тайлы (MVT) для интеграции с картографическими библиотеками, такими как MapLibre. Эта система эффективно обрабатывает большой набор данных без сервера или базы данных, демонстрируя мощь простой файловой сетки.
CdXz5zHNQW_7Oo4LQLM3G.webp
Microsoft улучшает работу разработчиков на Python, внедряя протокол серверного типа (TSP). Этот открытый стандарт, расширение протокола серверного языка, позволяет редакторам и инструментам интегрировать средства проверки типов в качестве серверных компонентов. TSP отделяет Pylance, слой интеллектуального анализа IDE VS Code, от его стандартного средства проверки типов Pyright. Это разделение позволяет разработчикам легко переключаться на альтернативные средства проверки типов, такие как Pyrefly от Meta. Основные функции Pylance, включая автодополнение и интеграцию с GitHub Copilot, остаются неизменными независимо от выбранного средства проверки типов. Microsoft сотрудничает с Meta, чтобы обеспечить полную поддержку Pyrefly в TSP, используя опыт Meta в области статического анализа типов и библиотек ИИ/МО. Это сотрудничество направлено на содействие интероперабельности в экосистеме Python. Pyrefly, известный своей высокой производительностью и совместимостью с CI, теперь может быть беспрепятственно интегрирован с Pylance. Это предоставляет разработчикам механизм анализа типов Pyrefly в сочетании с интеллектуальным анализом Pylance, осведомленным об ИИ. Пользователи могут опробовать этот новый опыт, установив Pylance версии 2026.4.1 или новее. Pylance автоматически обнаруживает установки Pyrefly и предлагает пользователям переключиться. В качестве альтернативы пользователи могут вручную выбрать предпочитаемый источник диагностики, включая Pylance, Pylance + Pyright или Pylance + Pyrefly, через настройки VS Code. Затем строка состояния будет четко указывать активный источник диагностики.
CdXz5zHNQW_jwz7YqFtlb.png
Тахион — новый дискретизирующий профилировщик, представленный в Python 3.15. Он предлагает интерфейс командной строки (CLI) для профилирования скриптов и подключения к запущенным процессам. Статистическое профилирование включает периодическое получение снимков состояния программы для оценки времени, затраченного в различных участках кода. Тахион, как дискретизирующий профилировщик, собирает эти снимки для построения своих оценок производительности. Точность результатов Тахиона увеличивается с увеличением времени выполнения и частоты дискретизации. Статья направлена на объяснение статистического профилирования и демонстрацию использования CLI Тахиона. Тахион является частью модуля profiling.sampling стандартной библиотеки. Эта серия посвящена Python 3.15 с ежедневными объяснениями новых функций. Подписка на серию электронных писем предоставляет наглядные примеры для каждой функции. Предоставленный текст начинается с представления Тахиона и его основной функциональности.
CdXz5zHNQW_hmfVV9UEzH.webp
В этом выпуске PyCoder's Weekly освещаются различные темы, связанные с Python. В руководстве рассматриваются Django ORM и миграции, подробно рассказывается, как их создавать, нарушать и исправлять, в том числе как решать проблемы производительности в Django 6.1. Объясняется функциональное программирование в Python, обсуждается его парадигма и практическое применение. PropelAuth выделяется своими функциями безопасности, особенно для интеграции с ИИ-агентами. Рассматривается шаблон Model-View-Controller (MVC) в веб-приложениях Python на примере Flask. Доступен Python 3.16.0 Alpha 1, а подкаст Python Bytes отпраздновал свой 500-й выпуск. Также отмечен выпуск PyPy v8.0.1. Курс Claude Code учит создавать CLI-приложения на Python без чрезмерной зависимости от ChatGPT. OpenTeams анализирует свои вклады в PyTorch в 2026 году, отмечая возросшее использование ИИ-агентов. Демонстрируется байесовская оптимизация для поиска гиперпараметров с использованием scikit-learn. Исследуется уникальный оператор "+" в библиотеке datetime Pendulum. PyPI обновил расчет репутации электронной почты, снова разрешив адреса Outlook. Преимущества Parquet в инженерии данных объясняются с использованием Polars, DuckDB и PyArrow. Возможности Gemini 4 Argon демонстрируются с помощью генерации кода на Python. Обсуждается структура проекта в Python, предлагаются рекомендации по выбору между плоской структурой и структурой src/. Проводится сравнение Docling и LlamaParse для извлечения таблиц из PDF. В руководствах рассматриваются основные концепции Python, такие как строки, типы данных и первые шаги. Наконец, предоставляется список предстоящих событий Python.
CdXz5zHNQW_wpqLkNZyB4.png
Nod — это расширение JupyterLab, позволяющее пользователям приостанавливать выполнение программ Python и открывать блокнот на любой конкретной строке для отладки. Этот инструмент помогает исследовать переменные и стек вызовов непосредственно в работающей программе. Выпущена версия Polars 2.0 с потоковым движком по умолчанию для улучшения памяти и скорости. Однако этот новый движок не гарантирует порядок строк для определенных операций, требуя явной обработки, если порядок критичен. Polars 2.0 также включает обработку вне памяти по умолчанию, позволяя ему выгружать данные на диск при исчерпании памяти. Обновление представляет нативный тип данных Map, повышающий производительность и добавляющий новые функции для работы с картами. Django-cachalot представлен как решение для кэширования запросов ORM, автоматически аннулируя их при изменении базовых данных. Он обеспечивает значительное ускорение для приложений с интенсивным чтением, но менее подходит для таблиц с частыми операциями записи. Ведется работа над поддержкой асинхронных транзакций в Django, направленная на улучшение взаимодействия задач asyncio в рамках транзакций базы данных. Текущие предложения включают новые дизайны, позволяющие параллельным задачам продолжать запись, даже если транзакция откатывается. Jazzband, важный проект, готовится к закрытию, что побуждает к поиску альтернативных платформ. Treemd выделен как полезный TUI для просмотра файлов Markdown. Обсуждения также касаются членства в Talk Python, визуальных руководств по темам и последних предложений по улучшению Python. Отмечается потенциальная устарелость бесплатной многопоточной версии Polars в PyPI. Наконец, краткое упоминание шутки завершает разнообразные технические обсуждения эпизода.
Python 3.15 представляет несколько улучшений для разработчиков, с особым акцентом на улучшенные сообщения об ошибках. Одно из заметных улучшений — более полезные сообщения при возникновении исключений AttributeError. Если у объекта есть член с правильным именем, расположенный во вложенном атрибуте, Python теперь предложит правильный путь. Например, если o.value неверен, но существует o.inner.value, сообщение об ошибке укажет на это. Кроме того, при попытке доступа к методам встроенных типов и возникновении AttributeError, Python теперь будет проверять распространенные опечатки. Если очевидная опечатка не обнаружена, он обратится к таблице часто используемых методов. Это направлено на сокращение времени отладки путем предоставления более прямого руководства. Статья является частью серии, посвященной функциям Python 3.15, с ежедневными объяснениями и примерами. Другие упомянутые улучшения включают добавление большего количества цветов и использование кодировки UTF-8 по умолчанию. Эти изменения призваны сделать разработку на Python более эффективной и удобной для пользователя. Автор сообщил об ошибке в функции предложения вложенных атрибутов во время альфа-фазы, которая была быстро устранена.
CdXz5zHNQW_saimMyYTTU.webp
В феврале 2026 года Python Software Foundation (PSF) перевела свои вики в режим только для чтения из-за рисков безопасности и чрезмерного трафика ботов, перегрузившего устаревшую инфраструктуру. Это внезапное решение вызвало неудобства для членов сообщества, которые полагались на эти ресурсы и вносили в них свой вклад. Для решения этих проблем PSF запустила новые вики, размещенные на GitHub Pages, предлагающие современный интерфейс и систему управления контентом на основе разрешений. Эти новые вики теперь доступны по предоставленным ссылкам для вики PSF, Python и Jython. Чрезмерный автоматизированный трафик исходил в основном от ИИ-ботов, пытавшихся сканировать интернет, что перегрузило старые серверы. Кроме того, некоторые части старых вики работали на неподдерживаемой версии Python 2, что создавало уязвимости в безопасности. PSF признает разочарование, вызванное внезапным выводом из эксплуатации старых вики, особенно для преданных авторов. Они стремятся к тому, чтобы новые вики стали ценным и улучшенным ресурсом для сообщества, а вклад теперь управляется через pull requests на GitHub. GitHub был выбран для упрощения хостинга и управления, в соответствии с существующими проектами, размещенными на PSF. Новая система на основе разрешений через репозитории GitHub позволяет любому запрашивать изменения через pull requests. Этот переход к статическому сайту, генерируемому на GitHub, снижает риски безопасности и защищает от перегрузки, вызванной ботами. Внесение вклада поощряется путем ознакомления с файлами README репозиториев, а постоянным авторам будет предоставлен доступ на запись.
PyCon Ireland 2026 пройдет в Chartered Accountants House в Дублине в субботу, 21 ноября. Конференция включает более тридцати докладов по трем направлениям, как минимум четыре мастер-класса и две панельные дискуссии, наряду с основными докладами и короткими выступлениями. Значительная часть программы посвящена темам искусственного интеллекта и машинного обучения. К ним относятся агентный ИИ, байесовское моделирование, бенчмаркинг машинного обучения, архитектура данных, прогнозирование, мониторинг машинного обучения и нейронные сети. Помимо ИИ, на сессиях будут рассмотрены асинхронный ввод-вывод, упаковка Python, квантовое программирование, безопасное кодирование и программная археология. Организаторы получили более 170 заявок и благодарят всех участников за их предложения. Билеты уже в продаже: общие билеты стоят 59 евро, студенческие — 35 евро, а корпоративные — 159 евро. Все билеты "все включено", предоставляя доступ ко всем сессиям, возможностям для нетворкинга, завтраку, обеду и напиткам. В расписание могут быть внесены дополнительные изменения, поэтому участникам рекомендуется проверять обновления.
Компрометация eMudhra CA выявила системные проблемы в экосистеме Python, связанные с управлением центрами сертификации. CPython полагается на OpenSSL, которому требуются корневые сертификаты ЦС, а Python поставляет их через пакет certifi для платформ, не имеющих собственной поддержки. Исторически certifi был критически важен, но дистрибутивы Linux теперь предоставляют свои собственные, лучше управляемые хранилища сертификатов. Серьезной проблемой является отсутствие механизма отзыва сертификатов по умолчанию и активного в установках Python на базе OpenSSL. Обновление certifi как зависимости вызывает каскадные обновления во всей экосистеме Python и pip. Pip включает в себя certifi, что означает, что компрометация может потребовать срочных обновлений как pip, так и самого Python. Команда реагирования на инциденты безопасности Python должна координировать выпуск обновлений для нескольких веток Python. Pip переходит на использование truststore по умолчанию, что уменьшит его зависимость от certifi, особенно для пользователей Linux. Этот инцидент потребовал от многих других инструментов упаковки и компонентов инфраструктуры действовать быстро. Оповещение пользователей о необходимости обновления зависимостей после применения исправлений остается серьезной проблемой. Автор предлагает, чтобы PyPI прекратил быть каналом распространения сертификатов, учитывая, что большинство платформ теперь предоставляют адекватные наборы сертификатов. Предлагается переход к большей опоре на системные хранилища сертификатов, чтобы снизить нагрузку на сопровождающих Python и pip. Открытый вопрос об эффективном отзыве сертификатов для систем на базе OpenSSL требует решения для снижения нагрузки на волонтеров в будущем.
Python 3.15 представляет файлы конфигурации запуска с расширением .start для выполнения точек входа пакетов при запуске интерпретатора. Эти точки входа работают аналогично операторам import, указывая модуль, за которым следует двоеточие и вызываемая функция. Например, error_links:install указывает интерпретатору вызвать функцию install в модуле error_links. Эта новая функция основана на функциональности модуля site стандартной библиотеки, который автоматически запускается при старте. Исторически файлы .pth использовались для расширения пути поиска модулей Python и могли также содержать строки import. Однако строки import в файлах .pth представляли угрозу безопасности. PEP 829 решил эту проблему, представив более безопасный метод для выполнения пользовательского кода запуска. Следовательно, строки import в файлах .pth теперь устарели в пользу файлов .start в Python 3.15 и более поздних версиях. Python 3.15 предлагает ряд улучшений, включая встроенные типы, ленивые импорты, улучшенную типизацию и более визуальные функции. Серия "15 дней Python 3.15" ежедневно объясняет эти новые возможности.
CdXz5zHNQW_88iLQz2pFM.webp
Управляющий совет Django ищет вклад сообщества для Django 6.2. Они выделяют основные функции, требующие тестирования и проверки, такие как CompositeField для подзапросов с несколькими столбцами и настройка DEFAULT_PK_FIELD для альтернативных первичных ключей, таких как UUID. Совет также указывает на доклад о тестировании проектов на основной ветке Django, который может быть адаптирован для тестирования конкретных функциональных веток. Меньшие функции также требуют внимания, включая добавление QuerySet.executed_queries, секционированные файлы cookie, поддержку метода HTTP QUERY и улучшенные сообщения об отладке CSRF за прокси.Очередь новых функций также является приоритетом, с идеями, сгруппированными по типу необходимого ввода. Несколько идей, требующих технической проверки, включают настройку Meta модели и генерацию миграций, реализацию современной защиты CSRF, добавление API тайм-аута для задач, целостность подресурсов и включение карт импорта. Для тех, у кого ограниченное время, приветствуется вклад сообщества в существующие идеи посредством реакций эмодзи, особенно эмодзи 😕, чтобы указать, что обзор был замечен. Конкретные идеи, требующие обратной связи от сообщества, включают лучшие хуки для настройки электронной почты сброса пароля, помощь в PR для документации Git, парсинг URL-адресов служб, стандартизацию порядка выполнения задач, обновление AuthenticationMiddleware и поддержку адресов электронной почты Unicode через SMTP. Совет благодарит сообщество и призывает к участию через форум Django или Discord.
Выпуск Python 3.15.0 был задокументирован серией обновлений, начавшихся за две недели до финального релиза. Первоначальный ажиотаж нарастал, поступали запросы о ожидаемых функциях. В запланированный день релиза проблема с сертификатом вызвала ошибку 503 на ключевых сайтах Python, что задержало процесс. После устранения серверных проблем потребовалось внимание к нестабильному тесту и нескольким блокирующим релиз проблемам, включая исправления ленивого импорта в последний момент.Для надлежащего включения этих исправлений был объявлен и выпущен неожиданный третий релиз-кандидат, 3.15.0rc3, что отложило дату финального релиза на неделю. Зависимость от неперенесенных тестов вызвала задержку в слиянии одного из блокирующих ленивый импорт проблем. После успешного выпуска rc3 команда подготовилась к финальному запуску.Со второй попытки финального релиза все блокирующие проблемы были устранены, и сборщики работали исправно. Однако ошибка в инструменте для составления списка изменений, blurb, потребовала быстрого исправления, обновления и переноса. После этого сбор артефактов релиза завершился неудачей из-за другой проблемы с файлом блокировки, связанной с blurb, которая была оперативно решена. Были запущены сборки установщиков для macOS и Windows, причем процесс для Windows требовал ручного одобрения для подписания бинарных файлов.Наконец, был выпущен Python 3.15.0, предлагающий новые функции, такие как ленивый импорт, frozendict и более быстрый JIT. Задачи после выпуска включали обновление PEP 790, пересборку документации и разблокировку ветки 3.15 для дальнейших слияний основной командой. Затем менеджер релиза подал сигнал о следующем альфа-релизе для Python 3.16.
CdXz5zHNQW_5t7QXRxkX2.png
Python Software Foundation (PSF) рада объявить о третьем наборе стипендиатов PSF на 2026 год. В эту группу, отмеченную за их выдающийся вклад в сообщество Python, входят Альдо Канео, Донхи На, Пол Мур и Такаюки Симидзукава. Эти люди признаны за свое лидерство, поддержку научного сообщества Python, поддержку виртуальных сообществ и библиотек, создание образовательных материалов, организацию мероприятий и наставничество. Их усилия вносят значительный вклад в глобальную доступность Python. PSF поощряет признание Python-разработчиков по всему миру и предоставляет критерии для членства в качестве стипендиата на своем веб-сайте. Прием заявок на четвертый квартал 2026 года открыт до 20 ноября 2026 года. Желающие выдвинуть кандидатов должны отправить описание своих достижений в области Python и свой адрес электронной почты по адресу psf-fellow at python.org. Действующие стипендиаты PSF, заинтересованные в помощи с рассмотрением заявок, также приглашаются связаться по адресу psf-fellow at python.org. PSF выражает благодарность за постоянную преданность делу этих стипендиатов.
Домашний сервер, изначально управляемый вручную, был преобразован с использованием кодирующего агента и декларативной конфигурации. Этот агент имеет доступ только для чтения, что предотвращает прямые изменения сервера. Все изменения теперь кодируются в развертываниях pyinfra в репозитории git. Агент исследует сервер, пишет код Python для желаемых изменений состояния и представляет эти изменения для проверки. Важно отметить, что пароль sudo действует как привратник, требуя вмешательства пользователя для любого фактического развертывания. Структура репозитория включает правила агента, инвентарь состояния сервера, развертывания pyinfra и файлы конфигурации. Задачи агента включают чтение документации, поиск конфигураций и написание юнитов systemd. Пользователь просматривает пробные запуски, а затем выполняет код для развертывания. Этот рабочий процесс обрабатывает обновления системы, миграцию сервисов и развертывание пользовательских приложений. Ошибки усваиваются и включаются в правила агента для будущих сессий. Хотя этот подход эффективен для личных данных, доступ только для чтения требует осторожности при работе с машинами, содержащими конфиденциальную информацию третьих лиц.
CdXz5zHNQW_zasqR31jDU.png
Разговор посвящен компонентам ИИ-агента, отличая большую языковую модель (LLM) от окружающего программного обеспечения. Когда ИИ организует фотографии, LLM не получает прямого доступа к файлам на компьютере; вместо этого она генерирует запросы. Этот запрос получает "оболочка" (harness), которая представляет собой программное обеспечение, управляющее операциями агента. Затем оболочка использует специальные "инструменты" для выполнения таких действий, как перечисление файлов или чтение метаданных.Оболочка отправляет результаты работы инструментов обратно в LLM, позволяя ей обрабатывать информацию и принимать решение о следующем шаге. LLM передает свои запросы оболочке через структурированные "вызовы инструментов", которые оболочка интерпретирует для вызова нужного инструмента. Это взаимодействие создает цикл агента, в котором модель, оболочка и инструменты постоянно обмениваются информацией.Аналогия модели как "мозга", инструментов как "мышц", а оболочки как "координатора" помогает прояснить их роли. Однако оболочка также обеспечивает соблюдение правил и ограничений, например, предотвращая непреднамеренное изменение файлов. Процесс завершается, когда модель генерирует окончательный ответ или когда оболочка останавливает операцию из-за ошибок или ограничений. Агент также должен убедиться, что задача, такая как копирование файлов в определенные папки, была выполнена точно и без изменения оригиналов.
CdXz5zHNQW_eyYaVLyYu6.jpeg
В этой статье освещаются значительный вклад Эммы Кук в EuroPython 2026 в составе команды по доступности. Участие Эммы повысило уровень инклюзивности конференции, сделав ее более гостеприимной для всех участников. Она описала свой волонтерский опыт как энергичный, гостеприимный и приносящий удовлетворение. Ранее посещавшая конференцию как участник, а затем как волонтер, в 2026 году она впервые заняла должность в организационном комитете. Эмма сосредоточилась на обеспечении физической доступности и поддержки для нейроотличных людей. В ее обязанности входило обеспечение тихих комнат, предоставление стим-игрушек и удовлетворение различных потребностей участников, таких как уход за детьми и диетические требования. Ключевым достижением стало внедрение схемы "Подсолнух для скрытых инвалидностей" на EuroPython. Эта инициатива позволяет людям со скрытыми формами инвалидности ненавязчиво сигнализировать о том, что им может потребоваться понимание. Взгляд Эммы на конференции кардинально изменился, породив глубокое уважение к закулисной работе. Она призывает других заняться волонтерством, чтобы сотрудничать с увлеченными людьми, оказать ощутимое влияние и получить уникальные знания.
CdXz5zHNQW_fdEJ2urIrT.png
Состояние инструментов Python в 2026 году меняется благодаря достижениям в области искусственного интеллекта, что побуждает к переоценке давно принятых решений. Группа экспертов, включая Кельвина Хендрикc-Паркера, Пэта Декера, Рёвена Лернера и Сидни Ранкла, обсуждает эти изменения. Некоторые устоявшиеся инструменты получили улучшения производительности, в то время как другие были полностью вытеснены. В беседе исследуется текущий ландшафт и неожиданные замены в экосистеме Python. В выпуске представлены мнения людей, занимающихся DevOps, обучением разработчиков и управлением продуктами для инструментов ИИ, таких как LangChain. Один из участников дискуссии даже признается, что теперь редко пользуется традиционным редактором кода. Эта дискуссия подчеркивает, как быстро развивающиеся технологии ИИ влияют на выбор и использование инструментов разработки Python. Выпуск призван предоставить слушателям обновленный взгляд на наиболее эффективные инструменты Python, доступные сегодня. Он углубляется в конкретные примеры инструментов и фреймворков, которые являются новыми или значительно улучшились. В конечном итоге, группа экспертов предлагает рекомендации по навигации в современной среде разработки Python.
Python известен быстрыми пакетами, несмотря на то, что сам по себе является медленным языком. Самые быстрые пакеты Python написаны на компилируемых языках, таких как C, C++ или Rust, при этом Python выступает лишь в роли связующего звена.Пользователи Python обычно даже не замечают этого, поскольку PyPI (индекс пакетов Python) предоставляет предварительно скомпилированные бинарные файлы. Они называются "wheels" (колеса), и когда вы запускаете pip install, он предпочитает их исходным дистрибутивам. Например, каждый выпуск моих пакетов поставляется до 90 различных "wheels". Вам нужен отдельный бинарный "wheel" для каждой комбинации версии Python, платформы и архитектуры. Обычный дистрибутив содержит только исходный код.Без "wheels" Python распространение было бы намного сложнее. Когда "wheels" недоступны, пользователь должен компилировать код при установке пакета. Это требует наличия правильного компилятора и системных зависимостей.Поскольку я провел немало времени, анализируя вредоносные пакеты на PyPI, это заставило меня задуматься о "wheels".
Python 3.15 представляет возможность использовать оператор звездочки для распаковки в списковых включениях. Эта новая функция упрощает "сплющивание" вложенных списков, позволяя писать более лаконичный код. Например, список списков можно "сплющить", распаковав каждый подсписок непосредственно во включение. Ранее для достижения того же результата требовалось вложенное списковое включение, которое было более многословным. Синтаксис распаковки отражает структуру эквивалентных вложенных циклов for. Оператор распаковки работает не только со списковыми включениями, но и с множественными включениями, словарными включениями и генераторными выражениями. В этой статье подробно описывается новый синтаксис и приводятся альтернативы для старых версий Python. Это часть серии, посвященной функциям Python 3.15, с четкими объяснениями и примерами. Цель состоит в том, чтобы сделать новые функциональные возможности доступными без необходимости просматривать официальные списки изменений. Читатели могут подписаться, чтобы получать эту бесплатную образовательную серию электронных писем.
CdXz5zHNQW_X0sf33USpe.webp
Фрилансер посчитал свой платный инструмент для ведения бухгалтерии слишком медленным и лишенным необходимой отчетности. Он решил создать собственное решение на Python, в результате чего получилась небольшая кодовая база с обширным тестированием. Эта пользовательская система включает сканер счетов с человеческим контролем для извлечения данных. Процесс автоматизирует ежемесячные бухгалтерские задачи, генерируя Excel-отчет для бухгалтера. Несмотря на соблазн использовать ИИ, фрилансер выделил только один этап, требующий ИИ: извлечение данных из различных PDF-файлов поставщиков. Остальная часть процесса полагается на надежный код для арифметических операций и проверки. Система делает акцент на человеческом участии в критических точках принятия решений и утверждении данных. После утверждения PDF-файлы переименовываются, служа неизменяемыми записями, что исключает необходимость в базе данных. Дизайн системы отдает приоритет неизменяемости и отслеживаемости, при этом все итоги в финальном отчете являются формулами. Такой подход обеспечивает легкую проверку бухгалтером. Теперь фрилансер поддерживает систему, но получает полный контроль, снижение затрат и улучшенный рабочий процесс. Ключевые выводы включают картирование рабочих процессов, ограниченное использование ИИ, кодирование правил, человеческий надзор и обеспечение отслеживаемости.
CdXz5zHNQW_B1IdOrwP5A.png
CdXz5zHNQW_ybsC98iweG.webp
Команда PyPy выпустила версию 8.0.1, обновив PyPy 14 сентября 2026 года. Этот релиз исправляет утечки памяти буфера и проблемы с привязкой RPython-объектов к C PyObject-объектам. Были обновлены стандартные библиотеки для Python 3.11 и 3.12, а также включен libexpat. Внутренне для тестирования теперь используется pytest 3.10.Релиз включает PyPy2.7, поддерживающий Python 2.7.18+, и PyPy3.11, поддерживающий Python 3.11.17, который станет последним релизом. Также включен PyPy3.12, поддерживающий Python 3.12.15. Все три интерпретатора основаны на общей кодовой базе.Пользователям рекомендуется обновиться, а ссылки для скачивания можно найти на pypy.org. Команда благодарит доноров и приглашает к участию в исправлении ошибок, документировании и улучшении JIT. Разработчикам библиотек, использующих C-расширения, настоятельно рекомендуется создавать версии на CFFI для лучшей производительности PyPy или использовать предстоящую поддержку тега cp312-abi3.PyPy — это быстрый интерпретатор Python, замена CPython, известный своим интегрированным трассирующим JIT-компилятором. Бинарные сборки предоставляются для x86 машин (Linux, Mac OS, Windows) и 64-битных ARM (Linux, macOS). Поддерживаются и другие платформы, такие как Windows 32-бит и различные архитектуры Linux, но без официальных бинарных файлов.Команда PyPy выражает благодарность участникам и приветствует новых членов. Они также приглашают разработчиков других динамических языков изучить RPython. Для получения более подробной информации доступен полный список изменений.
В эпизоде обсуждается Брайан, дополнительный контент и шутка. Ник исследует Jev, модель принятия решений "Системы 1", которая предлагает быструю и экономичную классификацию без генерации токенов, позиционируя ее между генеративными LLM и традиционными моделями машинного обучения. Бретт объявляет о выборах первого Совета по упаковке Python (PPC), созданного в соответствии с PEP 772, который в настоящее время определяет свою сферу деятельности и логистику. Кальвин представляет бенчмарк Дэниела Лемира fastsimdjson для Python, демонстрирующий его способность анализировать JSON-данные со скоростью десятки гигабайт в секунду, особенно при многопоточности и ленивом парсинге. Майкл обсуждает ежегодный бенчмарк Python Мигеля Гринберга, показывая, что экспериментальная JIT-сборка Python 3.15 значительно быстрее, хотя PyPy и Rust по-прежнему превосходят CPython в однопоточных тестах. Кэрол представляет Satyrn AI, инициативу под руководством сообщества, ориентированную на прозрачные и надежные инструменты ИИ для разработчиков Python. Майкл также выделяет основанные на Rust и созданные с помощью ИИ открытые альтернативы Adobe Creative Suite от ArtCraft, подчеркивая меняющийся ландшафт разработки программного обеспечения и проблемы устойчивости. Кальвин делится ссылкой на llmfit.org для проверки совместимости моделей и отмечает, что uv 0.13.0 теперь по умолчанию использует Python 3.15. Ник продвигает программу студенческих послов Black Python Devs, а Бретт объявляет о финальном выпуске Python 3.15.0. Наконец, эпизод завершается шуткой об "исключительном" Python-разработчике, который генерирует много исключений.
Было проведено сравнение производительности между CPython 3.15 и другими реализациями Python с использованием восьми примеров программ. Целью было оценить прогресс CPython и сравнить его с альтернативами, такими как PyPy и транспайлеры Ahead-of-Time (AOT). Результаты бенчмарка показали значительные улучшения в CPython 3.15 с его JIT-компилятором. Без JIT CPython 3.15 продемонстрировал скромное ускорение, но с включенным JIT производительность существенно возросла. Это улучшение JIT в 3.15 считается ключевым выводом, предполагающим потенциальное будущее сближение с производительностью PyPy. PyPy 7.3.20 показал очень впечатляющее ускорение, даже с его широкой поддержкой функций Python. AOT-транспайлеры, такие как TurboPython и Shed Skin, которые работают с ограниченными подмножествами Python, достигли еще большего ускорения. TurboPython показал особенно высокую производительность, будучи самым быстрым для некоторых программ, хотя и имеет некоторые области для улучшения. Shed Skin также продемонстрировал улучшения производительности в своих последних версиях. Автор признает небольшую предвзятость в результатах в пользу Shed Skin из-за их участия. Полные подробные результаты для каждой программы доступны отдельно.
CdXz5zHNQW_ZYgwc6b5Y1.png
В этой рассылке освещаются предстоящие функции и новости, актуальные для разработчиков Python. Ожидается, что Python 3.15 представит пять захватывающих новых функций, а тесты производительности покажут его скорость. CodeAF представлен как эффективный инструмент для решения проблем с кодом на основе ИИ. Предлагается руководство по ИИ-агенту Meta, Muse, для тех, кто интересуется его возможностями и обработкой данных. Предложения по улучшению Python (PEP) обсуждаются как способ для разработчиков понять изменения в языке. Рассылка также охватывает практические руководства по различным темам. К ним относятся генерация изображений с помощью API OpenAI, использование Hugging Face Transformers для ИИ с открытым исходным кодом и оптимизация траекторий полета с помощью scikit-decide. Исследуются продвинутые темы, такие как асинхронные транзакции в Django, создание профилировщиков, осведомленных об асинхронности, и управление памятью в Python. Кроме того, представлены несколько новых проектов и репозиториев кода в экосистеме Python. Рассылка завершается разнообразным списком предстоящих мероприятий и встреч, связанных с Python.
CdXz5zHNQW_xNle5WNziN.png
Python 3.15 представляет новую встроенную функцию sentinel для создания значений-заполнителей. Это обеспечивает более идиоматичный подход для аргументов по умолчанию или возвращаемых значений, когда None не подходит. Функция sentinel принимает строковый аргумент для своего имени, которое также служит ее представлением по умолчанию в виде строки. Необязательно, второй именованный аргумент может указывать пользовательское представление. Хорошей практикой является соответствие имени sentinel и переменной, которой оно присвоено, поскольку линтеры и проверки типов могут отмечать несоответствия. Sentinel часто используют имена в верхнем регистре, поскольку они обычно являются неизменяемыми константами. Основное применение sentinel — для сравнения, проверки соответствия значения определенному заполнителю. Это полезно в функциях, которым необходимо различать допустимое значение и намеренное отсутствие такового. Серия "15 дней Python 3.15" будет исследовать новые функции с наглядными примерами. Пример сценария включает функцию под названием "find", которая использует sentinel.
CdXz5zHNQW_EoVfbilALi.webp
Sony объявила, что все игры, выпущенные с 2028 года, будут только в цифровом формате. Ожидается, что этот переход затронет и Xbox, в то время как Nintendo может продолжить предлагать физические издания своих эксклюзивных игр. Полностью цифровое игровое будущее поставит платформы в те же условия, что и стриминговые сервисы, такие как Netflix. Недавние переиздания Sonic the Hedgehog 3 и Pikmin 2 иллюстрируют потенциальные проблемы. Цифровые игры функционируют как лицензии, требуя постоянных отношений между игроками и владельцами медиа. На эти отношения влияют лицензионные соглашения владельца медиа на любой включенный контент. Когда лицензия истекает или сталкивается с проблемами, разработчики должны исправить это в игре. Игры с музыкой, такие как Rock Band, уже демонстрируют это с истекающими сроками лицензирования. Саундтрек Sonic the Hedgehog 3 был изменен в переизданиях из-за предполагаемого неуказанного участия Майкла Джексона. Аналогично, включение реальных брендов в Pikmin 2 было заменено вымышленными в последнем издании. Эта тенденция предполагает, что будущие игры могут столкнуться с творческими ограничениями и проблемами с владением и сохранением.
CdXz5zHNQW_Iv3vUonWZa.jpeg
Python 3.15 представляет явные ленивые импорты для ускорения запуска приложений. Эти импорты обозначаются ключевым словом "lazy" перед инструкцией импорта. В то время как обычные импорты загружают модули немедленно, ленивые импорты откладывают загрузку модуля до тех пор, пока он фактически не будет использован. Это предотвращает ненужные накладные расходы на начальном этапе запуска Python-приложения. Серия статей призвана объяснить эту новую функцию на наглядных примерах. Также будет рассмотрено, как писать код, совместимый со старыми версиями Python. Существующая система импорта Python загружает модули сразу же при обнаружении инструкции импорта. Это может привести к значительным задержкам, если в начале скрипта импортируется много модулей. Ленивые импорты решают эту проблему, загружая модули только тогда, когда к ним явно обращаются. Это особенно полезно для модулей, которые могут не использоваться в каждом пути выполнения приложения. Основное внимание уделяется ускорению запуска Python-приложений путем оптимизации процесса импорта.
CdXz5zHNQW_RgxhaSl0ry.webp
4.0.0a7 приближается к финальной форме для релиза 4.0.0. В нем содержится множество исправлений ошибок, полученных в результате тестирования и обращений, бинарные файлы GLUT для Windows теперь являются отдельным пакетом Python, обновлена система документации, а OpenGL_accelerate теперь точно привязывает версию OpenGL.На данном этапе, вероятно, стоит протестировать ваши кодовые базы PyOpenGL с альфа-версией, чтобы сообщить о любых регрессиях. Это крупный релиз с множеством изменений. Он также протестирован гораздо больше, чем любой предыдущий релиз PyOpenGL, поэтому я относительно уверен, что он работает в том смысле, что позволяет писать 3D-движки с современными функциями, но потенциально могут возникнуть регрессии, особенно если у вас есть старый код (большинство тестов проводится на контекстах OpenGL 3.3+ с наборами функций без устаревших элементов) или приложения на основе Tk (где реализован новый виджет).Нам еще предстоит проделать некоторую работу на Mac, портировав новый виджет Tk для использования CGL. Мы также еще не получили подтверждения, что у нас работает реальная (а не только в CI) эксплуатация на Mac.