۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

آنچه باید در مورد باتری های مرده پایتون بدانید

بیاموزید که کدام ماژول های کتابخانه استاندارد پایتون به سمت boneyard در پایتون 3.13 هدایت می شوند و چگونه آنها را جایگزین کنید.

بیاموزید که کدام ماژول های کتابخانه استاندارد پایتون به سمت boneyard در پایتون ۳.۱۳ هدایت می شوند و چگونه آنها را جایگزین کنید.

بیش از ۳۰ سال است که پایتون به این شکل وجود داشته است. در طی آن زمان، مجموعه گسترده و قدرتمندی از ماژول ها را در کتابخانه استاندارد خود جمع آوری کرده است. این ماژول ها به توسعه دهندگان کمک می کنند تا با بسیاری از کارهای رایج شروع کنند. طرفداران Python این زبان را بخش “باتری شامل” می‌نامند.

اما در طول سال‌ها، برخی از این باتری‌ها از بین رفته‌اند – به این معنی که تعمیر و نگهداری از بین رفته‌اند یا برای فناوری‌هایی که اکنون منسوخ شده‌اند استفاده می‌شوند. برخی از این “باتری‌های مرده” در Python 3.12 منسوخ شده‌اند، و به طور کامل در Python 3.13 حذف خواهند شد.

PEP 594 این موارد منسوخ شده را با جزئیات شرح می دهد، اما دانستن آن در یک نگاهی بیندازید که کدام یک بیشتر اهمیت دارند.

بنابراین، در اینجا خلاصه‌ای از ماژول‌های کتابخانه استاندارد که در پایتون ۳.۱۳ حذف شده‌اند، به ترتیب نزولی، شامل کارهایی که هر کدام انجام می‌دهند و ماژول جدیدی (در صورت وجود) جایگزین آن شده است، آورده شده است.

ماژول‌های پایتون منسوخ شده که ممکن است همچنان از آنها استفاده کنید

در اینجا مهم‌ترین ماژول‌های کتابخانه استاندارد منسوخ شده هستند. اینها مواردی هستند که به احتمال زیاد هنوز در برنامه های موجود استفاده می کنید.

بهترین ویژگی های جدید در ASP.NET Core 6

cgi, cgitb

استاندارد CGI برای برنامه‌های کاربردی وب مدت‌هاست که منسوخ شده است، اما پشتیبانی از آن در پایتون به دو دلیل باقی مانده است: بسیاری از چارچوب‌های برنامه کاربردی وب که هنوز از CGI پشتیبانی می‌کنند و اجزای درون cgi و < code>cgitb که هنوز در جاهای دیگر استفاده می شوند.

در اینجا ویژگی‌ها یا مؤلفه‌های cgi وجود دارد که ممکن است از آنها استفاده کنید، حتی اگر متوجه نباشید، و چه کاری می‌توانید برای جایگزینی آنها انجام دهید، طبق PEP 594:

به‌علاوه، اگر از درخواست‌های POST و PUT در بارهای بالقوه بزرگ استفاده می‌کنید، ممکن است لازم باشد cgi.FieldStorage را با یک ماژول شخص ثالث مانند چند بخشی. برای بارهای کوچکتر، عناصر تجزیه کننده پیوست در email.message  ممکن است کافی باشد.

برای درخواست‌های GET و HEAD، می‌توانید از urllib.parse.parse_qsl.

smtpd، telnetlib، nntplib

این ماژول‌ها برای کار با ایمیل، اخبار و پروتکل‌های اتصال شبکه هستند. در همه موارد، ماژول‌های دیگر جایگزین آن‌ها می‌شوند:

msilib

msilib فقط در Microsoft Windows موجود است و برای ایجاد بسته‌های Microsoft Installer (MSI) است. distutils که اکنون نیز منسوخ شده است، از این ماژول برای ایجاد نصب کننده های MSI استفاده می کند. توسعه‌دهندگان اصلی پایتون، بار نگهداری msilib (با تعداد نسبتاً کمی کاربران واقعی) را دلیل بزرگی برای حذف آن ذکر کرده‌اند.

لوله ها

pipes برخی از عملکردهای os.popen را مجدداً بسته بندی می کند تا ورودی را از یک دستور به خروجی فرمان دیگر هدایت کند. فرایند فرعی در کتابخانه استاندارد راهی برای رسیدگی به چنین مواردی در حال حاضر است.

ماژول های منسوخ بیشتر پایتون

این ماژول‌ها در برنامه‌هایی که می‌نویسید یا نگهداری می‌کنید کمتر مورد استفاده قرار می‌گیرند، اما بهتر است بدانید که منسوخ شده‌اند.