منسوخشدهها¶
در انتظار حذف در پایتون 3.15¶
سیستم ایمپورت:
تنظیم
__cached__روی یک ماژول در حالی که__spec__.cachedتنظیم نشده باشد، منسوخ شده است. در پایتون 3.15،__cached__دیگر توسط سیستم ایمپورت یا کتابخانه استاندارد تنظیم نخواهد شد یا در نظر گرفته نخواهد شد. (gh-97879)تنظیم کردن
__package__روی یک ماژول بدون تنظیم__spec__.parentمنسوخ شده است. در پایتون 3.15،__package__دیگر توسط سیستم ایمپورت یا کتابخانه استاندارد تنظیم یا در نظر گرفته نخواهد شد. (gh-97879)
-
تابع مستندنشده
ctypes.SetPointerType()از پایتون 3.13 منسوخ شده است.
-
کلاس
CGIHTTPRequestHandlerکه از رده خارج است و بهندرت استفاده میشود، از پایتون 3.13 منسوخ شده است. جایگزین مستقیمی برای آن وجود ندارد. برای برقراری رابط بین وبسرور و هندلر درخواست، هر چیزی بهتر از CGI است.پرچم
--cgiدر رابط خط فرمان python -m http.server از پایتون 3.13 منسوخ شده است.
-
متد
load_module(): بهجای آن ازexec_module()استفاده کنید.
-
PurePath.is_reserved()از پایتون 3.13 منسوخ شده است. برای تشخیص مسیرهای رزروشده در ویندوز، ازos.path.isreserved()استفاده کنید.
-
java_ver()از پایتون 3.13 منسوخ شده است. این تابع تنها برای پشتیبانی از Jython مفید است، API گیجکنندهای دارد و عمدتاً آزمایشنشده است.
-
آرگومان check_home تابع
sysconfig.is_python_build()از پایتون 3.12 منسوخ شده است.
-
RLock()در پایتون 3.15 هیچ آرگومانی نخواهد گرفت. ارسال هر آرگومانی از پایتون 3.14 منسوخ شده است، زیرا نسخهی پایتون اجازهی هیچ آرگومانی را نمیدهد، اما نسخهی C هر تعداد آرگومان جایگاهی یا کلیدواژهای را میپذیرد و همهی آرگومانها را نادیده میگیرد.
-
types.CodeType: دسترسی بهco_lnotabطبق PEP 626 از نسخهی 3.10 منسوخ شد و قرار بود در 3.12 حذف شود، اما تنها در 3.12 یکDeprecationWarningمناسب دریافت کرد. ممکن است در 3.15 حذف شود. (مشارکتشده توسط نیکیتا سوبولف در gh-101866.)
-
سینتکس مستندنشدهی آرگومان کلیدواژهای برای ایجاد کلاسهای
NamedTuple(برای مثال،Point = NamedTuple("Point", x=int, y=int)) از پایتون 3.13 منسوخ شده است. بهجای آن، از سینتکس مبتنی بر کلاس یا سینتکس تابعی استفاده کنید.هنگام استفاده از سینتکس تابعی
TypedDict، عدم ارسال مقدار به پارامتر fields (TD = TypedDict("TD")) یا ارسالNone(TD = TypedDict("TD", None)) از پایتون 3.13 منسوخ شده است. برای ایجاد یک TypedDict بدون هیچ فیلدی، ازclass TD(TypedDict): passیاTD = TypedDict("TD", {})استفاده کنید.تابع دکوراتور
@typing.no_type_check_decoratorاز پایتون 3.13 منسوخ شده است. پس از هشت سال حضور در ماژولtyping، هنوز توسط هیچ بررسیگر نوع مطرحی پشتیبانی نشده است.
wave:متدهای
getmark()،setmark()وgetmarkers()در کلاسهایWave_readوWave_writeاز پایتون 3.13 منسوخ شدهاند.
-
load_module()از پایتون 3.10 منسوخ شده است. به جای آن ازexec_module()استفاده کنید. (مشارکتشده توسط جیاهائو لی در gh-125746.)
در انتظار حذف در پایتون 3.16¶
سیستم ایمپورت:
تنظیم
__loader__روی یک ماژول بدون تنظیم__spec__.loaderمنسوخ شده است. در پایتون 3.16،__loader__دیگر توسط سیستم ایمپورت یا کتابخانه استاندارد تنظیم یا در نظر گرفته نخواهد شد.
-
کد قالب
'u'(wchar_t) در مستندات از پایتون 3.3 و در رانتایم از پایتون 3.13 منسوخ شده است. به جای آن، برای نویسههای یونیکد از کد قالب'w'(Py_UCS4) استفاده کنید.
-
asyncio.iscoroutinefunction()منسوخ شده است و در Python 3.16 حذف خواهد شد؛ بهجای آن ازinspect.iscoroutinefunction()استفاده کنید. (با مشارکت Jiahao Li و Kumar Aditya در gh-122875.)سامانه سیاستهای
asyncioمنسوخ شده است و در پایتون 3.16 حذف خواهد شد. بهویژه، کلاسها و توابع زیر منسوخ شدهاند:کاربران باید برای استفاده از پیادهسازی حلقه رویداد مطلوب، از
asyncio.run()یاasyncio.Runnerبه همراه loop_factory استفاده کنند.به عنوان مثال، برای استفاده از
asyncio.SelectorEventLoopدر ویندوز:import asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)
(مشارکتشده توسط Kumar Aditya در gh-127949.)
-
وارونسازی بیتی روی نوعهای بولی، یعنی
~Trueیا~False، از پایتون 3.12 منسوخ شده است، زیرا نتایج غیرمنتظره و غیرشهودی تولید میکند (-2و-1). برای نقیض منطقی یک مقدار بولی، بهجای آن ازnot xاستفاده کنید. در موارد نادر که به وارونسازی بیتی عدد صحیح زیرین نیاز دارید، آن را بهطور صریح بهintتبدیل کنید (~int(x)).
-
فراخوانی پیادهسازی پایتونی
functools.reduce()با آرگومانهای کلیدواژهای function یا sequence از پایتون 3.14 منسوخ شده است.
-
پشتیبانی از هندلرهای سفارشی گزارشگیری با آرگومان strm منسوخ شده و برای حذف در پایتون 3.16 برنامهریزی شده است. به جای آن، هندلرها را با آرگومان stream تعریف کنید. (مشارکت Mariusz Felisiak در gh-115032.)
-
پسوندهای معتبر برای
mimetypes.MimeTypes.add_type()با '.' شروع میشوند یا خالی هستند. پسوندهای بدون نقطه منسوخ شدهاند و در پایتون 3.16 استثنایValueErrorایجاد خواهند کرد. (با مشارکت هوگو ون کمناده در gh-75223.)
-
استثنای
ExecErrorاز پایتون 3.14 منسوخ شده است. از پایتون 3.4 به بعد، هیچ تابعی درshutilاز آن استفاده نکرده است و اکنون نام مستعاری برایRuntimeErrorاست.
-
متد
Class.get_methodsاز پایتون 3.14 منسوخ شده است.
sys:تابع
_enablelegacywindowsfsencoding()از پایتون 3.13 منسوخ شده است. به جای آن از متغیر محیطیPYTHONLEGACYWINDOWSFSENCODINGاستفاده کنید.
-
تابع
sysconfig.expand_makefile_vars()از پایتون 3.14 منسوخ شده است. به جای آن، از آرگومانvarsدرsysconfig.get_paths()استفاده کنید.
-
ویژگی مستندنشده و استفادهنشدهی
TarFile.tarfileاز پایتون 3.13 منسوخ شده است.
در انتظار حذف در پایتون 3.17¶
-
collections.abc.ByteStringبرای حذف در پایتون 3.17 برنامهریزی شده است.از
isinstance(obj, collections.abc.Buffer)استفاده کنید تا در زمان اجرا بررسی کنید که آیاobjپروتکل بافر را پیادهسازی میکند. برای استفاده در حاشیهنویسی نوع، یا ازBufferاستفاده کنید یا از یک اجتماع (union) که بهطور صریح نوعهایی را که کد شما از آنها پشتیبانی میکند مشخص میکند (مثلاًbytes | bytearray | memoryview).ByteStringدر اصل قرار بود یک کلاس انتزاعی باشد که بهعنوان ابرنوعی برای هر دوbytesوbytearrayعمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیئی نمونهای ازByteStringاست، هرگز در واقع هیچ چیز مفیدی دربارهی آن شیء به شما نمیگفت. سایر نوعهای رایج بافر مانندmemoryviewنیز هرگز بهعنوان زیرنوعهایی ازByteStringشناخته نمیشدند (نه در رانتایم و نه توسط بررسیگرهای نوع ایستا).برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکتشده توسط Shantanu Jain در gh-91896.)
-
پیش از پایتون 3.14، اجتماعهای سبک قدیمی (old-style unions) با استفاده از کلاس خصوصی
typing._UnionGenericAliasپیادهسازی میشدند. این کلاس دیگر برای پیادهسازی لازم نیست، اما برای سازگاری با نسخههای پیشین حفظ شده است و حذف آن برای پایتون 3.17 برنامهریزی شده است. کاربران باید بهجای اتکا به جزئیات پیادهسازی خصوصی، از ابزارهای کمکی دروننگری مستند مانندtyping.get_origin()وtyping.get_args()استفاده کنند.typing.ByteStringکه از پایتون 3.9 منسوخ شده است، برای حذف در پایتون 3.17 برنامهریزی شده است.از
isinstance(obj, collections.abc.Buffer)استفاده کنید تا در زمان اجرا بررسی کنید که آیاobjپروتکل بافر را پیادهسازی میکند. برای استفاده در حاشیهنویسی نوع، یا ازBufferاستفاده کنید یا از یک اجتماع (union) که بهطور صریح نوعهایی را که کد شما از آنها پشتیبانی میکند مشخص میکند (مثلاًbytes | bytearray | memoryview).ByteStringدر اصل قرار بود یک کلاس انتزاعی باشد که بهعنوان ابرنوعی برای هر دوbytesوbytearrayعمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیئی نمونهای ازByteStringاست، هرگز در واقع هیچ چیز مفیدی دربارهی آن شیء به شما نمیگفت. سایر نوعهای رایج بافر مانندmemoryviewنیز هرگز بهعنوان زیرنوعهایی ازByteStringشناخته نمیشدند (نه در رانتایم و نه توسط بررسیگرهای نوع ایستا).برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکتشده توسط Shantanu Jain در gh-91896.)
در انتظار حذف در پایتون 3.18¶
در انتظار حذف در پایتون 3.19¶
در انتظار حذف در نسخههای آینده¶
APIهای زیر در آینده حذف خواهند شد، اگرچه در حال حاضر تاریخی برای حذف آنها برنامهریزی نشده است.
-
تودرتو کردن گروههای آرگومان و تودرتو کردن گروههای انحصاری متقابل منسوخ شدهاند.
گذراندن آرگومان کلیدواژهای مستندنشدهی prefix_chars به
add_argument_group()اکنون منسوخ شده است.مبدل نوع
argparse.FileTypeمنسوخ شده است.
-
تولیدگرها: امضای
throw(type, exc, tb)وathrow(type, exc, tb)منسوخ شده است؛ به جای آن ازthrow(exc)وathrow(exc)استفاده کنید — امضای تکآرگومانی.در حال حاضر پایتون مقادیر لفظی عددی را میپذیرد که بلافاصله کلیدواژهای پس از آنها میآید، برای مثال
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)پشتیبانی از بازگرداندن نوعی غیر از int توسط متدهای
__index__()و__int__(): این متدها ملزم خواهند شد که نمونهای از یک زیرکلاس محضِintرا بازگردانند.پشتیبانی از متد
__float__()که زیرکلاس اکیدی ازfloatرا برمیگرداند: این متدها ملزم خواهند شد که نمونهای ازfloatرا بازگردانند.پشتیبانی از متد
__complex__()که زیرکلاس اکیدِcomplexرا برمیگرداند: این متدها ملزم خواهند شد که نمونهای ازcomplexرا برگردانند.گذراندن یک عدد مختلط بهعنوان آرگومان real یا imag در سازندهی
complex()اکنون منسوخ شده است؛ این عدد باید فقط بهصورت یک آرگومان جایگاهی واحد ارسال شود. (مشارکت Serhiy Storchaka در gh-109218.)
calendar: ثابتهایcalendar.Januaryوcalendar.Februaryمنسوخ شدهاند و باcalendar.JANUARYوcalendar.FEBRUARYجایگزین شدهاند. (مشارکتشده توسط Prince Roshan در gh-103636.)codecs: بهجایcodecs.open()از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 استفاده کنید.
-
رابط تاپلیِ
EntryPoints.Noneضمنی در مقادیر بازگشتی.
logging: متدwarn()از پایتون 3.3 به بعد منسوخ شده است؛ به جای آن ازwarning()استفاده کنید.mailbox: استفاده از ورودی StringIO و حالت متنی منسوخ شده است؛ بهجای آن از BytesIO و حالت دودویی استفاده کنید.os: فراخوانیos.register_at_fork()در فرایند چندنخی.pydoc.ErrorDuringImport: مقدار تاپل برای پارامتر exc_info منسوخ شده است؛ از یک نمونه استثنا استفاده کنید.re: اکنون قواعد سختگیرانهتری برای ارجاعهای عددی گروه و نام گروهها در عبارتهای باقاعده اعمال میشود. اکنون فقط دنبالهای از ارقام اسکی بهعنوان ارجاع عددی پذیرفته میشود. نام گروه در الگوهای بایتی و رشتههای جایگزین اکنون فقط میتواند شامل حروف و ارقام اسکی و زیرخط باشد. (مشارکتشده توسط Serhiy Storchaka در gh-91760.)ماژولهای
sre_compile،sre_constantsوsre_parse.shutil: پارامتر onerror درrmtree()در پایتون 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._UnionGenericAliasدیگر برای پیادهسازیtyping.Unionاستفاده نمیشود. برای حفظ سازگاری با کاربرانی که از این کلاس خصوصی استفاده میکنند، یک لایهی سازگاری (shim) تا دستکم Python 3.17 ارائه خواهد شد. (مشارکتشده توسط Jelle Zijlstra در gh-105499.)unittest.IsolatedAsyncioTestCase: برگرداندن مقداری غیر ازNoneاز یک مورد آزمون منسوخ شده است.توابع منسوخ
urllib.parse: بهجای آنهاurlparse()splitattr()splithost()splitnport()splitpasswd()splitport()splitquery()splittag()splittype()splituser()splitvalue()to_bytes()
wsgiref:SimpleHandler.stdout.write()نباید نوشتن جزئی (partial write) انجام دهد.xml.etree.ElementTree: آزمودن مقدار درستی یکElementمنسوخ شده است. در نسخهای در آینده، همیشهTrueبازگردانده خواهد شد. به جای آن، آزمونهای صریحlen(elem)یاelem is not Noneرا ترجیح دهید.sys._clear_type_cache()منسوخ شده است: به جای آن ازsys._clear_internal_caches()استفاده کنید.
منسوخشدههای C API¶
در انتظار حذف در پایتون 3.15¶
تابع
PyImport_ImportModuleNoBlock(): به جای آن ازPyImport_ImportModule()استفاده کنید.PyWeakref_GetObject()وPyWeakref_GET_OBJECT(): بهجای آنها ازPyWeakref_GetRef()استفاده کنید. میتوان از پروژهی pythoncapi-compat برای دسترسی بهPyWeakref_GetRef()در پایتون 3.12 و نسخههای قدیمیتر استفاده کرد.نوع
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برگردانند.توابع مقداردهی اولیه پایتون، منسوخشده در پایتون 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استفاده کنید.
میتوان از پروژهی pythoncapi-compat برای به دست آوردن
PyConfig_Get()در پایتون 3.13 و نسخههای قدیمیتر استفاده کرد.توابعی برای پیکربندی راهاندازی پایتون، که در پایتون 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()برای دریافت این گزینهها در زمان اجرا استفاده کرد.
در انتظار حذف در پایتون 3.18¶
توابع خصوصی زیر منسوخ شدهاند و حذف آنها در پایتون 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()استفاده کنید.
میتوان از پروژهی pythoncapi-compat برای به دست آوردن این توابع عمومی جدید در پایتون 3.13 و نسخههای قدیمیتر استفاده کرد. (مشارکتشده توسط Victor Stinner در gh-128863.)
در انتظار حذف در نسخههای آینده¶
APIهای زیر منسوخ شدهاند و حذف خواهند شد، اگرچه در حال حاضر هیچ تاریخی برای حذف آنها تعیین نشده است.
Py_TPFLAGS_HAVE_FINALIZE: از پایتون 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(): از پایتون 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(): از پایتون 3.7 به بعد لازم نیست.