@@ -267,7 +267,7 @@ The `ossaudiodev <https://docs.python.org/3/library/ossaudiodev.html>`_
267
267
module provides support for Open Sound System, an interface to sound
268
268
playback and capture devices. OSS was initially free software, but later
269
269
support for newer sound devices and improvements were proprietary. Linux
270
- community abandoned OSS in favor of ALSA [1 ]_. Some operation systems like
270
+ community abandoned OSS in favor of ALSA [1 ]_. Some operating systems like
271
271
OpenBSD and NetBSD provide an incomplete [2 ]_ emulation of OSS.
272
272
273
273
To best of my knowledge, FreeBSD is the only widespread operating system
@@ -278,7 +278,7 @@ for both FreeBSD community and core development, if the module would be
278
278
maintained and distributed by people that care for it and use it.
279
279
280
280
The standard library used to have more audio-related modules. The other
281
- audio device interface (``audiodev ``, ``linuxaudiodev ``, ``sunaudiodev ``)
281
+ audio device interfaces (``audiodev ``, ``linuxaudiodev ``, ``sunaudiodev ``)
282
282
were removed in 2007 as part of the :pep: `3108 ` stdlib re-organization.
283
283
284
284
@@ -396,8 +396,8 @@ activity since 2014. This is a good indicator that the public interest in
396
396
NNTP support is declining.
397
397
398
398
The ``nntplib `` tests have been the cause of additional work in the recent
399
- past. Python only contains client side of NNTP. The tests connect to
400
- external news server . The servers are sometimes unavailable, too slow, or do
399
+ past. Python only contains the client side of NNTP, so the tests connect to
400
+ external news servers . The servers are sometimes unavailable, too slow, or do
401
401
not work correctly over IPv6. The situation causes flaky test runs on
402
402
buildbots.
403
403
@@ -418,7 +418,7 @@ crypt
418
418
The `crypt <https://docs.python.org/3/library/crypt.html >`_ module implements
419
419
password hashing based on the ``crypt(3) `` function from ``libcrypt `` or
420
420
``libxcrypt `` on Unix-like platforms. The algorithms are mostly old, of poor
421
- quality and insecure. Users are discouraged to use them.
421
+ quality and insecure. Users are discouraged from using them.
422
422
423
423
* The module is not available on Windows. Cross-platform applications need
424
424
an alternative implementation anyway.
@@ -433,18 +433,18 @@ quality and insecure. Users are discouraged to use them.
433
433
* The module was never useful to interact with system user and password
434
434
databases. On BSD, macOS, and Linux, all user authentication and
435
435
password modification operations must go through PAM (pluggable
436
- authentication module), see `spwd `_ deprecation.
436
+ authentication module); see the `spwd `_ deprecation.
437
437
438
438
439
439
nis
440
440
~~~
441
441
442
442
The `nis <https://docs.python.org/3/library/nis.html >`_ module provides
443
443
NIS/YP support. Network Information Service / Yellow Pages is an old and
444
- deprecated directory service protocol developed by Sun Microsystems. It's
444
+ deprecated directory service protocol developed by Sun Microsystems. Its
445
445
designed successor NIS+ from 1992 never took off. For a long time, libc's
446
- Name Service Switch, LDAP, and Kerberos/GSSAPI are considered a more powerful
447
- and more secure replacement of NIS.
446
+ Name Service Switch, LDAP, and Kerberos/GSSAPI have been considered a more powerful
447
+ and more secure replacement for NIS.
448
448
449
449
450
450
spwd
@@ -453,13 +453,13 @@ spwd
453
453
The `spwd <https://docs.python.org/3/library/spwd.html >`_ module provides
454
454
direct access to Unix shadow password database using non-standard APIs.
455
455
456
- In general it's a bad idea to use spwd. It circumvents system
456
+ In general, it's a bad idea to use `` spwd `` . It circumvents system
457
457
security policies, does not use the PAM stack, and is only compatible
458
458
with local user accounts, because it ignores NSS. The use of the ``spwd ``
459
459
module for access control must be considered a *security bug *, as it bypasses
460
460
PAM's access control.
461
461
462
- Further more the ``spwd `` module uses the
462
+ Furthermore, the ``spwd `` module uses the
463
463
`shadow(3) <http://man7.org/linux/man-pages/man3/shadow.3.html >`_ APIs.
464
464
Functions like ``getspnam(3) `` access the ``/etc/shadow `` file directly. This
465
465
is dangerous and even forbidden for confined services on systems with a
@@ -481,7 +481,7 @@ module is used to facilitate distutils to create MSI installers with the
481
481
Windows installer, too.
482
482
483
483
Microsoft is slowly moving away from MSI in favor of Windows 10 Apps (AppX)
484
- as new deployment model [3 ]_.
484
+ as a new deployment model [3 ]_.
485
485
486
486
487
487
pipes
@@ -490,13 +490,14 @@ pipes
490
490
The `pipes <https://docs.python.org/3/library/pipes.html >`_ module provides
491
491
helpers to pipe the input of one command into the output of another command.
492
492
The module is built on top of ``os.popen ``. Users are encouraged to use
493
- the subprocess module instead.
493
+ the `` subprocess `` module instead.
494
494
495
495
496
496
Modules to keep
497
497
===============
498
498
499
- Some modules were originally proposed for deprecation.
499
+ Some modules were originally proposed for deprecation but are no longer
500
+ listed as such in this PEP.
500
501
501
502
.. csv-table :: Table 2: Withdrawn deprecations
502
503
:header: "Module", "Deprecated in", "Replacement"
@@ -530,8 +531,8 @@ fileinput
530
531
531
532
The `fileinput <https://docs.python.org/3/library/fileinput.html >`_ module
532
533
implements helpers to iterate over a list of files from ``sys.argv ``. The
533
- module predates the ``optparser `` and ``argparser `` modules. The same functionality
534
- can be implemented with the ``argparser `` module.
534
+ module predates the ``optparse `` and ``argparse `` modules. The same functionality
535
+ can be implemented with the ``argparse `` module.
535
536
536
537
Several core developers expressed their interest to keep the module in the
537
538
standard library, as it is handy for quick scripts.
@@ -580,7 +581,7 @@ Discussions
580
581
===========
581
582
582
583
* Elana Hashman and Nick Coghlan suggested to keep the ``getopt `` module.
583
- * Berker Peksag proposed to deprecate and removed ``msilib ``.
584
+ * Berker Peksag proposed to deprecate and remove ``msilib ``.
584
585
* Brett Cannon recommended to delay active deprecation warnings and removal
585
586
of modules like ``imp `` until Python 3.10. Version 3.8 will be released
586
587
shortly before Python 2 reaches end-of-life. A delay reduced churn for
@@ -597,7 +598,7 @@ Discussions
597
598
stdlib doesn't have a replacement for the servers, yet.
598
599
599
600
600
- Rejected Ideas
601
+ Rejected ideas
601
602
==============
602
603
603
604
Creating/maintaining a separate repo for the deprecated modules
@@ -619,7 +620,7 @@ Update history
619
620
Update 1
620
621
--------
621
622
622
- * Deprecate parser module
623
+ * Deprecate `` parser `` module
623
624
* Keep `fileinput `_ module
624
625
* Elaborate why ``crypt `` and ``spwd `` are dangerous and bad
625
626
* Improve sections for `cgitb `_, `colorsys `_, `nntplib `_, and `smtpd `_ modules
@@ -637,18 +638,20 @@ Update 2
637
638
* Add experts
638
639
* Redirect discussions to discuss.python.org
639
640
* Deprecate `telnetlib `_
640
- * Deprecate compat32 policy of email package
641
+ * Deprecate compat32 policy of `` email `` package
641
642
* Add creation year to overview table
642
643
* Mention :pep: `206 ` and :pep: `3108 `
643
644
* Update sections for ``aifc ``, ``audioop ``, ``cgi ``, and ``wave ``.
644
645
645
646
Update 3
646
647
--------
648
+
647
649
* Keep the legacy email API modules. Internal deprecations will be
648
650
handled separately.
649
651
650
652
Update 4
651
653
--------
654
+
652
655
* Add Brett as a co-author.
653
656
* Retarget the PEP for Python 3.11.
654
657
* Examples of how to replace the relevant parts of ``cgi ``
0 commit comments