در انتظار حذف در پایتون 3.17

  • datetime:

    • فراخوانی‌های strptime() که از یک رشته‌ی قالب‌بندی حاوی %e (روز ماه) بدون سال استفاده می‌کنند. این ویژگی از نسخه‌ی ۳.۱۵ پایتون منسوخ شده است. (مشارکت‌شده توسط Stan Ulbrych در gh-70647.)

  • collections.abc:

    • collections.abc.ByteString قرار است در Python 3.17 حذف شود.

      برای آزمودن اینکه آیا obj پروتکل بافر را در زمان اجرا پیاده‌سازی می‌کند، از isinstance(obj, collections.abc.Buffer) استفاده کنید. برای استفاده در حاشیه‌نویسی‌های نوع، یا از Buffer استفاده کنید یا از یک اجتماع (union) که به‌طور صریح انواعی را که کد شما از آن‌ها پشتیبانی می‌کند مشخص می‌کند (مثلاً bytes | bytearray | memoryview).

      ByteString در اصل قرار بود کلاسی انتزاعی باشد که به‌عنوان ابرنوع (supertype) برای هر دو bytes و bytearray عمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیء‌ای نمونه‌ای از ByteString است، هرگز در واقع هیچ چیز مفیدی درباره‌ی آن شیء به شما نمی‌گفت. سایر نوع‌های بافر رایج مانند memoryview نیز هرگز به‌عنوان زیرنوع‌هایی از ByteString در نظر گرفته نمی‌شدند (نه در زمان اجرا و نه توسط بررسی‌گرهای نوع ایستا).

      برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکت‌شده توسط شانتانو جین در gh-91896.)

  • encodings:

    • ارسال نام‌های کدگذاری non-ascii به encodings.normalize_encoding() منسوخ شده است و طبق برنامه‌ریزی در نسخه‌ی ۳.۱۷ پایتون حذف خواهد شد. (مشارکت‌شده توسط Stan Ulbrych در gh-136702.)

  • profile:

    • ماژول profile منسوخ شده است و در نسخه‌ی ۳.۱۷ پایتون حذف خواهد شد. به‌جای آن از profiling.tracing استفاده کنید که یک API سازگار فراهم می‌کند. برای جزئیات بیشتر PEP 799 را ببینید. (مشارکت‌شده توسط Pablo Galindo و László Kiss Kollár در gh-138122.)

  • webbrowser:

    • کلاس webbrowser.MacOSXOSAScript به نفع webbrowser.MacOS منسوخ شده است. (gh-137586)

  • typing:

    • پیش از پایتون 3.14، یونیون‌های سبک قدیمی (old-style unions) با استفاده از کلاس خصوصی typing._UnionGenericAlias پیاده‌سازی می‌شدند. این کلاس دیگر برای پیاده‌سازی مورد نیاز نیست، اما برای سازگاری با نسخه‌های قبلی حفظ شده است و حذف آن برای پایتون 3.17 برنامه‌ریزی شده است. کاربران باید به‌جای تکیه بر جزئیات پیاده‌سازی خصوصی، از ابزارهای کمکی مستند درون‌نگری مانند typing.get_origin() و typing.get_args() استفاده کنند.

    • typing.ByteString که از پایتون 3.9 منسوخ شده است، برای حذف در پایتون 3.17 برنامه‌ریزی شده است.

      برای آزمودن اینکه آیا obj پروتکل بافر را در زمان اجرا پیاده‌سازی می‌کند، از isinstance(obj, collections.abc.Buffer) استفاده کنید. برای استفاده در حاشیه‌نویسی‌های نوع، یا از Buffer استفاده کنید یا از یک اجتماع (union) که به‌طور صریح انواعی را که کد شما از آن‌ها پشتیبانی می‌کند مشخص می‌کند (مثلاً bytes | bytearray | memoryview).

      ByteString در اصل قرار بود کلاسی انتزاعی باشد که به‌عنوان ابرنوع (supertype) برای هر دو bytes و bytearray عمل کند. با این حال، از آنجا که این کلاس پایه انتزاعی هرگز هیچ متدی نداشت، دانستن اینکه شیء‌ای نمونه‌ای از ByteString است، هرگز در واقع هیچ چیز مفیدی درباره‌ی آن شیء به شما نمی‌گفت. سایر نوع‌های بافر رایج مانند memoryview نیز هرگز به‌عنوان زیرنوع‌هایی از ByteString در نظر گرفته نمی‌شدند (نه در زمان اجرا و نه توسط بررسی‌گرهای نوع ایستا).

      برای جزئیات بیشتر به PEP 688 مراجعه کنید. (مشارکت‌شده توسط شانتانو جین در gh-91896.)

  • tkinter:

    • متدهای tkinter.Variable یعنی trace_variable()، trace() (که نام مستعاری برای trace_variable() است)، trace_vdelete() و trace_vinfo() که از نسخه‌ی ۳.۱۴ پایتون منسوخ شده‌اند، طبق برنامه‌ریزی در نسخه‌ی ۳.۱۷ پایتون حذف خواهند شد. به‌جای آن‌ها از trace_add()، trace_remove() و trace_info() استفاده کنید. (مشارکت‌شده توسط Serhiy Storchaka در gh-120220.)