From 7eb4f5ec81ce1dddba8ccb9f38f16b2813ad29cf Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sat, 26 Apr 2008 04:05:53 +0000 Subject: [PATCH] Make some changes at Guido's suggestion. --- pep-3108.txt | 150 +++++++++++++++++++++++++-------------------------- 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/pep-3108.txt b/pep-3108.txt index 0c36c3b0a..01676a077 100644 --- a/pep-3108.txt +++ b/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 -----------------------------------