PEP 594: Re-link removed batteries to last included version (#3778)
This commit is contained in:
parent
0f45dbd37b
commit
b14f4e77a1
4
Makefile
4
Makefile
|
@ -39,8 +39,8 @@ dirhtml: html
|
||||||
|
|
||||||
## linkcheck to check validity of links within PEP sources
|
## linkcheck to check validity of links within PEP sources
|
||||||
.PHONY: linkcheck
|
.PHONY: linkcheck
|
||||||
check-links: BUILDER = linkcheck
|
linkcheck: BUILDER = linkcheck
|
||||||
check-links: html
|
linkcheck: html
|
||||||
|
|
||||||
## check-links (deprecated: use 'make linkcheck' alias instead)
|
## check-links (deprecated: use 'make linkcheck' alias instead)
|
||||||
.PHONY: pages
|
.PHONY: pages
|
||||||
|
|
|
@ -20,6 +20,7 @@ master_doc = "contents"
|
||||||
# Add any Sphinx extension module names here, as strings.
|
# Add any Sphinx extension module names here, as strings.
|
||||||
extensions = [
|
extensions = [
|
||||||
"pep_sphinx_extensions",
|
"pep_sphinx_extensions",
|
||||||
|
"sphinx.ext.extlinks",
|
||||||
"sphinx.ext.intersphinx",
|
"sphinx.ext.intersphinx",
|
||||||
"sphinx.ext.githubpages",
|
"sphinx.ext.githubpages",
|
||||||
]
|
]
|
||||||
|
@ -59,6 +60,14 @@ intersphinx_mapping = {
|
||||||
}
|
}
|
||||||
intersphinx_disabled_reftypes = []
|
intersphinx_disabled_reftypes = []
|
||||||
|
|
||||||
|
# sphinx.ext.extlinks
|
||||||
|
# This config is a dictionary of external sites,
|
||||||
|
# mapping unique short aliases to a base URL and a prefix.
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/extensions/extlinks.html
|
||||||
|
extlinks = {
|
||||||
|
"pypi": ("https://pypi.org/project/%s/", "%s"),
|
||||||
|
}
|
||||||
|
|
||||||
# -- Options for HTML output -------------------------------------------------
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
|
||||||
_PSE_PATH = _ROOT / "pep_sphinx_extensions"
|
_PSE_PATH = _ROOT / "pep_sphinx_extensions"
|
||||||
|
|
|
@ -5,7 +5,6 @@ Author: Christian Heimes <christian@python.org>,
|
||||||
Discussions-To: https://discuss.python.org/t/13508
|
Discussions-To: https://discuss.python.org/t/13508
|
||||||
Status: Final
|
Status: Final
|
||||||
Type: Standards Track
|
Type: Standards Track
|
||||||
Content-Type: text/x-rst
|
|
||||||
Created: 20-May-2019
|
Created: 20-May-2019
|
||||||
Python-Version: 3.11
|
Python-Version: 3.11
|
||||||
Post-History: 21-May-2019, 04-Feb-2022
|
Post-History: 21-May-2019, 04-Feb-2022
|
||||||
|
@ -137,47 +136,28 @@ audio processing.
|
||||||
:widths: 2, 1, 1, 1, 1, 2
|
:widths: 2, 1, 1, 1, 1, 2
|
||||||
|
|
||||||
aifc,3.11 (3.0\*),3.13,1993,**yes (inactive)**,\-
|
aifc,3.11 (3.0\*),3.13,1993,**yes (inactive)**,\-
|
||||||
asynchat,**3.6** (3.0\*),3.12,1999,**yes**,asyncio_
|
asynchat,**3.6** (3.0\*),3.12,1999,**yes**,:mod:`asyncio`
|
||||||
asyncore,**3.6** (3.0\*),3.12,1999,**yes**,asyncio_
|
asyncore,**3.6** (3.0\*),3.12,1999,**yes**,:mod:`asyncio`
|
||||||
audioop,3.11 (3.0\*),3.13,1992,**yes**,\-
|
audioop,3.11 (3.0\*),3.13,1992,**yes**,\-
|
||||||
cgi,3.11 (2.0\*\*),3.13,1995,no,\-
|
cgi,3.11 (2.0\*\*),3.13,1995,no,\-
|
||||||
cgitb,3.11 (2.0\*\*),3.13,1995,no,\-
|
cgitb,3.11 (2.0\*\*),3.13,1995,no,\-
|
||||||
chunk,3.11,3.13,1999,no,\-
|
chunk,3.11,3.13,1999,no,\-
|
||||||
crypt,3.11,3.13,1994,**yes (inactive)**,"legacycrypt_, bcrypt_, argon2-cffi_, hashlib_, passlib_"
|
crypt,3.11,3.13,1994,**yes (inactive)**,":pypi:`legacycrypt`, :pypi:`bcrypt`, :pypi:`argon2-cffi`, :mod:`hashlib`, :pypi:`passlib`"
|
||||||
imghdr,3.11,3.13,1992,no,"filetype_, puremagic_, python-magic_"
|
imghdr,3.11,3.13,1992,no,":pypi:`filetype`, :pypi:`puremagic`, :pypi:`python-magic`"
|
||||||
mailcap,3.11,3.13,1995,no,\-
|
mailcap,3.11,3.13,1995,no,\-
|
||||||
msilib,3.11,3.13,2006,no,\-
|
msilib,3.11,3.13,2006,no,\-
|
||||||
nntplib,3.11,3.13,1992,no,\-
|
nntplib,3.11,3.13,1992,no,\-
|
||||||
nis,3.11 (3.0\*),3.13,1992,no,\-
|
nis,3.11 (3.0\*),3.13,1992,no,\-
|
||||||
ossaudiodev,3.11,3.13,2002,no,\-
|
ossaudiodev,3.11,3.13,2002,no,\-
|
||||||
pipes,3.11,3.13,1992,no,"subprocess_"
|
pipes,3.11,3.13,1992,no,:mod:`subprocess`
|
||||||
smtpd,"**3.4.7**, **3.5.4**",3.12,2001,**yes**,"aiosmtpd_"
|
smtpd,"**3.4.7**, **3.5.4**",3.12,2001,**yes**,:pypi:`aiosmtpd`
|
||||||
sndhdr,3.11,3.13,1994,no,"filetype_, puremagic_, python-magic_"
|
sndhdr,3.11,3.13,1994,no,":pypi:`filetype`, :pypi:`puremagic`, :pypi:`python-magic`"
|
||||||
spwd,3.11,3.13,2005,no,"python-pam_"
|
spwd,3.11,3.13,2005,no,:pypi:`python-pam`
|
||||||
sunau,3.11 (3.0\*),3.13,1993,no,\-
|
sunau,3.11 (3.0\*),3.13,1993,no,\-
|
||||||
telnetlib,3.11 (3.0\*),3.13,1997,no,"telnetlib3_, Exscript_"
|
telnetlib,3.11 (3.0\*),3.13,1997,no,":pypi:`telnetlib3`, :pypi:`Exscript`"
|
||||||
uu,3.11,3.13,1994,no,\-
|
uu,3.11,3.13,1994,no,\-
|
||||||
xdrlib,3.11,3.13,1992/1996,no,\-
|
xdrlib,3.11,3.13,1992/1996,no,\-
|
||||||
|
|
||||||
.. _aiosmtpd: https://pypi.org/project/aiosmtpd/
|
|
||||||
.. _argon2-cffi: https://pypi.org/project/argon2-cffi/
|
|
||||||
.. _ast: https://docs.python.org/3/library/ast.html
|
|
||||||
.. _astroid: https://pypi.org/project/astroid/
|
|
||||||
.. _asyncio: https://docs.python.org/3/library/asyncio.html
|
|
||||||
.. _bcrypt: https://pypi.org/project/bcrypt/
|
|
||||||
.. _Exscript: https://pypi.org/project/Exscript/
|
|
||||||
.. _filetype: https://pypi.org/project/filetype/
|
|
||||||
.. _hashlib: https://docs.python.org/3/library/hashlib.html
|
|
||||||
.. _importlib: https://docs.python.org/3/library/importlib.html
|
|
||||||
.. _legacycrypt: https://pypi.org/project/legacycrypt/
|
|
||||||
.. _passlib: https://pypi.org/project/passlib/
|
|
||||||
.. _puremagic: https://pypi.org/project/puremagic/
|
|
||||||
.. _python-magic: https://pypi.org/project/python-magic/
|
|
||||||
.. _python-pam: https://pypi.org/project/python-pam/
|
|
||||||
.. _simplepam: https://pypi.org/project/simplepam/
|
|
||||||
.. _subprocess: https://docs.python.org/3/library/subprocess.html
|
|
||||||
.. _telnetlib3: https://pypi.org/project/telnetlib3/
|
|
||||||
|
|
||||||
Some module deprecations proposed by :pep:`3108` for 3.0 and :pep:`206` for
|
Some module deprecations proposed by :pep:`3108` for 3.0 and :pep:`206` for
|
||||||
2.0. The *added in* column illustrates, when a module was originally designed
|
2.0. The *added in* column illustrates, when a module was originally designed
|
||||||
and added to the standard library. The *has maintainer* column refers to the
|
and added to the standard library. The *has maintainer* column refers to the
|
||||||
|
@ -192,7 +172,7 @@ Data encoding modules
|
||||||
uu and the uu encoding
|
uu and the uu encoding
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The `uu <https://docs.python.org/3/library/uu.html>`_ module provides
|
The :external+py3.12:mod:`uu` module provides
|
||||||
uuencode format, an old binary encoding format for email from 1980. The uu
|
uuencode format, an old binary encoding format for email from 1980. The uu
|
||||||
format has been replaced by MIME. The uu codec is provided by the ``binascii``
|
format has been replaced by MIME. The uu codec is provided by the ``binascii``
|
||||||
module. There's also ``encodings/uu_codec.py`` which is a codec for the
|
module. There's also ``encodings/uu_codec.py`` which is a codec for the
|
||||||
|
@ -202,7 +182,7 @@ same encoding; it should also be deprecated.
|
||||||
xdrlib
|
xdrlib
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
The `xdrlib <https://docs.python.org/3/library/xdrlib.html>`_ module supports
|
The :external+py3.12:mod:`xdrlib` module supports
|
||||||
the Sun External Data Representation Standard. XDR is an old binary
|
the Sun External Data Representation Standard. XDR is an old binary
|
||||||
serialization format from 1987. These days it's rarely used outside
|
serialization format from 1987. These days it's rarely used outside
|
||||||
specialized domains like NFS.
|
specialized domains like NFS.
|
||||||
|
@ -214,7 +194,7 @@ Multimedia modules
|
||||||
aifc
|
aifc
|
||||||
~~~~
|
~~~~
|
||||||
|
|
||||||
The `aifc <https://docs.python.org/3/library/aifc.html>`_ module provides
|
The :external+py3.12:mod:`aifc` module provides
|
||||||
support for reading and writing AIFF and AIFF-C files. The Audio Interchange
|
support for reading and writing AIFF and AIFF-C files. The Audio Interchange
|
||||||
File Format is an old audio format from 1988 based on Amiga IFF. It was most
|
File Format is an old audio format from 1988 based on Amiga IFF. It was most
|
||||||
commonly used on the Apple Macintosh. These days only few specialized
|
commonly used on the Apple Macintosh. These days only few specialized
|
||||||
|
@ -231,7 +211,7 @@ maintenance. The strategic benefits for Python may outmatch the burden.
|
||||||
audioop
|
audioop
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
The `audioop <https://docs.python.org/3/library/audioop.html>`_ module
|
The :external+py3.12:mod:`audioop` module
|
||||||
contains helper functions to manipulate raw audio data and adaptive
|
contains helper functions to manipulate raw audio data and adaptive
|
||||||
differential pulse-code modulated audio data. The module is implemented in
|
differential pulse-code modulated audio data. The module is implemented in
|
||||||
C without any additional dependencies. The `aifc`_, `sunau`_, and `wave`_
|
C without any additional dependencies. The `aifc`_, `sunau`_, and `wave`_
|
||||||
|
@ -247,7 +227,7 @@ e.g. ``_audioop`` with ``byteswap``, ``alaw2lin``, ``ulaw2lin``, ``lin2alaw``,
|
||||||
chunk
|
chunk
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
The `chunk <https://docs.python.org/3/library/chunk.html>`_ module provides
|
The :external+py3.12:mod:`chunk` module provides
|
||||||
support for reading and writing Electronic Arts' Interchange File Format.
|
support for reading and writing Electronic Arts' Interchange File Format.
|
||||||
IFF is an old audio file format originally introduced for Commodore and
|
IFF is an old audio file format originally introduced for Commodore and
|
||||||
Amiga. The format is no longer relevant.
|
Amiga. The format is no longer relevant.
|
||||||
|
@ -256,7 +236,7 @@ Amiga. The format is no longer relevant.
|
||||||
imghdr
|
imghdr
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
The `imghdr <https://docs.python.org/3/library/imghdr.html>`_ module is a
|
The :external+py3.12:mod:`imghdr` module is a
|
||||||
simple tool to guess the image file format from the first 32 bytes
|
simple tool to guess the image file format from the first 32 bytes
|
||||||
of a file or buffer. It supports only a limited number of formats and
|
of a file or buffer. It supports only a limited number of formats and
|
||||||
neither returns resolution nor color depth.
|
neither returns resolution nor color depth.
|
||||||
|
@ -265,7 +245,7 @@ neither returns resolution nor color depth.
|
||||||
ossaudiodev
|
ossaudiodev
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
The `ossaudiodev <https://docs.python.org/3/library/ossaudiodev.html>`_
|
The :external+py3.12:mod:`ossaudiodev`
|
||||||
module provides support for Open Sound System, an interface to sound
|
module provides support for Open Sound System, an interface to sound
|
||||||
playback and capture devices. OSS was initially free software, but later
|
playback and capture devices. OSS was initially free software, but later
|
||||||
support for newer sound devices and improvements were proprietary. Linux
|
support for newer sound devices and improvements were proprietary. Linux
|
||||||
|
@ -287,7 +267,7 @@ were removed in 2007 as part of the :pep:`3108` stdlib re-organization.
|
||||||
sndhdr
|
sndhdr
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
The `sndhdr <https://docs.python.org/3/library/sndhdr.html>`_ module is
|
The :external+py3.12:mod:`sndhdr` module is
|
||||||
similar to the `imghdr`_ module but for audio formats. It guesses file
|
similar to the `imghdr`_ module but for audio formats. It guesses file
|
||||||
format, channels, frame rate, and sample widths from the first 512 bytes of
|
format, channels, frame rate, and sample widths from the first 512 bytes of
|
||||||
a file or buffer. The module only supports AU, AIFF, HCOM, VOC, WAV, and
|
a file or buffer. The module only supports AU, AIFF, HCOM, VOC, WAV, and
|
||||||
|
@ -297,7 +277,7 @@ other ancient formats.
|
||||||
sunau
|
sunau
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
The `sunau <https://docs.python.org/3/library/sunau.html>`_ module provides
|
The :external+py3.12:mod:`sunau` module provides
|
||||||
support for Sun AU sound format. It's yet another old, obsolete file format.
|
support for Sun AU sound format. It's yet another old, obsolete file format.
|
||||||
|
|
||||||
|
|
||||||
|
@ -307,14 +287,14 @@ Networking modules
|
||||||
asynchat
|
asynchat
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
The `asynchat <https://docs.python.org/3/library/asynchat.html>`_ module
|
The :external+py3.11:mod:`asynchat` module is built on top of
|
||||||
is built on top of `asyncore`_ and has been deprecated since Python 3.6.
|
:external+py3.11:mod:`asyncore` and has been deprecated since Python 3.6.
|
||||||
|
|
||||||
|
|
||||||
asyncore
|
asyncore
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
The `asyncore <https://docs.python.org/3/library/asyncore.html>`_ module was
|
The :external+py3.11:mod:`asyncore` module was
|
||||||
the first module for asynchronous socket service clients and servers. It
|
the first module for asynchronous socket service clients and servers. It
|
||||||
has been replaced by asyncio and is deprecated since Python 3.6.
|
has been replaced by asyncio and is deprecated since Python 3.6.
|
||||||
|
|
||||||
|
@ -327,7 +307,7 @@ threading.
|
||||||
cgi
|
cgi
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
The `cgi <https://docs.python.org/3/library/cgi.html>`_ module is a support
|
The :external+py3.12:mod:`cgi` module is a support
|
||||||
module for Common Gateway Interface (CGI) scripts. CGI is deemed as
|
module for Common Gateway Interface (CGI) scripts. CGI is deemed as
|
||||||
inefficient because every incoming request is handled in a new process.
|
inefficient because every incoming request is handled in a new process.
|
||||||
:pep:`206` considers the module as:
|
:pep:`206` considers the module as:
|
||||||
|
@ -341,8 +321,7 @@ related to executing code are:
|
||||||
- ``parse_header`` with ``email.message.Message`` (see example below)
|
- ``parse_header`` with ``email.message.Message`` (see example below)
|
||||||
- ``parse_multipart`` with ``email.message.Message`` (same MIME RFCs)
|
- ``parse_multipart`` with ``email.message.Message`` (same MIME RFCs)
|
||||||
- ``FieldStorage``/``MiniFieldStorage`` has no direct replacement, but can
|
- ``FieldStorage``/``MiniFieldStorage`` has no direct replacement, but can
|
||||||
typically be replaced by using `multipart
|
typically be replaced by using :pypi:`multipart` (for ``POST`` and ``PUT``
|
||||||
<https://pypi.org/project/multipart/>`_ (for ``POST`` and ``PUT``
|
|
||||||
requests) or ``urllib.parse.parse_qsl`` (for ``GET`` and ``HEAD``
|
requests) or ``urllib.parse.parse_qsl`` (for ``GET`` and ``HEAD``
|
||||||
requests)
|
requests)
|
||||||
- ``valid_boundary`` (undocumented) with ``re.compile("^[ -~]{0,200}[!-~]$")``
|
- ``valid_boundary`` (undocumented) with ``re.compile("^[ -~]{0,200}[!-~]$")``
|
||||||
|
@ -367,7 +346,7 @@ As an explicit example of how close ``parse_header`` and
|
||||||
cgitb
|
cgitb
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
The `cgitb <https://docs.python.org/3/library/cgitb.html>`_ module is a
|
The :external+py3.12:mod:`cgitb` module is a
|
||||||
helper for the ``cgi`` module for configurable tracebacks.
|
helper for the ``cgi`` module for configurable tracebacks.
|
||||||
|
|
||||||
The ``cgitb`` module is not used by any major Python web framework (Django,
|
The ``cgitb`` module is not used by any major Python web framework (Django,
|
||||||
|
@ -378,7 +357,7 @@ optional debugging middleware.
|
||||||
smtpd
|
smtpd
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
The `smtpd <https://docs.python.org/3/library/smtpd.html>`_ module provides
|
The :external+py3.11:mod:`smtpd` module provides
|
||||||
a simple implementation of a SMTP mail server. The module documentation
|
a simple implementation of a SMTP mail server. The module documentation
|
||||||
marks the module as deprecated and recommends ``aiosmtpd`` instead. The
|
marks the module as deprecated and recommends ``aiosmtpd`` instead. The
|
||||||
deprecation message was added in releases 3.4.7, 3.5.4, and 3.6.1.
|
deprecation message was added in releases 3.4.7, 3.5.4, and 3.6.1.
|
||||||
|
@ -387,12 +366,12 @@ deprecation message was added in releases 3.4.7, 3.5.4, and 3.6.1.
|
||||||
nntplib
|
nntplib
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
The `nntplib <https://docs.python.org/3/library/nntplib.html>`_ module
|
The :external+py3.12:mod:`nntplib` module
|
||||||
implements the client side of the Network News Transfer Protocol (nntp). News
|
implements the client side of the Network News Transfer Protocol (nntp). News
|
||||||
groups used to be a dominant platform for online discussions. Over the last
|
groups used to be a dominant platform for online discussions. Over the last
|
||||||
two decades, news has been slowly but steadily replaced with mailing lists
|
two decades, news has been slowly but steadily replaced with mailing lists
|
||||||
and web-based discussion platforms. Twisted is also
|
and web-based discussion platforms. Twisted is also
|
||||||
`planning <https://twistedmatrix.com/trac/ticket/9405>`_ to deprecate NNTP
|
`planning <https://github.com/twisted/twisted/issues/9405>`_ to deprecate NNTP
|
||||||
support and `pynntp <https://github.com/greenbender/pynntp>`_ hasn't seen any
|
support and `pynntp <https://github.com/greenbender/pynntp>`_ hasn't seen any
|
||||||
activity since 2014. This is a good indicator that the public interest in
|
activity since 2014. This is a good indicator that the public interest in
|
||||||
NNTP support is declining.
|
NNTP support is declining.
|
||||||
|
@ -407,7 +386,7 @@ buildbots.
|
||||||
telnetlib
|
telnetlib
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
The `telnetlib <https://docs.python.org/3/library/telnetlib.html>`_ module
|
The :external+py3.12:mod:`telnetlib` module
|
||||||
provides a Telnet class that implements the Telnet protocol.
|
provides a Telnet class that implements the Telnet protocol.
|
||||||
|
|
||||||
|
|
||||||
|
@ -417,7 +396,7 @@ Operating system interface
|
||||||
crypt
|
crypt
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
The `crypt <https://docs.python.org/3/library/crypt.html>`_ module implements
|
The :external+py3.12:mod:`crypt` module implements
|
||||||
password hashing based on the ``crypt(3)`` function from ``libcrypt`` or
|
password hashing based on the ``crypt(3)`` function from ``libcrypt`` or
|
||||||
``libxcrypt`` on Unix-like platforms. The algorithms are mostly old, of poor
|
``libxcrypt`` on Unix-like platforms. The algorithms are mostly old, of poor
|
||||||
quality and insecure. Users are discouraged from using them.
|
quality and insecure. Users are discouraged from using them.
|
||||||
|
@ -441,7 +420,7 @@ quality and insecure. Users are discouraged from using them.
|
||||||
nis
|
nis
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
The `nis <https://docs.python.org/3/library/nis.html>`_ module provides
|
The :external+py3.12:mod:`nis` module provides
|
||||||
NIS/YP support. Network Information Service / Yellow Pages is an old and
|
NIS/YP support. Network Information Service / Yellow Pages is an old and
|
||||||
deprecated directory service protocol developed by Sun Microsystems. Its
|
deprecated directory service protocol developed by Sun Microsystems. Its
|
||||||
designed successor NIS+ from 1992 never took off. For a long time, libc's
|
designed successor NIS+ from 1992 never took off. For a long time, libc's
|
||||||
|
@ -452,7 +431,7 @@ and more secure replacement for NIS.
|
||||||
spwd
|
spwd
|
||||||
~~~~
|
~~~~
|
||||||
|
|
||||||
The `spwd <https://docs.python.org/3/library/spwd.html>`_ module provides
|
The :external+py3.12:mod:`spwd` module provides
|
||||||
direct access to Unix shadow password database using non-standard APIs.
|
direct access to Unix shadow password database using non-standard APIs.
|
||||||
|
|
||||||
In general, it's a bad idea to use ``spwd``. It circumvents system
|
In general, it's a bad idea to use ``spwd``. It circumvents system
|
||||||
|
@ -462,7 +441,7 @@ module for access control must be considered a *security bug*, as it bypasses
|
||||||
PAM's access control.
|
PAM's access control.
|
||||||
|
|
||||||
Furthermore, the ``spwd`` module uses the
|
Furthermore, the ``spwd`` module uses the
|
||||||
`shadow(3) <http://man7.org/linux/man-pages/man3/shadow.3.html>`_ APIs.
|
`shadow(3) <https://man7.org/linux/man-pages/man3/shadow.3.html>`_ APIs.
|
||||||
Functions like ``getspnam(3)`` access the ``/etc/shadow`` file directly. This
|
Functions like ``getspnam(3)`` access the ``/etc/shadow`` file directly. This
|
||||||
is dangerous and even forbidden for confined services on systems with a
|
is dangerous and even forbidden for confined services on systems with a
|
||||||
security engine like SELinux or AppArmor.
|
security engine like SELinux or AppArmor.
|
||||||
|
@ -474,7 +453,7 @@ Misc modules
|
||||||
mailcap
|
mailcap
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
The `mailcap <https://docs.python.org/3/library/mailcap.html>`__ package
|
The :external+py3.12:mod:`mailcap` package
|
||||||
reads *mail capability* files to assist in handling a file attachment in
|
reads *mail capability* files to assist in handling a file attachment in
|
||||||
an email. In most modern operating systems the email client itself handles reacting to
|
an email. In most modern operating systems the email client itself handles reacting to
|
||||||
file attachments. Operating systems also have their own way to register
|
file attachments. Operating systems also have their own way to register
|
||||||
|
@ -486,7 +465,7 @@ against it while having no maintainer to help fix it.
|
||||||
msilib
|
msilib
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
The `msilib <https://docs.python.org/3/library/msilib.html>`_ package is a
|
The :external+py3.12:mod:`msilib` package is a
|
||||||
Windows-only package. It supports the creation of Microsoft Installers (MSI).
|
Windows-only package. It supports the creation of Microsoft Installers (MSI).
|
||||||
The package also exposes additional APIs to create cabinet files (CAB). The
|
The package also exposes additional APIs to create cabinet files (CAB). The
|
||||||
module is used to facilitate distutils to create MSI installers with the
|
module is used to facilitate distutils to create MSI installers with the
|
||||||
|
@ -500,10 +479,10 @@ as a new deployment model [3]_.
|
||||||
pipes
|
pipes
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
The `pipes <https://docs.python.org/3/library/pipes.html>`_ module provides
|
The :external+py3.12:mod:`pipes` module provides
|
||||||
helpers to pipe the input of one command into the output of another command.
|
helpers to pipe the input of one command into the output of another command.
|
||||||
The module is built on top of ``os.popen``. Users are encouraged to use
|
The module is built on top of ``os.popen``. Users are encouraged to use
|
||||||
the ``subprocess`` module instead.
|
the :mod:`subprocess` module instead.
|
||||||
|
|
||||||
|
|
||||||
Modules to keep
|
Modules to keep
|
||||||
|
@ -525,7 +504,7 @@ listed as such in this PEP.
|
||||||
colorsys
|
colorsys
|
||||||
--------
|
--------
|
||||||
|
|
||||||
The `colorsys <https://docs.python.org/3/library/colorsys.html>`_ module
|
The :external+py3.12:mod:`colorsys` module
|
||||||
defines color conversion functions between RGB, YIQ, HSL, and HSV coordinate
|
defines color conversion functions between RGB, YIQ, HSL, and HSV coordinate
|
||||||
systems.
|
systems.
|
||||||
|
|
||||||
|
@ -542,7 +521,7 @@ between color systems.
|
||||||
fileinput
|
fileinput
|
||||||
---------
|
---------
|
||||||
|
|
||||||
The `fileinput <https://docs.python.org/3/library/fileinput.html>`_ module
|
The :external+py3.12:mod:`fileinput` module
|
||||||
implements helpers to iterate over a list of files from ``sys.argv``. The
|
implements helpers to iterate over a list of files from ``sys.argv``. The
|
||||||
module predates the ``optparse`` and ``argparse`` modules. The same functionality
|
module predates the ``optparse`` and ``argparse`` modules. The same functionality
|
||||||
can be implemented with the ``argparse`` module.
|
can be implemented with the ``argparse`` module.
|
||||||
|
@ -554,7 +533,7 @@ standard library, as it is handy for quick scripts.
|
||||||
getopt
|
getopt
|
||||||
------
|
------
|
||||||
|
|
||||||
The `getopt <https://docs.python.org/3/library/getopt.html>`_ module mimics
|
The :external+py3.12:mod:`getopt` module mimics
|
||||||
C's ``getopt()`` option parser.
|
C's ``getopt()`` option parser.
|
||||||
|
|
||||||
Although users are encouraged to use ``argparse`` instead, the ``getopt`` module is
|
Although users are encouraged to use ``argparse`` instead, the ``getopt`` module is
|
||||||
|
@ -565,7 +544,7 @@ to write simple Python scripts.
|
||||||
optparse
|
optparse
|
||||||
--------
|
--------
|
||||||
|
|
||||||
The `optparse <https://docs.python.org/3/library/optparse.html>`_ module is
|
The :external+py3.12:mod:`optparse` module is
|
||||||
the predecessor of the ``argparse`` module.
|
the predecessor of the ``argparse`` module.
|
||||||
|
|
||||||
Although it has been deprecated for many years, it's still too widely used
|
Although it has been deprecated for many years, it's still too widely used
|
||||||
|
@ -575,7 +554,7 @@ to remove it.
|
||||||
wave
|
wave
|
||||||
----
|
----
|
||||||
|
|
||||||
The `wave <https://docs.python.org/3/library/wave.html>`_ module provides
|
The :external+py3.12:mod:`wave` module provides
|
||||||
support for the WAV sound format.
|
support for the WAV sound format.
|
||||||
|
|
||||||
The module is not deprecated, because the WAV format is still relevant these
|
The module is not deprecated, because the WAV format is still relevant these
|
||||||
|
@ -674,11 +653,11 @@ Update 4
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
|
|
||||||
.. [1] https://en.wikipedia.org/wiki/Open_Sound_System#Free,_proprietary,_free
|
.. [1] https://en.wikipedia.org/wiki/Open_Sound_System#History
|
||||||
.. [2] https://man.openbsd.org/ossaudio
|
.. [2] https://man.openbsd.org/ossaudio
|
||||||
.. [3] https://blogs.msmvps.com/installsite/blog/2015/05/03/the-future-of-windows-installer-msi-in-the-light-of-windows-10-and-the-universal-windows-platform/
|
.. [3] https://web.archive.org/web/20221206204209/https://blogs.msmvps.com/installsite/blog/2015/05/03/the-future-of-windows-installer-msi-in-the-light-of-windows-10-and-the-universal-windows-platform/
|
||||||
.. [4] https://twitter.com/ChristianHeimes/status/1130257799475335169
|
.. [4] https://twitter.com/ChristianHeimes/status/1130257799475335169
|
||||||
.. [5] https://twitter.com/dabeaz/status/1130278844479545351
|
.. [5] https://web.archive.org/web/20220420154535/https://twitter.com/dabeaz/status/1130278844479545351
|
||||||
.. [6] https://mail.python.org/pipermail/python-dev/2019-May/157634.html
|
.. [6] https://mail.python.org/pipermail/python-dev/2019-May/157634.html
|
||||||
|
|
||||||
|
|
||||||
|
@ -687,14 +666,3 @@ Copyright
|
||||||
|
|
||||||
This document is placed in the public domain or under the
|
This document is placed in the public domain or under the
|
||||||
CC0-1.0-Universal license, whichever is more permissive.
|
CC0-1.0-Universal license, whichever is more permissive.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
..
|
|
||||||
Local Variables:
|
|
||||||
mode: indented-text
|
|
||||||
indent-tabs-mode: nil
|
|
||||||
sentence-end-double-space: t
|
|
||||||
fill-column: 70
|
|
||||||
coding: utf-8
|
|
||||||
End:
|
|
||||||
|
|
Loading…
Reference in New Issue