Python 3.15 добрался до rc1: ленивые импорты, frozendict и UTF-8 по умолчанию
4 августа вышел первый релиз-кандидат. Финал ожидается в октябре, так что смотреть, что придётся чинить, стоит уже сейчас. Самое заметное:
— PEP 810, ленивые импорты. Новый синтаксис
— PEP 686, UTF-8 по умолчанию. Кодировка для I/O больше не зависит от системной локали. Откатить можно через
— PEP 814, встроенный
— PEP 798, распаковка в comprehensions.
— PEP 799, семплирующий профайлер Tachyon прямо в стандартной библиотеке. Другой класс инструмента, чем cProfile: тот инструментирует каждый вызов и искажает картину на горячем коде, семплирующий периодически снимает стек и почти не мешает.
— JIT прибавил 6–7% среднего геометрического на x86-64 Linux и 12–13% на AArch64 macOS.
Плюс по мелочи: sentinel из PEP 661, TypedDict с типизированными extra-полями (PEP 728), TypeForm (PEP 747) и более внятные подсказки в AttributeError.
Полный список — в whatsnew, там же примеры кода и раздел с несовместимостями.
#python315 #cpython
4 августа вышел первый релиз-кандидат. Финал ожидается в октябре, так что смотреть, что придётся чинить, стоит уже сейчас. Самое заметное:
— PEP 810, ленивые импорты. Новый синтаксис
lazy import json и lazy from json import dumps. Модуль не грузится, пока имя реально не тронули. Строго opt-in: меняется поведение только помеченных строк. Главные бенефициары — CLI-утилиты и тест-сьюты с тяжёлым деревом зависимостей.— PEP 686, UTF-8 по умолчанию. Кодировка для I/O больше не зависит от системной локали. Откатить можно через
PYTHONUTF8=0 или -X utf8=0 — и вот это стоит проверить заранее, если у вас Windows и legacy-файлы в cp1251.— PEP 814, встроенный
frozendict. Наконец-то неизменяемый словарь в ядре, а не в трёх конкурирующих пакетах на PyPI.— PEP 798, распаковка в comprehensions.
[*L for L in lists] для плоского списка, {**d for d in dicts} для слияния словарей — синтаксическая дыра, которая раздражала лет десять.— PEP 799, семплирующий профайлер Tachyon прямо в стандартной библиотеке. Другой класс инструмента, чем cProfile: тот инструментирует каждый вызов и искажает картину на горячем коде, семплирующий периодически снимает стек и почти не мешает.
— JIT прибавил 6–7% среднего геометрического на x86-64 Linux и 12–13% на AArch64 macOS.
Плюс по мелочи: sentinel из PEP 661, TypedDict с типизированными extra-полями (PEP 728), TypeForm (PEP 747) и более внятные подсказки в AttributeError.
Полный список — в whatsnew, там же примеры кода и раздел с несовместимостями.
#python315 #cpython
Python documentation
What’s new in Python 3.15
Editor, Hugo van Kemenade,. This article explains the new features in Python 3.15, compared to 3.14. Python 3.15 was released on 9 October 2026. For full details, see the changelog. Summary – Relea...
🔥3
CPython официально поддерживает RISC-V как платформу третьего уровня
Работа шла несколько месяцев, и теперь RISC-V официально поддержан в CPython как tier 3. Для питониста это означает, что сборки под эту архитектуру перестали быть самодеятельностью и попали в зону ответственности проекта.
RISC-V это открытая система команд: в отличие от x86 и ARM, она развивается как открытый стандарт, и реализовать её может кто угодно. Экосистема за последние годы выросла заметно.
Третий уровень означает поддержку без гарантий на каждый релиз: сборка проверяется, но падение на этой платформе не блокирует выпуск. Для продакшена на RISC-V это ещё не зелёный свет, а сигнал, что можно начинать проверять свои колёса.
#cpython
Работа шла несколько месяцев, и теперь RISC-V официально поддержан в CPython как tier 3. Для питониста это означает, что сборки под эту архитектуру перестали быть самодеятельностью и попали в зону ответственности проекта.
RISC-V это открытая система команд: в отличие от x86 и ARM, она развивается как открытый стандарт, и реализовать её может кто угодно. Экосистема за последние годы выросла заметно.
Третий уровень означает поддержку без гарантий на каждый релиз: сборка проверяется, но падение на этой платформе не блокирует выпуск. Для продакшена на RISC-V это ещё не зелёный свет, а сигнал, что можно начинать проверять свои колёса.
#cpython
Python Insider
RISC-V is now officially supported by CPython! | Python Insider
I’m happy to announce that RISC-V platforms are now officially supported by CPython. 🎉 🚀
JIT в CPython перестанет быть экспериментом, если обгонит free-threaded интерпретатор на 20%
JIT лежит в main с 3.13, и включать его до сих пор незачем. В 3.15 он даёт 4–12% ускорения (среднее геометрическое по платформам Tier 1), отдаёт кадры, которые нативные отладчики разматывают в нормальный стек, и занимает меньше памяти под сгенерированный код, чем в 3.14.
PEP 836 называет цену выхода из статуса «экспериментальный»: к первой бете сборка с JIT и free-threading должна обойти free-threaded интерпретатор без JIT минимум на 20% по среднему геометрическому на pyperformance. Плюс совместимость, инструменты, дистрибуция и модель поддержки.
То есть JIT и free-threading перестают быть двумя отдельными экспериментами, их сводят в одну цель. Прогнать свои бенчмарки на сборке с JIT стоит сейчас, пока цифры в PEP обсуждаются.
#cpython
JIT лежит в main с 3.13, и включать его до сих пор незачем. В 3.15 он даёт 4–12% ускорения (среднее геометрическое по платформам Tier 1), отдаёт кадры, которые нативные отладчики разматывают в нормальный стек, и занимает меньше памяти под сгенерированный код, чем в 3.14.
PEP 836 называет цену выхода из статуса «экспериментальный»: к первой бете сборка с JIT и free-threading должна обойти free-threaded интерпретатор без JIT минимум на 20% по среднему геометрическому на pyperformance. Плюс совместимость, инструменты, дистрибуция и модель поддержки.
То есть JIT и free-threading перестают быть двумя отдельными экспериментами, их сводят в одну цель. Прогнать свои бенчмарки на сборке с JIT стоит сейчас, пока цифры в PEP обсуждаются.
#cpython
❤2😁1
Язык, на котором вы пишете каждый день, десятый год подряд оплачивает в том числе Meta*
Python Software Foundation живёт на пожертвованиях, и Meta* десятый год подряд числится среди спонсоров. Python у них самый используемый язык, на нём держится бэкенд Instagram* и Threads*.
Деньгами участие не ограничивается. Часть core-разработчиков CPython работает в Meta*: они пишут фичи и PEP'ы, так что каким язык станет в следующем релизе, решают в том числе люди на зарплате компании. Оттуда же вышел PyTorch, позже переехавший в собственный фонд, и Pyrefly, тайпчекер с language server, который в компании называют очень быстрым.
Последнее проверяется дешевле, чем обсуждается: если mypy на вашем проекте прогоняется минутами, поставьте Pyrefly рядом и сравните время на том же коде.
#cpython
*Компания Meta и её продукты признаны экстремистскими, их деятельность запрещена на территории РФ.
Python Software Foundation живёт на пожертвованиях, и Meta* десятый год подряд числится среди спонсоров. Python у них самый используемый язык, на нём держится бэкенд Instagram* и Threads*.
Деньгами участие не ограничивается. Часть core-разработчиков CPython работает в Meta*: они пишут фичи и PEP'ы, так что каким язык станет в следующем релизе, решают в том числе люди на зарплате компании. Оттуда же вышел PyTorch, позже переехавший в собственный фонд, и Pyrefly, тайпчекер с language server, который в компании называют очень быстрым.
Последнее проверяется дешевле, чем обсуждается: если mypy на вашем проекте прогоняется минутами, поставьте Pyrefly рядом и сравните время на том же коде.
#cpython
*Компания Meta и её продукты признаны экстремистскими, их деятельность запрещена на территории РФ.
❤4❤🔥1🎉1
Код без GIL запускается одной командой, а зависимости к этому готовы не все
Проверка занимает вечер: ставите сборку python3.14t, прогоняете тесты и смотрите, где C-расширение роняет интерпретатор, а где два потока портят общий словарь. Со стороны CPython работа сделана: в 3.13 сборку без глобальной блокировки отдавали как экспериментальную, в 3.14 она стала официально поддерживаемой. Узкое место переехало в экосистему: пакет с C-кодом заводится в такой сборке, только если его пересобрали и проверили под неё.
На PyCon US 2026 Томас Ваутерс, который занимается CPython 25 лет и входит в steering council, прошёл по всей истории: зачем блокировку вообще снимали, что из этого получилось к сегодняшнему дню и станет ли сборка без GIL единственной. Конспект доклада опубликовал LWN.
#cpython
Проверка занимает вечер: ставите сборку python3.14t, прогоняете тесты и смотрите, где C-расширение роняет интерпретатор, а где два потока портят общий словарь. Со стороны CPython работа сделана: в 3.13 сборку без глобальной блокировки отдавали как экспериментальную, в 3.14 она стала официально поддерживаемой. Узкое место переехало в экосистему: пакет с C-кодом заводится в такой сборке, только если его пересобрали и проверили под неё.
На PyCon US 2026 Томас Ваутерс, который занимается CPython 25 лет и входит в steering council, прошёл по всей истории: зачем блокировку вообще снимали, что из этого получилось к сегодняшнему дню и станет ли сборка без GIL единственной. Конспект доклада опубликовал LWN.
#cpython
LWN.net
Free-threaded Python: past, present, and future
Probably the biggest change for Python over the last five years or so is the advent of the 'fre [...]
Научные библиотеки сошлись на 3.14t как общей цели free-threading
Если вы держите отдельное окружение под сборку без GIL, зоопарк собранных колёс наконец сокращается: поддержку 3.13t крупные научные библиотеки убрали и целятся теперь только в 3.14t. Проверять свой код на свободных потоках можно на одной версии, а не на двух.
Что ещё случилось за август, Real Python собрал в месячном дайджесте:
• Python 3.15 выпустил финальную бету;
• команда JIT ответила Steering Council на его ультиматум;
• Astral выкатила ломающие миноры uv и Ruff: перед обновлением стоит заглянуть в changelog;
• MCP пережил крупнейшую переписку с момента появления: сессии выброшены, протокол стал stateless, а FastMCP в Python SDK переименовали.
#cpython
Если вы держите отдельное окружение под сборку без GIL, зоопарк собранных колёс наконец сокращается: поддержку 3.13t крупные научные библиотеки убрали и целятся теперь только в 3.14t. Проверять свой код на свободных потоках можно на одной версии, а не на двух.
Что ещё случилось за август, Real Python собрал в месячном дайджесте:
• Python 3.15 выпустил финальную бету;
• команда JIT ответила Steering Council на его ультиматум;
• Astral выкатила ломающие миноры uv и Ruff: перед обновлением стоит заглянуть в changelog;
• MCP пережил крупнейшую переписку с момента появления: сессии выброшены, протокол стал stateless, а FastMCP в Python SDK переименовали.
#cpython
🆒1