Спустя год разработки вышел значительный релиз Python 3.14. Эта ветка будет получать полную поддержку в течение 1,5 лет, а затем ещё 3,5 года — только обновления безопасности.
Среди ключевых нововведений:
Среди ключевых нововведений:
- Официальная поддержка сборки CPython без GIL (Global Interpreter Lock). Это позволяет эффективно использовать многопоточность на многоядерных системах, устраняя ограничение, при котором только один поток мог выполнять Python-код одновременно. Однако отключение GIL влечёт накладные расходы: из-за изменений в сборщике мусора, управлении памятью и механизмах блокировок производительность однопоточных программ снижается примерно на 10%. Тем не менее, в многопоточных сценариях общий прирост производительности может компенсировать эти потери.
- Введены t-строки (литералы с префиксом t), аналогичные f-строкам, но возвращающие специальный объект, в котором статическая часть строки и подставляемые значения хранятся отдельно. Это позволяет подключать пользовательские обработчики для динамических частей — например, автоматически экранировать HTML или переводить значения в верхний регистр:
- В стандартную библиотеку добавлен модуль concurrent.interpreters, позволяющий запускать несколько изолированных экземпляров интерпретатора Python в одном процессе. Ранее такая функциональность была доступна только через C API. Это даёт преимущества многопроцессности при меньших накладных расходах и открывает возможности для моделей вроде акторов или CSP.
- В CPython реализован новый интерпретатор байткода, основанный на хвостовых вызовах между C-функциями вместо единого switch-блока. При компиляции с Clang 19 он демонстрирует прирост производительности на 3–5% (по pyperformance). Пока доступен как опция для x86-64 и AArch64, сборка требует Clang 19 (поддержка GCC появится позже).
- Аннотации типов теперь обрабатываются лениво: они сохраняются в виде специальных объектов и вычисляются только при необходимости. Это снижает накладные расходы при запуске и упрощает работу с аннотациями. Для их инспекции добавлен модуль annotationlib.
- В стандартную библиотеку включён новый пакет compression, объединяющий модули lzma, bz2, gzip, zlib и добавляющий поддержку современного алгоритма Zstandard (ZSTD) через compression.zstd.
- Упрощён синтаксис обработки исключений: в конструкциях except и except* скобки больше не обязательны, если перечисляются несколько типов исключений без использования as:
- В интерактивной оболочке PyREPL появилась подсветка синтаксиса, а утилиты из модулей unittest, argparse, json и calendar теперь используют цветной вывод в терминале.
- Добавлена возможность подключать внешние отладчики и профилировщики к уже запущенным процессам без перезапуска и без ущерба для производительности.
- Модуль pdb теперь поддерживает удалённое подключение к работающим процессам:
python -m pdb -p 1234. - В модуль uuid добавлены функции uuid6(), uuid7() и uuid8(), реализующие новые версии UUID.
- Добавлено предупреждение при использовании return, break или continue внутри блока finally.
- Представлен новый C API PyInitConfig, позволяющий гибко настраивать инициализацию Python без жёсткой привязки к структурам на C. Включает функции PyConfig_Get(), PyConfig_Set() и PyInitConfig_AddModule() с сохранением ABI-совместимости.
- Улучшены сообщения об ошибках: теперь при опечатках в ключевых словах выводятся подсказки по исправлению.
- Криптографические реализации в модулях hashlib и hmac заменены на версии из проекта HACL* с формальным математическим доказательством корректности. В том числе добавлен HMAC-BLAKE2 с ускорением через AVX2.
- Добавлены новые команды CLI для инспекции асинхронных задач:
python -m asyncio ps PID и python -m asyncio pstree PID. - В официальные сборки для Windows и macOS включён экспериментальный JIT-компилятор. Инсталлятор для Windows заменён на менеджер установки.
- Для проверки подлинности релизов вместо PGP теперь используется система Sigstore.
- Впервые опубликованы официальные бинарные сборки для Android.
Уже в ближайшие часы стартует альфа-тестирование Python 3.15. Согласно обновлённому графику разработки, новая ветка начинает формироваться за 5 месяцев до релиза предыдущей, и к моменту выхода Python 3.14 она уже достигает стадии альфа. Далее последуют 7 месяцев альфа-тестирования, 3 месяца бета-тестов (без новых функций) и 2 месяца финальной стабилизации в статусе release candidate.