Что нового в Python 3.14¶
- Редактор:
TBD
В этой статье рассказывается о новых возможностях в Python 3.14 по сравнению с 3.13.
Подробную информацию смотрите в changelog.
Примечание
Пользователи пререлиза должны знать, что этот документ в настоящее время находится в черновом варианте. Он будет существенно обновляться по мере продвижения Python 3.14 к релизу, поэтому стоит вернуться к нему даже после прочтения предыдущих версий.
Резюме - Основные моменты выпуска¶
Новые возможности¶
Другие языковые изменения¶
Новые модули¶
Пока нет.
Улучшенные модули¶
ast¶
Добавлена функция ast.compare()
для сравнения двух AST. (Внесено Батуханом Таская и Джереми Хилтоном в bpo-15987).
Оптимизации¶
Утратившие актуальность¶
Удалено¶
argparse¶
Удалите параметры type, choices и metavar из
argparse.BooleanOptionalAction
. Они были устаревшими с версии 3.12.
ast¶
Удалите следующие классы. Все они были устаревшими с Python 3.8, а с Python 3.12 выдают предупреждения об устаревании:
ast.Num
ast.Str
ast.Bytes
ast.NameConstant
ast.Ellipsis
Вместо этого используйте
ast.Constant
. В результате этих удалений пользовательские методыvisit_Num
,visit_Str
,visit_Bytes
,visit_NameConstant
иvisit_Ellipsis
в пользовательских подклассахast.NodeVisitor
больше не будут вызываться, когда подклассNodeVisitor
посещает AST. Вместо этого определите методvisit_Constant
.Также удалите следующие устаревшие свойства
ast.Constant
, которые присутствовали для совместимости с ныне удаленными классами AST:ast.Constant.n
ast.Constant.s
Вместо этого используйте
ast.Constant.value
.(Внесено Алексом Уэйгудом в gh-119562).
коллекции.abc¶
Уберите
collections.abc.ByteString
. Ранее, начиная с Python 3.12, он поднималDeprecationWarning
.
e-mail¶
Удалите параметр isdst из
email.utils.localtime()
. (Внесено Хьюго ван Кеменаде в gh-118798).
importlib¶
Удалите устаревшие классы
importlib.abc
:importlib.abc.ResourceReader
importlib.abc.Traversable
importlib.abc.TraversableResources
Вместо этого используйте классы
importlib.resources.abc
:(Предоставлено Джейсоном Р. Кумбсом и Хьюго ван Кеменаде в gh-93963).
itertools¶
Уберите поддержку
itertools
для операций копирования, глубокого копирования и pickle. Начиная с версии Python 3.12, они вызывали ошибкуDeprecationWarning
. (Внесено Раймондом Хеттингером в gh-101588).
pathlib¶
Удалена поддержка передачи дополнительных аргументов ключевых слов в
pathlib.Path
. В предыдущих версиях такие аргументы игнорировались.Удалена поддержка передачи дополнительных позиционных аргументов в
pathlib.PurePath.relative_to()
иis_relative_to()
. В предыдущих версиях любые такие аргументы присоединялись к other.
pty¶
Удалите устаревшие
pty.master_open()
иpty.slave_open()
. Начиная с версии Python 3.12, они ранее поднималиDeprecationWarning
. Вместо них используйтеpty.openpty()
. (Внесено Никитой Соболевым в gh-118824).
sqlite3¶
Удалите
version
иversion_info
изsqlite3
. (Внесено Хьюго ван Кеменаде в gh-118924).Запрет на использование последовательности параметров с именованными держателями. Начиная с Python 3.12 это вызывало ошибку
DeprecationWarning
; теперь это будет вызывать ошибкуsqlite3.ProgrammingError
. (Внесено Эрлендом Э. Аасланд в gh-118928 и gh-101693).
набор текста¶
Уберите
typing.ByteString
. Ранее, начиная с Python 3.12, он поднималDeprecationWarning
.
Другие¶
Использование
NotImplemented
в булевом контексте теперь приводит к появлениюTypeError
. Ранее, начиная с Python 3.9, оно приводило к появлениюDeprecationWarning
. (Внесено Jelle Zijlstra в gh-118767).Встроенный
int()
больше не делегирует полномочия__trunc__()
. Классы, которые хотят поддерживать преобразование в целое число, должны реализовать либо__int__()
, либо__index__()
. (Внесено Марком Дикинсоном в gh-119743).
Переход на Python 3.14¶
В этом разделе перечислены ранее описанные изменения и другие исправления, которые могут потребовать внесения изменений в ваш код.
Изменения в конструкции¶
Изменения в API на языке C¶
Новые возможности¶
Переход на Python 3.14¶
Утратившие актуальность¶
Макросы
Py_IS_NAN
,Py_IS_INFINITY
иPy_IS_FINITE
стали soft deprecated, используйте вместо нихisnan
,isinf
иisfinite
, доступные вmath.h
начиная с C99. (Внесено Сергеем Кирпичевым в gh-119613).
Удалено¶
Создание
immutable types
с мутабельными базами было устаревшим с версии 3.12 и теперь приводит к ошибкеTypeError
.