Skip to content

[3.13] gh-109975: Add list of 3.13 removed library replacements (GH-127816) #129242

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 27, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions Doc/whatsnew/3.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1508,8 +1508,20 @@ All of the following modules were deprecated in Python 3.11,
and are now removed:

* :mod:`!aifc`

* :pypi:`standard-aifc`:
Use the redistribution of ``aifc`` library from PyPI.

* :mod:`!audioop`

* :pypi:`audioop-lts`:
Use ``audioop-lts`` library from PyPI.

* :mod:`!chunk`

* :pypi:`standard-chunk`:
Use the redistribution of ``chunk`` library from PyPI.

* :mod:`!cgi` and :mod:`!cgitb`

* :class:`!cgi.FieldStorage` can typically be replaced with
Expand Down Expand Up @@ -1540,6 +1552,9 @@ and are now removed:
For example, the :class:`email.message.EmailMessage`
and :class:`email.message.Message` classes.

* :pypi:`standard-cgi`: and :pypi:`standard-cgitb`:
Use the redistribution of ``cgi`` and ``cgitb`` library from PyPI.

* :mod:`!crypt` and the private :mod:`!_crypt` extension.
The :mod:`hashlib` module may be an appropriate replacement
when simply hashing a value is required.
Expand All @@ -1558,37 +1573,74 @@ and are now removed:
Fork of the :mod:`!crypt` module,
wrapper to the :manpage:`crypt_r(3)` library call
and associated functionality.
* :pypi:`standard-crypt` and :pypi:`deprecated-crypt-alternative`:
Use the redistribution of ``crypt`` and reimplementation of ``_crypt`` libraries from PyPI.

* :mod:`!imghdr`:
The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-magic` libraries
should be used as replacements.
For example, the :func:`!puremagic.what` function can be used
to replace the :func:`!imghdr.what` function for all file formats
that were supported by :mod:`!imghdr`.

* :pypi:`standard-imghdr`:
Use the redistribution of ``imghdr`` library from PyPI.

* :mod:`!mailcap`:
Use the :mod:`mimetypes` module instead.

* :pypi:`standard-mailcap`:
Use the redistribution of ``mailcap`` library from PyPI.

* :mod:`!msilib`
* :mod:`!nis`
* :mod:`!nntplib`:
Use the :pypi:`pynntp` library from PyPI instead.

* :pypi:`standard-nntplib`:
Use the redistribution of ``nntplib`` library from PyPI.

* :mod:`!ossaudiodev`:
For audio playback, use the :pypi:`pygame` library from PyPI instead.
* :mod:`!pipes`:
Use the :mod:`subprocess` module instead.
Use :func:`shlex.quote` to replace the undocumented ``pipes.quote``
function.

* :pypi:`standard-pipes`:
Use the redistribution of ``pipes`` library from PyPI.

* :mod:`!sndhdr`:
The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-magic` libraries
should be used as replacements.

* :pypi:`standard-sndhdr`:
Use the redistribution of ``sndhdr`` library from PyPI.

* :mod:`!spwd`:
Use the :pypi:`python-pam` library from PyPI instead.
* :mod:`!sunau`

* :pypi:`standard-sunau`:
Use the redistribution of ``sunau`` library from PyPI.

* :mod:`!telnetlib`,
Use the :pypi:`telnetlib3` or :pypi:`Exscript` libraries from PyPI instead.

* :pypi:`standard-telnetlib`:
Use the redistribution of ``telnetlib`` library from PyPI.

* :mod:`!uu`:
Use the :mod:`base64` module instead, as a modern alternative.

* :pypi:`standard-uu`:
Use the redistribution of ``uu`` library from PyPI.

* :mod:`!xdrlib`

* :pypi:`standard-xdrlib`:
Use the redistribution of ``xdrlib`` library from PyPI.

(Contributed by Victor Stinner and Zachary Ware in :gh:`104773` and :gh:`104780`.)


Expand Down
Loading