Make some changes at Guido's suggestion.
This commit is contained in:
parent
68fc50a4cd
commit
7eb4f5ec81
150
pep-3108.txt
150
pep-3108.txt
|
@ -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
|
||||
-----------------------------------
|
||||
|
|
Loading…
Reference in New Issue