Make some changes at Guido's suggestion.

This commit is contained in:
Brett Cannon 2008-04-26 04:05:53 +00:00
parent 68fc50a4cd
commit 7eb4f5ec81
1 changed files with 75 additions and 75 deletions

View File

@ -8,7 +8,7 @@ Type: Standards Track
Content-Type: text/x-rst
Created: 01-Jan-2007
Python-Version: 3.0
Post-History:
Post-History:
Abstract
@ -55,14 +55,12 @@ The procedure to thoroughly remove a module is:
#. Remove the module.
#. Remove the tests.
#. Edit ``Modules/Setup.dist`` and ``setup.py`` if needed.
#. Change all references to the removed module in the standard
library.
#. Remove the docs.
#. Delete the reference to the removed docs in ``Doc/Makefile.deps``
and ``Doc/lib/lib.tex``.
#. If possible, build the docs. (cd Doc ; make)
#. Run the regression test suite; watch out for tests that are skipped
because an import failed for the removed module.
#. Change all imports of the removed module in the standard
library to the new name (if applicable).
#. Remove the docs (if applicable).
#. Run the regression test suite (using ``-uall``); watch out for
tests that are skipped because an import failed for the removed
module.
If a deprecation warning is added to 2.6, it would be better to make
all the changes to 2.6, merge the changes into the 3k branch, then
@ -85,8 +83,9 @@ Previously deprecated
---------------------
PEP 4 lists all modules that have been deprecated in the stdlib
[#pep-0004]_. All modules listed in the PEP at the time of the first
alpha release of Python 3.0 will be removed.
(including motivation as to why) [#pep-0004]_. All modules listed
in the PEP at the time of the first alpha release of Python 3.0 will
be removed.
The entire contents of lib-old will also be removed. These modules
have already been removed from being imported but are kept in the
@ -128,61 +127,65 @@ to people on those platforms. Because of their limited usefulness it
would be better to no longer burden the Python development team with
their maintenance.
The module mentioned below are documented. All undocumented modules
for the specified platforms will also be removed.
* IRIX (which is no longer produced [#irix-retirement]_)
+ AL/al [done]
+ AL/al [done: 3.0]
- Provides sound support on Indy and Indigo workstations.
- Both workstations are no longer available.
- Code has not been uniquely edited in three years.
+ cd [done]
+ cd [done: 3.0]
- CD drive control for SGI systems.
- SGI no longer sells machines with IRIX on them.
- Code has not been uniquely edited in 14 years.
+ cl [done]
+ cl/CL [done: 3.0]
- Compression library for SGI systems.
- SGI no longer sells machines with IRIX on them.
- Code has not been uniquely edited in 14 years.
+ DEVICE/GL/gl/cgen/cgensuport [done]
+ DEVICE/GL/gl/cgen/cgensuport [done: 3.0]
- OpenGL access.
- GL access, which is the predecessor to OpenGL.
- Has not been edited in at least eight years.
- Third-party libraries provide better support (PyOpenGL [#pyopengl]_).
+ FL/fl/flp [done]
+ FL/fl/flp [done: 3.0]
- Wrapper for the FORMS library [#irix-forms]_
- FORMS has not been edited in 12 years.
- Library is not widely used.
- First eight hits on Google are for Python docs for fl.
+ fm [done]
+ fm [done: 3.0]
- Wrapper to the IRIS Font Manager library.
- Only available on SGI machines which no longer come with IRIX.
+ imgfile [done]
+ imgfile [done: 3.0]
- Wrapper for SGI libimage library for imglib image files
(``.rgb`` files).
- Python Imaging Library provdes read-only support [#pil]_.
- Not uniquely edited in 13 years.
+ jpeg [done]
+ jpeg [done: 3.0]
- Wrapper for JPEG (de)compressor.
- Code not uniquely edited in nine years.
- Third-party libraries provide better support
(Python Imaging Library [#pil]_).
* Solaris
+ SUNAUDIODEV/sunaudiodev [done]
+ SUNAUDIODEV/sunaudiodev [done: 3.0]
- Access to the sound card on Sun machines.
- Code not uniquely edited in over eight years.
@ -195,7 +198,7 @@ Some modules that are platform-independent are hardly used. This
can be from how easy it is to implement the functionality from scratch
or because the audience for the code is very small.
* audiodev [done]
* audiodev [done: 3.0]
+ Undocumented.
+ Not edited in five years.
@ -215,13 +218,8 @@ or because the audience for the code is very small.
+ Only useful with the 'sched' module.
+ Not thread-safe.
* repr
+ Controls output of the repr of objects.
+ String slicing and string interpolation can do similar work.
+ Used by pdb, but do not need to expose API.
* stringold [done]
* stringold [done: 3.0]
+ Function versions of the methods on string objects.
+ Obsolete since Python 1.6.
@ -232,7 +230,7 @@ or because the audience for the code is very small.
+ Undocumented.
* toaiff [done, moved to Demo]
* toaiff [done: 3.0, moved to Demo]
+ Undocumented.
+ Requires ``sox`` library to be installed on the system.
@ -242,19 +240,19 @@ or because the audience for the code is very small.
+ Easily handled by allowing the application specify its own
module name, check for existence, and import if found.
* new [done]
* new [done: 3.0]
+ Just a rebinding of names from the 'types' module.
+ Can also call ``type`` built-in to get most types easily.
+ Docstring states the module is no longer useful as of revision
27241 (2002-06-15).
* pure [done]
* pure [done: 3.0]
+ Written before Pure Atria was bought by Rational which was then
bought by IBM (in other words, very old).
* test.testall [done]
* test.testall [done: 3.0]
+ From the days before regrtest.
@ -266,36 +264,37 @@ Becoming obsolete signifies that either another module in the stdlib
or a widely distributed third-party library provides a better solution
for what the module is meant for.
* Bastion/rexec [done]
* Bastion/rexec [done: 3.0]
+ Restricted execution / security.
+ Turned off in Python 2.3.
+ Modules deemed unsafe.
* bsddb185 [done]
* bsddb185 [done: 3.0]
+ Superceded by bsddb3
+ Not built by default.
+ Documentation specifies that the "module should never be used
directly in new code".
* commands [only getstatus(), does whole module go?]/popen2 [done]
* commands
+ subprocess module replaces them [#pep-0324]_.
+ subprocess module replaces it [#pep-0324]_.
+ Remove getstatus(), move rest to subprocess.
* compiler (need to add AST -> bytecode mechanism) [done - removal]
* compiler (need to add AST -> bytecode mechanism) [done: 3.0]
+ Having to maintain both the built-in compiler and the stdlib
package is redundant [#ast-removal]_.
+ The AST created by the compiler is available [#ast]_.
+ Mechanism to compile from an AST needs to be added.
* dircache
+ Negligible use.
+ Easily replicated.
* dl [done]
* dl [done: 3.0]
+ ctypes provides better support for same functionality.
@ -312,29 +311,37 @@ for what the module is meant for.
+ Undocumented.
+ For use with rexec which has been turned off since Python 2.3.
* imageop [done]
* imageop [done: 3.0]
+ Better support by third-party libraries
(Python Imaging Library [#pil]_).
+ Unit tests relied on rgbimg and imgfile.
- rgbimg was removed in Python 2.6.
- imgfile slated for removal in this PEP. [done]
- imgfile slated for removal in this PEP. [done: 3.0]
* linecache
+ Negligible use.
+ Easily replicated.
* linuxaudiodev [done]
* linuxaudiodev [done: 3.0]
+ Replaced by ossaudiodev.
* mhlib
+ Obsolete mailbox format.
* popen2 [done: 3.0]
+ subprocess module replaces them [#pep-0324]_.
* sched
+ Replaced by threading.Timer.
* smgllib
* sgmllib
+ Does not fully parse SGML.
+ In the stdlib for support to htmllib which is slated for removal.
@ -359,22 +366,22 @@ for what the module is meant for.
+ Guido has previously supported the deprecation
[#thread-deprecation]_.
* urllib
+ Superceded by urllib2.
+ Functionality unique to urllib will be kept in the `url package`_.
* UserDict [done]
* UserDict [done: 3.0]
+ Not as useful since types can be a superclass.
+ Useful bits moved to the 'collections' module.
* UserList/UserString [done]
* UserList/UserString [done: 3.0]
+ Not useful since types can be a superclass.
Mac-specific modules
////////////////////
@ -550,7 +557,7 @@ Issues`_ for a discussion on this.
+ Rename cProfile to _profile.
+ Semantic completeness of C implementation *not* verified.
* StringIO/cStringIO [done]
* StringIO/cStringIO [done: 3.0]
+ Add the class to the 'io' module.
@ -566,9 +573,7 @@ should be renamed to reflect this fact.
============ ===============================
Current Name Replacement Name
============ ===============================
bdb _bdb
markupbase _markupbase [done]
opcode _opcode
markupbase _markupbase [done: 3.0]
dummy_thread _dummy_thread [#]_
============ ===============================
@ -585,6 +590,7 @@ beyond the 2.x series.
================= ===============================
Current Name Replacement Name
================= ===============================
repr reprlib
test.test_support test.support
================= ===============================
@ -614,7 +620,8 @@ whichdb dbm.tools [1]_
.. [1] ``dbm.tools`` can combine ``anybdbm`` and ``whichdb`` since the public
API for both modules has no name conflict.
API for both modules has no name conflict and the two modules have
closely related usage.
@ -674,11 +681,11 @@ turtle tk.turtle
.. [4] ``tk.filedialog`` can safely combine ``FileDialog`` and
``tkFileDialog`` as there are no naming conflicts.
.. [5] ``tk.simpledialog`` can safely combine ``SimpleDialog`` and
``tkSimpleDialog`` have no naming conflicts.
url package
///////////
@ -718,10 +725,8 @@ For modules to be removed
-------------------------
For the removal of modules that are continuing to exist in the Python
2.x series (i.e., not deprecated explicitly in the 2.x series), a
proper warning will be set that is silenced by default;
PendingDeprecationWarning initially, moving over to a Py3K-specific
warning later if one comes into existence.
2.x series (i.e., not deprecated explicitly in the 2.x series),
``warnings.warn3k()`` will be used to issue a DeprecationWarning.
Renaming of modules
@ -729,7 +734,7 @@ Renaming of modules
For modules that are renamed, stub modules will be created with the
original names and be kept in a directory within the stdlib (e.g. like
lib-old was once used for). The need to keep the stub modules within
how lib-old was once used). The need to keep the stub modules within
a directory is to prevent naming conflicts with case-insensitive
filesystems in those cases where nothing but the case of the module
is changing.
@ -759,26 +764,16 @@ made for the maintainer to change the name so that it matches PEP 8
and hides the C implementation.
Removal of Tkinter
------------------
With so many other GUI options out there that are considered better
than Tkinter, it might be best to remove Tkinter from the stdlib and
make it an externally maintained package. That would also allow for
Tkinter to more closely follow Tcl/Tk's release schedule instead of
Python's.
Rejected Ideas
==============
Modules that were originally suggested for removal
Modules that were originally suggested for removal
--------------------------------------------------
* asynchat/asyncore
+ Josiah Carlson has said he will maintain the modules.
* audioop/sunau/aifc
+ Audio modules where the formats are still used.
@ -808,6 +803,11 @@ Modules that were originally suggested for removal
+ Some hardware supports using telnet for configuration and
querying.
* Tkinter
+ Would prevent IDLE from existing.
+ No GUI toolkit would be available out of the box.
Introducing a new top-level package
-----------------------------------