Устаревшие возможности
Планируется удаление в Python 3.15
-
Система импорта:
- Установка
__cached__для модуля без установки__spec__.cachedсчитается устаревшей. В Python 3.15__cached__больше не будет устанавливаться или учитываться системой импорта либо стандартной библиотекой. (gh-97879) - Установка
__package__для модуля без установки__spec__.parentсчитается устаревшей. В Python 3.15__package__больше не будет устанавливаться или учитываться системой импорта либо стандартной библиотекой. (gh-97879)
- Установка
-
- Недокументированная функция
ctypes.SetPointerType()считается устаревшей начиная с Python 3.13.
- Недокументированная функция
-
- Устаревший и редко используемый класс
CGIHTTPRequestHandlerсчитается устаревшим начиная с Python 3.13. Прямой замены ему нет. Для связи веб-сервера с обработчиком запросов что угодно лучше, чем CGI. - Флаг
--cgiинтерфейса командной строки python -m http.server считается устаревшим начиная с Python 3.13.
- Устаревший и редко используемый класс
-
-
Метод
load_module(): используйте вместо негоexec_module().
-
Метод
-
-
PurePath.is_reserved()считается устаревшим начиная с Python 3.13. Для обнаружения зарезервированных путей в Windows используйтеos.path.isreserved().
-
-
-
java_ver()считается устаревшей начиная с Python 3.13. Эта функция полезна только для поддержки Jython, имеет запутанный API и практически не тестируется.
-
-
- Аргумент check_home функции
sysconfig.is_python_build()считается устаревшим начиная с Python 3.12.
- Аргумент check_home функции
-
-
В Python 3.15
RLock()не будет принимать аргументы. Передача любых аргументов считается устаревшей начиная с Python 3.14: версия на Python не допускает аргументов, а версия на C принимает любое число позиционных и именованных аргументов, игнорируя каждый из них.
-
В Python 3.15
-
-
types.CodeType: обращение кco_lnotabбыло объявлено устаревшим в PEP 626 начиная с версии 3.10, а его удаление планировалось в версии 3.12, однако полноценное предупреждениеDeprecationWarningпоявилось только в версии 3.12. Может быть удалено в версии 3.15. (Вклад внесён Никитой Соболевым в gh-101866.)
-
-
- Недокументированный синтаксис с именованными аргументами для создания классов
NamedTuple(например,Point = NamedTuple("Point", x=int, y=int)) считается устаревшим начиная с Python 3.13. Вместо него используйте синтаксис на основе классов или функциональный синтаксис. - При использовании функционального синтаксиса
TypedDictпередача параметру fields значения (TD = TypedDict("TD")) или передачаNone(TD = TypedDict("TD", None)) считается устаревшей начиная с Python 3.13. Для создания TypedDict без полей используйтеclass TD(TypedDict): passилиTD = TypedDict("TD", {}). - Функция-декоратор
@typing.no_type_check_decoratorсчитается устаревшей начиная с Python 3.13. За восемь лет существования в модулеtypingеё так и не реализовал ни один крупный анализатор типов.
- Недокументированный синтаксис с именованными аргументами для создания классов
-
wave:- Методы
getmark(),setmark()иgetmarkers()классовWave_readиWave_writeсчитаются устаревшими начиная с Python 3.13.
- Методы
-
-
load_module()считается устаревшим начиная с Python 3.10. Вместо него используйтеexec_module(). (Вклад внесён Цзяхао Ли в gh-125746.)
-
Планируется удаление в Python 3.16
-
Система импорта:
- Установка
__loader__для модуля без установки__spec__.loaderсчитается устаревшей. В Python 3.16__loader__больше не будет устанавливаться или учитываться системой импорта либо стандартной библиотекой.
- Установка
-
- Код формата
'u'(wchar_t) считается устаревшим в документации начиная с Python 3.3, а во время выполнения — начиная с Python 3.13. Вместо него используйте код формата'w'(Py_UCS4) для символов Unicode.
- Код формата
-
-
asyncio.iscoroutinefunction()считается устаревшей и будет удалена в Python 3.16; вместо неё используйтеinspect.iscoroutinefunction(). (Вклад внесли Цзяхао Ли и Кумар Адитья в gh-122875.) -
Система политик
asyncioсчитается устаревшей и будет удалена в Python 3.16. В частности, следующие классы и функции считаются устаревшими:asyncio.AbstractEventLoopPolicyasyncio.DefaultEventLoopPolicyasyncio.WindowsSelectorEventLoopPolicyasyncio.WindowsProactorEventLoopPolicyasyncio.get_event_loop_policy()asyncio.set_event_loop_policy()
Для использования желаемой реализации цикла событий пользователям следует вызывать
asyncio.run()илиasyncio.Runner, указав loop_factory.Например, чтобы использовать
asyncio.SelectorEventLoopв Windows:import asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)(Вклад внесён Кумаром Адитьей в gh-127949.)
-
-
- Побитовое отрицание значений логического типа,
~Trueили~False, считается устаревшим начиная с Python 3.12, поскольку оно приводит к неожиданным и неинтуитивным результатам (-2и-1). Для логического отрицания значения Boolean используйтеnot x. В редких случаях, когда требуется побитовое отрицание базового целого числа, явно преобразуйте значение вint(~int(x)).
- Побитовое отрицание значений логического типа,
-
- Вызов реализации
functools.reduce()на Python с передачей function или sequence в качестве именованных аргументов считается устаревшим начиная с Python 3.14.
- Вызов реализации
-
Поддержка пользовательских обработчиков журналирования с аргументом strm считается устаревшей; её планируется удалить в Python 3.16. Вместо этого определяйте обработчики с аргументом stream. (Вклад внесён Мариушем Фелисияком в gh-115032.)
-
- Для
mimetypes.MimeTypes.add_type()допустимы расширения, начинающиеся с «.» или являющиеся пустыми. Расширения без точки считаются устаревшими; в Python 3.16 они будут вызыватьValueError. (Вклад внесён Уго ван Кеменаде в gh-75223.)
- Для
-
- Исключение
ExecErrorсчитается устаревшим начиная с Python 3.14. Ни одна функция вshutilне использует его с Python 3.4; теперь это псевдонимRuntimeError.
- Исключение
-
- Метод
Class.get_methodsсчитается устаревшим начиная с Python 3.14.
- Метод
-
sys:- Функция
_enablelegacywindowsfsencoding()считается устаревшей начиная с Python 3.13. Вместо неё используйте переменную средыPYTHONLEGACYWINDOWSFSENCODING.
- Функция
-
- Функция
sysconfig.expand_makefile_vars()считается устаревшей начиная с Python 3.14. Вместо неё используйте аргументvarsфункцииsysconfig.get_paths().
- Функция
-
- Недокументированный и неиспользуемый атрибут
TarFile.tarfileсчитается устаревшим начиная с Python 3.13.
- Недокументированный и неиспользуемый атрибут
Планируется удаление в Python 3.17
-
-
collections.abc.ByteStringпланируется удалить в Python 3.17.Для проверки во время выполнения того, что
objреализует протокол буфера, используйтеisinstance(obj, collections.abc.Buffer). В аннотациях типов используйте либоBuffer, либо объединение типов, явно перечисляющее типы, поддерживаемые вашим кодом (например,bytes | bytearray | memoryview).Изначально предполагалось, что
ByteStringбудет абстрактным классом, выступающим в качестве суперкласса дляbytesиbytearray. Однако, поскольку у ABC никогда не было методов, знание о том, что объект является экземпляромByteString, на самом деле ничего полезного об объекте не сообщало. Другие распространённые типы буферов, напримерmemoryview, также никогда не считались подтипамиByteString(ни во время выполнения, ни статическими анализаторами типов).Подробнее см. PEP 688. (Вклад внёс Шантану Джейн в gh-91896.)
-
-
- До Python 3.14 объединения старого стиля реализовывались с помощью закрытого класса
typing._UnionGenericAlias. Этот класс больше не нужен для реализации, но сохранён для обратной совместимости; его удаление запланировано в Python 3.17. Вместо обращения к закрытым деталям реализации пользователям следует использовать документированные средства интроспекции, напримерtyping.get_origin()иtyping.get_args(). -
typing.ByteString, признанный устаревшим начиная с Python 3.9, планируется удалить в Python 3.17.Для проверки во время выполнения того, что
objреализует протокол буфера, используйтеisinstance(obj, collections.abc.Buffer). В аннотациях типов используйте либоBuffer, либо объединение типов, явно перечисляющее типы, поддерживаемые вашим кодом (например,bytes | bytearray | memoryview).Изначально предполагалось, что
ByteStringбудет абстрактным классом, выступающим в качестве суперкласса дляbytesиbytearray. Однако, поскольку у ABC никогда не было методов, знание о том, что объект является экземпляромByteString, на самом деле ничего полезного об объекте не сообщало. Другие распространённые типы буферов, напримерmemoryview, также никогда не считались подтипамиByteString(ни во время выполнения, ни статическими анализаторами типов).Подробнее см. PEP 688. (Вклад внёс Шантану Джейн в gh-91896.)
- До Python 3.14 объединения старого стиля реализовывались с помощью закрытого класса
Планируется удаление в Python 3.18
Планируется удаление в Python 3.19
Планируется удаление в будущих версиях
Следующие API будут удалены в будущем, хотя дата их удаления пока не назначена.
-
- Вложенные группы аргументов и вложенные взаимоисключающие группы считаются устаревшими.
- Передача недокументированного именованного аргумента prefix_chars в
add_argument_group()теперь считается устаревшей. - Преобразователь типов
argparse.FileTypeсчитается устаревшим.
-
- Генераторы: сигнатура
throw(type, exc, tb)иathrow(type, exc, tb)считается устаревшей: вместо неё используйтеthrow(exc)иathrow(exc)— сигнатуру с одним аргументом. - В настоящее время Python принимает числовые литералы, за которыми сразу следуют ключевые слова, например
0in x,1or x,0if 1else 2. Это допускает запутанные и неоднозначные выражения, например[0x1for x in y](которое можно интерпретировать как[0x1 for x in y]или[0x1f or x in y]). Если сразу после числового литерала следует одно из ключевых словand,else,for,if,in,isилиor, выдается предупреждение о синтаксисе. В будущей версии это будет приводить к синтаксической ошибке. (gh-87999) - Поддержка методов
__index__()и__int__(), возвращающих тип, отличный от int: эти методы должны будут возвращать экземпляр строгого подклассаint. - Поддержка метода
__float__(), возвращающего строгий подклассfloat: этот метод должен будет возвращать экземплярfloat. - Поддержка метода
__complex__(), возвращающего строгий подклассcomplex: этот метод должен будет возвращать экземплярcomplex. - Передача комплексного числа в качестве аргумента real или imag конструктору
complex()теперь считается устаревшей; такое число следует передавать только как единственный позиционный аргумент. (Добавлено Сергеем Сторчаком в gh-109218.)
- Генераторы: сигнатура
-
calendar: константыcalendar.Januaryиcalendar.Februaryсчитаются устаревшими и заменены наcalendar.JANUARYиcalendar.FEBRUARY. (Добавлено Принсом Рошаном в gh-103636.) -
codecs: используйтеopen()вместоcodecs.open(). (gh-133038) -
codeobject.co_lnotab: вместо него используйте методcodeobject.co_lines(). -
-
utcnow(): используйтеdatetime.datetime.now(tz=datetime.UTC). -
utcfromtimestamp(): используйтеdatetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC).
-
-
gettext: значение для множественного числа должно быть целым числом. -
-
Параметр debug_override функции
cache_from_source()считается устаревшим: вместо него используйте параметр optimization.
-
Параметр debug_override функции
-
- Интерфейс кортежа
EntryPoints. - Неявное
Noneвозвращаемых значений.
- Интерфейс кортежа
-
logging: методwarn()считается устаревшим с Python 3.3; вместо него используйтеwarning(). -
mailbox: использование входных данных StringIO и текстового режима считается устаревшим; вместо них используйте BytesIO и двоичный режим. -
os: вызовos.register_at_fork()в многопоточном процессе. -
pydoc.ErrorDuringImport: значение-кортеж для параметра exc_info считается устаревшим; вместо него используйте экземпляр исключения. -
re: теперь применяются более строгие правила к числовым ссылкам на группы и именам групп в регулярных выражениях. В качестве числовой ссылки теперь принимается только последовательность цифр ASCII. Имя группы в байтовых шаблонах и строках замены теперь может содержать только буквы ASCII, цифры и символ подчёркивания. (Добавлено Сергеем Сторчаком в gh-91760.) -
Модули
sre_compile,sre_constantsиsre_parse. -
shutil: параметр onerror функцииrmtree()считается устаревшим в Python 3.12; вместо него используйте параметр onexc. -
Параметры и протоколы
ssl:-
ssl.SSLContextбез аргумента протокола считается устаревшим. -
ssl.SSLContext:set_npn_protocols()иselected_npn_protocol()считаются устаревшими: вместо них используйте ALPN. -
Параметры
ssl.OP_NO_SSL* -
Параметры
ssl.OP_NO_TLS* ssl.PROTOCOL_SSLv3ssl.PROTOCOL_TLSssl.PROTOCOL_TLSv1ssl.PROTOCOL_TLSv1_1ssl.PROTOCOL_TLSv1_2ssl.TLSVersion.SSLv3ssl.TLSVersion.TLSv1ssl.TLSVersion.TLSv1_1
-
-
Методы
threading:-
threading.Condition.notifyAll(): используйтеnotify_all(). -
threading.Event.isSet(): используйтеis_set(). -
threading.Thread.isDaemon(),threading.Thread.setDaemon(): используйте атрибутthreading.Thread.daemon. -
threading.Thread.getName(),threading.Thread.setName(): используйте атрибутthreading.Thread.name. -
threading.currentThread(): используйтеthreading.current_thread(). -
threading.activeCount(): используйтеthreading.active_count().
-
-
typing.Text(gh-92332). - Внутренний класс
typing._UnionGenericAliasбольше не используется для реализацииtyping.Union. Для обеспечения совместимости с пользователями этого закрытого класса shim совместимости будет предоставляться как минимум до Python 3.17. (Добавлено Йелле Зейлстрой в gh-105499.) -
unittest.IsolatedAsyncioTestCase: возвращать из тестового случая значение, отличное отNone, считается устаревшим. -
Устаревшие функции
urllib.parse: вместо них используйтеurlparse()splitattr()splithost()splitnport()splitpasswd()splitport()splitquery()splittag()splittype()splituser()splitvalue()to_bytes()
-
wsgiref:SimpleHandler.stdout.write()не должен выполнять частичную запись. -
xml.etree.ElementTree: проверка логического значенияElementсчитается устаревшей. В будущей версии она всегда будет возвращатьTrue. Вместо этого предпочтительнее явно проверятьlen(elem)илиelem is not None. -
sys._clear_type_cache()считается устаревшим: вместо него используйтеsys._clear_internal_caches().
Устаревшие элементы C API
Планируется удалить в Python 3.15
- The
PyImport_ImportModuleNoBlock(): Вместо этого используйтеPyImport_ImportModule(). -
PyWeakref_GetObject()иPyWeakref_GET_OBJECT(): Вместо этого используйтеPyWeakref_GetRef(). Для использованияPyWeakref_GetRef()в Python 3.12 и более ранних версиях можно воспользоваться проектом pythoncapi-compat. -
Тип
Py_UNICODEи макросPy_UNICODE_WIDE: Вместо этого используйтеwchar_t. -
PyUnicode_AsDecodedObject(): Вместо этого используйтеPyCodec_Decode(). -
PyUnicode_AsDecodedUnicode(): Вместо этого используйтеPyCodec_Decode(). Обратите внимание, что некоторые кодеки (например, «base64») могут возвращать тип, отличный отstr, напримерbytes. -
PyUnicode_AsEncodedObject(): Вместо этого используйтеPyCodec_Encode(). -
PyUnicode_AsEncodedUnicode(): Вместо этого используйтеPyCodec_Encode(). Обратите внимание, что некоторые кодеки (например, «base64») могут возвращать тип, отличный отbytes, напримерstr. -
Функции инициализации Python, объявленные устаревшими в Python 3.13:
-
Py_GetPath(): Вместо этого используйтеPyConfig_Get("module_search_paths")(sys.path). -
Py_GetPrefix(): Вместо этого используйтеPyConfig_Get("base_prefix")(sys.base_prefix). ИспользуйтеPyConfig_Get("prefix")(sys.prefix), если необходимо учитывать виртуальные окружения. -
Py_GetExecPrefix(): Вместо этого используйтеPyConfig_Get("base_exec_prefix")(sys.base_exec_prefix). ИспользуйтеPyConfig_Get("exec_prefix")(sys.exec_prefix), если необходимо учитывать виртуальные окружения. -
Py_GetProgramFullPath(): Вместо этого используйтеPyConfig_Get("executable")(sys.executable). -
Py_GetProgramName(): Вместо этого используйтеPyConfig_Get("executable")(sys.executable). -
Py_GetPythonHome(): Вместо этого используйтеPyConfig_Get("home")или переменную окруженияPYTHONHOME.
Для использования
PyConfig_Get()в Python 3.13 и более ранних версиях можно воспользоваться проектом pythoncapi-compat. -
-
Функции настройки инициализации Python, объявленные устаревшими в Python 3.11:
-
PySys_SetArgvEx(): Вместо этого задайтеPyConfig.argv. -
PySys_SetArgv(): Вместо этого задайтеPyConfig.argv. -
Py_SetProgramName(): Вместо этого задайтеPyConfig.program_name. -
Py_SetPythonHome(): Вместо этого задайтеPyConfig.home. -
PySys_ResetWarnOptions(): Вместо этого очиститеsys.warnoptionsиwarnings.filters.
Вместо этого следует использовать API
Py_InitializeFromConfig()вместе сPyConfig. -
-
Глобальные переменные конфигурации:
-
Py_DebugFlag: Вместо этого используйтеPyConfig.parser_debugилиPyConfig_Get("parser_debug"). -
Py_VerboseFlag: Вместо этого используйтеPyConfig.verboseилиPyConfig_Get("verbose"). -
Py_QuietFlag: Вместо этого используйтеPyConfig.quietилиPyConfig_Get("quiet"). -
Py_InteractiveFlag: Вместо этого используйтеPyConfig.interactiveилиPyConfig_Get("interactive"). -
Py_InspectFlag: Вместо этого используйтеPyConfig.inspectилиPyConfig_Get("inspect"). -
Py_OptimizeFlag: Вместо этого используйтеPyConfig.optimization_levelилиPyConfig_Get("optimization_level"). -
Py_NoSiteFlag: Вместо этого используйтеPyConfig.site_importилиPyConfig_Get("site_import"). -
Py_BytesWarningFlag: Вместо этого используйтеPyConfig.bytes_warningилиPyConfig_Get("bytes_warning"). -
Py_FrozenFlag: Вместо этого используйтеPyConfig.pathconfig_warningsилиPyConfig_Get("pathconfig_warnings"). -
Py_IgnoreEnvironmentFlag: Вместо этого используйтеPyConfig.use_environmentилиPyConfig_Get("use_environment"). -
Py_DontWriteBytecodeFlag: Вместо этого используйтеPyConfig.write_bytecodeилиPyConfig_Get("write_bytecode"). -
Py_NoUserSiteDirectory: Вместо этого используйтеPyConfig.user_site_directoryилиPyConfig_Get("user_site_directory"). -
Py_UnbufferedStdioFlag: Вместо этого используйтеPyConfig.buffered_stdioилиPyConfig_Get("buffered_stdio"). -
Py_HashRandomizationFlag: Вместо этого используйтеPyConfig.use_hash_seedиPyConfig.hash_seedилиPyConfig_Get("hash_seed"). -
Py_IsolatedFlag: Вместо этого используйтеPyConfig.isolatedилиPyConfig_Get("isolated"). -
Py_LegacyWindowsFSEncodingFlag: Вместо этого используйтеPyPreConfig.legacy_windows_fs_encodingилиPyConfig_Get("legacy_windows_fs_encoding"). -
Py_LegacyWindowsStdioFlag: Вместо этого используйтеPyConfig.legacy_windows_stdioилиPyConfig_Get("legacy_windows_stdio"). -
Py_FileSystemDefaultEncoding,Py_HasFileSystemDefaultEncoding: Вместо этого используйтеPyConfig.filesystem_encodingилиPyConfig_Get("filesystem_encoding"). -
Py_FileSystemDefaultEncodeErrors: Вместо этого используйтеPyConfig.filesystem_errorsилиPyConfig_Get("filesystem_errors"). -
Py_UTF8Mode: Вместо этого используйтеPyPreConfig.utf8_modeилиPyConfig_Get("utf8_mode"). (см.Py_PreInitialize())
Для задания этих параметров следует использовать API
Py_InitializeFromConfig()вместе сPyConfig. Чтобы получить значения этих параметров во время выполнения, можно использоватьPyConfig_Get(). -
Планируется удалить в Python 3.18
-
Следующие закрытые функции объявлены устаревшими и планируются к удалению в Python 3.18:
-
_PyBytes_Join(): используйтеPyBytes_Join(). -
_PyDict_GetItemStringWithError(): используйтеPyDict_GetItemStringRef(). -
_PyDict_Pop(): используйтеPyDict_Pop(). -
_PyLong_Sign(): используйтеPyLong_GetSign(). -
_PyLong_FromDigits()и_PyLong_New(): используйтеPyLongWriter_Create(). -
_PyThreadState_UncheckedGet(): используйтеPyThreadState_GetUnchecked(). -
_PyUnicode_AsString(): используйтеPyUnicode_AsUTF8(). -
_PyUnicodeWriter_Init(): замените_PyUnicodeWriter_Init(&writer)наwriter = PyUnicodeWriter_Create(0). -
_PyUnicodeWriter_Finish(): замените_PyUnicodeWriter_Finish(&writer)наPyUnicodeWriter_Finish(writer). -
_PyUnicodeWriter_Dealloc(): замените_PyUnicodeWriter_Dealloc(&writer)наPyUnicodeWriter_Discard(writer). -
_PyUnicodeWriter_WriteChar(): замените_PyUnicodeWriter_WriteChar(&writer, ch)наPyUnicodeWriter_WriteChar(writer, ch). -
_PyUnicodeWriter_WriteStr(): замените_PyUnicodeWriter_WriteStr(&writer, str)наPyUnicodeWriter_WriteStr(writer, str). -
_PyUnicodeWriter_WriteSubstring(): замените_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)наPyUnicodeWriter_WriteSubstring(writer, str, start, end). -
_PyUnicodeWriter_WriteASCIIString(): замените_PyUnicodeWriter_WriteASCIIString(&writer, str)наPyUnicodeWriter_WriteASCII(writer, str). -
_PyUnicodeWriter_WriteLatin1String(): замените_PyUnicodeWriter_WriteLatin1String(&writer, str)наPyUnicodeWriter_WriteUTF8(writer, str). -
_PyUnicodeWriter_Prepare(): (замены нет). -
_PyUnicodeWriter_PrepareKind(): (замены нет). -
_Py_HashPointer(): используйтеPy_HashPointer(). -
_Py_fopen_obj(): используйтеPy_fopen().
Для использования этих новых общедоступных функций в Python 3.13 и более ранних версиях можно воспользоваться проектом pythoncapi-compat. (Предложено Виктором Стиннером в gh-128863.)
-
Планируется удалить в будущих версиях
Следующие API объявлены устаревшими и будут удалены, однако дата их удаления пока не назначена.
-
Py_TPFLAGS_HAVE_FINALIZE: Не требуется начиная с Python 3.8. -
PyErr_Fetch(): Вместо этого используйтеPyErr_GetRaisedException(). -
PyErr_NormalizeException(): Вместо этого используйтеPyErr_GetRaisedException(). -
PyErr_Restore(): Вместо этого используйтеPyErr_SetRaisedException(). -
PyModule_GetFilename(): Вместо этого используйтеPyModule_GetFilenameObject(). -
PyOS_AfterFork(): Вместо этого используйтеPyOS_AfterFork_Child(). -
PySlice_GetIndicesEx(): Вместо этого используйтеPySlice_Unpack()иPySlice_AdjustIndices(). -
PyUnicode_READY(): Не требуется начиная с Python 3.12 -
PyErr_Display(): Вместо этого используйтеPyErr_DisplayException(). -
_PyErr_ChainExceptions(): Вместо этого используйте_PyErr_ChainExceptions1(). -
Поле
PyBytesObject.ob_shash: вместо этого вызовитеPyObject_Hash(). -
API локального хранилища потоков (TLS):
-
PyThread_create_key(): Вместо этого используйтеPyThread_tss_alloc(). -
PyThread_delete_key(): Вместо этого используйтеPyThread_tss_free(). -
PyThread_set_key_value(): Вместо этого используйтеPyThread_tss_set(). -
PyThread_get_key_value(): Вместо этого используйтеPyThread_tss_get(). -
PyThread_delete_key_value(): Вместо этого используйтеPyThread_tss_delete(). -
PyThread_ReInitTLS(): Не требуется начиная с Python 3.7.
-
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/deprecations/index.html