ProIT: медіа для профі в IT
3 хв

Які модулі стандартної бібліотеки будуть видалені у Python 3.13 і як нові модулі їх замінять

author avatar ProIT NEWS

Python у тій чи іншій формі існує вже понад 30 років. За цей час ця мова програмування накопичила широкий і потужний набір модулів у своїй стандартній бібліотеці. Ці модулі допомагають розробникам почати роботу з багатьма типовими завданнями, повідомляє InfoWorld.

Але з роками деякі з них не обслуговували або використовували для технологій, які зараз застаріли. Деякі з цих модулів були застарілими в Python 3.12 і будуть повністю видалені в Python 3.13.

Ось виклад (за зменшенням важливості) модулів стандартної бібліотеки, видалених у Python 3.13, а також інформація про те, що кожен із них робить і який новий модуль (якщо є) його замінив.

Застарілі модулі Python, які ви все ще можете використовувати

Ось найважливіші застарілі модулі стандартної бібліотеки. Це ті, які ви, швидше за все, все ще використовуєте в наявних програмах.

cgi, cgitb

Стандарт CGI для вебзастосунків давно застарів, але його підтримка залишилася в Python із двох причин: багато фреймворків вебзастосунків, які все ще підтримують CGI, і компоненти всередині cgi та cgitb, які все ще використовуються в інших місцях.

Ось функції чи компоненти cgi, які ви можете використовувати, навіть якщо цього не усвідомлюєте, і що ви можете зробити, щоб їх замінити:

  • cgi.parse: замінити на urllib.parse.parse_qs;
  • cgi.parse_header: замінити на email.message.EmailMessage;
  • cgi.parse_multipart: замінити на email.message.EmailMessage.

Крім того, якщо ви використовуєте запити POST і PUT для потенційно великих корисних навантажень, то вам може знадобитися замінити cgi.FieldStorage на сторонній модуль, наприклад multipart. Для меншого корисного навантаження може бути достатньо елементів аналізу вкладень в email.message.

Для запитів GET і HEAD можна використовувати urllib.parse.parse_qsl.

smtpd, telnetlib, nntplib

Ці модулі призначені для роботи з поштою, новинами та протоколами підключення до мережі. У всіх випадках вони тепер замінені іншими модулями:

  • smtpd, для роботи з поштовим протоколом SMTP, можна замінити на aiosmtpd, який має додаткову перевагу, оскільки є асинхронним.
  • nntp, для роботи з протоколом новин USENET, можна замінити на pynntp.
  • telnetlib, для роботи з протоколом з’єднання Telnet, можна замінити на telnetlib3, який має переваги, оскільки він є клієнтом вищого рівня та сумісний з asyncio.

msilib

msilib доступний лише в Microsoft Windows і призначений для створення пакетів Microsoft Installer (MSI). distutils, який також уже не підтримується, використовував цей модуль для створення інсталяторів MSI.

Основні розробники Python назвали тягар підтримки msilib (з відносно невеликою кількістю реальних користувачів) як серйозну причину для його видалення.

pipes

pipes перепаковує деякі функціональні можливості os.popen для перенаправлення вхідних даних з однієї команди на вихідні дані іншої команди. Тепер для цього у стандартній бібліотеці є subprocess.

Більше застарілих модулів Python

Ці модулі набагато рідше використовуватимуться в будь-яких програмах, які ви пишете або підтримуєте, але варто знати, що вони застаріли:

  • asynchat/asynchore: для асинхронних мережевих операцій. Замінено на asyncio із Python 3.6.
  • imghdr/sndhdr: використовується для створення обґрунтованих припущень щодо вмісту файлів зображень або звуку на основі їхніх заголовків. Замінено бібліотеками сторонніх розробників, як-от Pillow (для зображень) або python-magic (для всіх типів файлів).
  • uu: для кодування та декодування даних за допомогою протоколу uuencode; застарілий після створення формату MIME. Якщо вам усе ще потрібен кодек uu з будь-якої причини, модуль binascii у stdlib підтримує його.
  • mailcap: використовується для читання файлів ємності електронної пошти, як спосіб роботи з вкладеннями електронної пошти. Програмам уже рідко потрібно робити це самостійно.
  • crypt: для роботи з функціями libcrypt у стилі Unix, які тривалий час вважалися застарілими та небезпечними.
  • nis: для роботи із застарілим протоколом Network Information Service, заміненим LDAP та іншими подібними протоколами.
  • spwd: для доступу до тіньової бази даних паролів Unix. Це вважається загрозою безпеці, і його використання більше не заохочується.
  • xdrlib: для роботи зі стандартом представлення зовнішніх даних Sun, двійковим форматом серіалізації, який більше не використовується.
  • chunk: для читання та запису формату файлів обміну, який використовується на старих персональних комп’ютерах, таких як Commodore й Amiga.
  • sunau: для роботи із застарілим аудіоформатом Sun AU.
  • ossaudiodev: підтримка мало використовуваного стандарту аудіоінтерфейсу Open Sound System.

Раніше ProIT розповідав, що новий проєкт Python під назвою Wall of Flippers виявляє спам-атаки Bluetooth, запущені пристроями Flipper Zero та Android.

Підписуйтеся на ProIT у Telegram, щоб не пропустити жодну публікацію!

Приєднатися до company logo
Продовжуючи, ти погоджуєшся з умовами Публічної оферти та Політикою конфіденційності.