Author: david.goodger
Date: Tue Jan 2 07:53:47 2007
New Revision: 53208
Modified:
peps/trunk/pep-3108.txt
Log:
simplified lists (flat is better than nested); some minor edits
Modified: peps/trunk/pep-3108.txt
==============================================================================
--- peps/trunk/pep-3108.txt (original)
+++ peps/trunk/pep-3108.txt Tue Jan 2 07:53:47 2007
@@ -20,11 +20,11 @@
an introduction of a naming convention for modules since Python's
inception that not all modules follow.
-With Python 3.0 a chance to remove modules that do not have long term
-usefulness has presented itself. This chance also allows for the
-renaming of modules so that they follow the Python style guide
-[#pep-0008]_. This PEP lists modules that should not be included in
-Python 3.0 and what modules need to be renamed.
+Python 3.0 has presented a chance to remove modules that do not have
+long term usefulness. This chance also allows for the renaming of
+modules so that they follow the Python style guide [#pep-0008]_. This
+PEP lists modules that should not be included in Python 3.0 and what
+modules need to be renamed.
Modules to Remove
@@ -58,34 +58,25 @@
Python 2.x release series but are currently still distributed with
Python. Deprecation information is gathered either from PEP 4 or the
Global Module Index [#pep-0004]_, [#module-index]_. Each module is
-listed with the Python version that the deprecation started in.
+listed with the Python version of initial deprecation.
-* buildtools
- 2.3
-* cfmfile
- 2.4
-* gopherlib
- 2.5
-* macfs
- 2.3
-* md5
- 2.5
-* mimetools
- 2.3
-* MimeWriter
- 2.3
-* mimefy
- 2.3
-* multifile
- 2.3
-* posixfile
- 1.5
-* rfc822
- 2.3
-* rgbimg
- 2.5
-* sha
- 2.5
+============== ==========
+Module Deprecated
+============== ==========
+buildtools 2.3
+cfmfile 2.4
+gopherlib 2.5
+macfs 2.3
+md5 2.5
+mimetools 2.3
+MimeWriter 2.3
+mimefy 2.3
+multifile 2.3
+posixfile 1.5
+rfc822 2.3
+rgbimg 2.5
+sha 2.5
+============== ==========
Platform-specific with minimal use
@@ -98,56 +89,79 @@
their maintenance.
* IRIX (which is no longer produced [#irix-retirement]_)
- + AL/al
- - Provides sound support on Indy and Indigo workstations.
- * Both workstations are no longer available.
- - Code has not been uniquely edited in three years.
- + cd
- - CD drive control 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
- - OpenGL access.
- - Has not been edited in at least eight years.
- - Third-party libraries provide better support.
- * PyOpenGL [#pyopengl]_
- + FL/fl/flp
- - 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
- - Wrapper to the IRIS Font Manager library.
- * Only available on SGI machines which no longer come with
- IRIX.
- + imgfile
- - 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
- - Wrapper for JPEG (de)compressor.
- - Code not uniquely edited in nine years.
- - Third-party libraries provide better support.
- * Python Imaging Library [#pil]_
- + sv
- - Wrapper for Indigo video card.
- * Harware is no longer manufactured.
- - Undocumented.
- - Code not uniquely edited in 13 years.
+
+ + AL/al
+
+ - Provides sound support on Indy and Indigo workstations.
+ - Both workstations are no longer available.
+ - Code has not been uniquely edited in three years.
+
+ + cd
+
+ - CD drive control 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
+
+ - OpenGL access.
+ - Has not been edited in at least eight years.
+ - Third-party libraries provide better support (PyOpenGL [#pyopengl]_).
+
+ + FL/fl/flp
+
+ - 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
+
+ - Wrapper to the IRIS Font Manager library.
+ - Only available on SGI machines which no longer come with IRIX.
+
+ + imgfile
+
+ - 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
+
+ - Wrapper for JPEG (de)compressor.
+ - Code not uniquely edited in nine years.
+ - Third-party libraries provide better support
+ (Python Imaging Library [#pil]_).
+
+ + sv
+
+ - Wrapper for Indigo video card.
+ - Harware is no longer manufactured.
+ - Undocumented.
+ - Code not uniquely edited in 13 years.
+
* Solaris
- + SUNAUDIODEV/sunaudiodev
- - Access to the sound card on Sun machines.
- - Code not uniquely edited in over eight years.
+
+ + SUNAUDIODEV/sunaudiodev
+
+ - Access to the sound card on Sun machines.
+ - Code not uniquely edited in over eight years.
+
* Mac
- + applesingle
- - Undocumented.
- * AppleSingle is a binary file format for A/UX.
- + A/UX no longer distributed.
+
+ + applesingle
+
+ - Undocumented.
+ - AppleSingle is a binary file format for A/UX.
+ - A/UX no longer distributed.
+
* UNIX
- + nis
- - Wrapper for NIS.
- * NIS has been replaced by LDAP, DNS, and Kerberos.
+
+ + nis
+
+ - Wrapper for NIS.
+ - NIS has been replaced by LDAP, DNS, and Kerberos.
Minimal usage
@@ -158,47 +172,68 @@
or because the audience for the code is small.
* audiodev
- + Undocumented.
- + Not edited in five years.
- + If removed sunaudio should go as well.
- - Undocumented.
- - Not edited in over seven years.
+
+ + Undocumented.
+ + Not edited in five years.
+ + If removed sunaudio should go as well (also undocumented; not
+ edited in over seven years).
+
* fileinput
- + Basic functionality handled by ``itertools.chain``.
- + Using ``enumerate`` (for the line number in the file),
- ``itertools.repeat`` (for returning the filename with each
- line), and ``zip`` (for connecting the ``enumerate`` object and
- ``itertools.repeat`` object) provides 95% of other unique
- abilities of fileinput.
+
+ + Basic functionality handled by ``itertools.chain``.
+ + Using ``enumerate`` (for the line number in the file),
+ ``itertools.repeat`` (for returning the filename with each
+ line), and ``zip`` (for connecting the ``enumerate`` object and
+ ``itertools.repeat`` object) provides 95% of other unique
+ abilities of fileinput.
+
* imputil
- + Undocumented.
- + Never updated to support absolute imports.
+
+ + Undocumented.
+ + Never updated to support absolute imports.
+
* mutex
- + Easy to implement using a semaphore and a queue.
- + Cannot block on a lock attempt.
- + Not uniquely edited since its addition 15 years ago.
+
+ + Easy to implement using a semaphore and a queue.
+ + Cannot block on a lock attempt.
+ + Not uniquely edited since its addition 15 years ago.
+
* 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.
+
+ + 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.
+
* symtable/_symtable
- + Undocumented.
+
+ + Undocumented.
+
* telnetlib
- + Telnet is not used very much anymore.
- - Telnet is unsafe.
- - Most people use SSH instead.
+
+ + Telnet is not used very much anymore.
+ + Telnet is unsafe.
+ + Most people use SSH instead.
+
* toaiff
- + Undocumented.
- + Requires ``sox`` library to be installed on the system.
+
+ + Undocumented.
+ + Requires ``sox`` library to be installed on the system.
+
* user
- + Easily handled by allowing the application specify its own
- module name, check for existence, and import if found.
+
+ + Easily handled by allowing the application specify its own
+ module name, check for existence, and import if found.
+
* new
- + Just a rebinding of names from the 'types' module.
- + Can also call ``type`` built-in to get most types easily.
+
+ + Just a rebinding of names from the 'types' module.
+ + Can also call ``type`` built-in to get most types easily.
+
* pure
- + Written before Pure Atria was bought by Rational which was then
- bought by IBM (in other words, very old).
+
+ + Written before Pure Atria was bought by Rational which was then
+ bought by IBM (in other words, very old).
+
Obsolete
--------
@@ -208,49 +243,79 @@
for what the module is meant for.
* base64/quopri/uu
- + Support exists in the codecs module.
- + If removed (along with binhex), also remove binascii.
- - C implementation of base64, binhex, and uu modules.
+
+ + Support exists in the codecs module.
+ + If removed (along with binhex), also remove binascii
+ (C implementation of base64, binhex, and uu modules).
+
* asynchat/asyncore
- + Third-party libraries provide better solutions.
- - twisted [#twisted]_
- + Deprecation previously supported [#py-dev-summary-2004-11-01]_
+
+ + Third-party libraries provide better solutions
+ (twisted [#twisted]_).
+ + Deprecation previously supported [#py-dev-summary-2004-11-01]_
+
* Bastion/rexec
- + Restricted execution / security.
- + Turned off in Python 2.3.
- + Modules deemed unsafe.
+
+ + Restricted execution / security.
+ + Turned off in Python 2.3.
+ + Modules deemed unsafe.
+
* dl
- + ctypes provides better support for same functionality.
+
+ + ctypes provides better support for same functionality.
+
* fpformat
- + All functionality is supported by string interpolation.
+
+ + All functionality is supported by string interpolation.
+
* getopt
- + optparse provides better functionality.
+
+ + optparse provides better functionality.
+
* ihooks
- + Documented except for saying that module might be obsolete.
- + For use with rexec which has been turned off since Python 2.3.
+
+ + Documented except for saying that module might be obsolete.
+ + For use with rexec which has been turned off since Python 2.3.
+
* imageop
- + Better support by third-party libraries.
- - Python Imaging Library [#pil]_.
+
+ + Better support by third-party libraries
+ (Python Imaging Library [#pil]_).
+
* linuxaudiodev
- + Replaced by ossaudiodev.
+
+ + Replaced by ossaudiodev.
+
* stat
- + ``os.stat`` now returns a tuple with attributes.
+
+ + ``os.stat`` now returns a tuple with attributes.
+
* statvfs
- + ``os.statvfs`` now returns a tuple with attributes.
+
+ + ``os.statvfs`` now returns a tuple with attributes.
+
* strop
- + Implements functions used by 'string' module that have now
- become methods on the str type.
+
+ + Implements functions used by 'string' module that have now
+ become methods on the str type.
+
* thread
- + People should use 'threading' instead.
- - Rename 'thread' to _thread.
- - Deprecate dummy_thread.
- * Rename to _mockthread.
- * Change of name better reflects modules purpose.
- + Guido has previously supported the deprecation
- [#thread-deprecation]_.
+
+ + People should use 'threading' instead.
+
+ - Rename 'thread' to _thread.
+ - Deprecate dummy_thread.
+
+ * Rename to _mockthread.
+ * Change of name better reflects modules purpose.
+
+ + Guido has previously supported the deprecation
+ [#thread-deprecation]_.
+
* timing
- + Use timeit or time.
- + Documentation says the module is obsolete [#timing-module]_.
+
+ + Use timeit or time.
+ + Documentation says the module is obsolete [#timing-module]_.
Modules to Rename
@@ -275,71 +340,45 @@
they are contained within a package but that any uppercase letters is
not.
-* _winreg
- winreg (rename also because module has a public interface).
-* autoGIL
- autogil
-* BaseHTTPServer
- basehttpserver
-* Carbon
- carbon
-* CGIHTTPServer
- cgihttpserver
-* ColorPicker
- colorpicker
-* ConfigParser
- configparser
-* Cookie
- cookie
-* copy_reg
- copyreg
-* DocXMLRPCServer
- docxmlrpcserver
-* dummy_threading
- mockthreading (rename because "mock" makes more sense than
- "dummy" and rename already required).
-* EasyDialogs
- easydialogs
-* FrameWork
- framework
-* HTMLParser
- htmlparser
-* MacOS
- macos
-* MiniAEFrame
- miniaeframe
-* Nav
- nav
-* PixMapWrapper
- pixmapwrapper
-* py_compile
- pycompile
-* Queue
- queue
-* repr
- reprlib (rename because module name shadows a built-in).
-* ScrolledText
- scrolledtext
-* SimpleHTTPServer
- simplehttpserver
-* SimpleXMLRPCServer
- simplexmlrpcserver
-* SocketServer
- socketserver
-* StringIO
- stringio
-* Tix
- tix
-* Tkinter
- tkinter
-* UserDict
- userdict
-* UserList
- userlist
-* UserString
- userstring
-* W
- w
+================== ==================================================
+Current Name Replacement Name
+================== ==================================================
+_winreg winreg (rename also because module has a public
+ interface)
+autoGIL autogil
+BaseHTTPServer basehttpserver
+Carbon carbon
+CGIHTTPServer cgihttpserver
+ColorPicker colorpicker
+ConfigParser configparser
+Cookie cookie
+copy_reg copyreg
+DocXMLRPCServer docxmlrpcserver
+dummy_threading mockthreading (rename because "mock" makes more
+ sense than "dummy" and rename already required)
+EasyDialogs easydialogs
+FrameWork framework
+HTMLParser htmlparser
+MacOS macos
+MiniAEFrame miniaeframe
+Nav nav
+PixMapWrapper pixmapwrapper
+py_compile pycompile
+Queue queue
+repr reprlib (rename because module name shadows a
+ built-in)
+ScrolledText scrolledtext
+SimpleHTTPServer simplehttpserver
+SimpleXMLRPCServer simplexmlrpcserver
+SocketServer socketserver
+StringIO stringio
+Tix tix
+Tkinter tkinter
+UserDict userdict
+UserList userlist
+UserString userstring
+W w
+================== ==================================================
Merging C and Python implementations of the same interface
@@ -364,15 +403,20 @@
Issues`_ for a discussion on this.
* pickle/cPickle
- + Rename cPickle to _pickle.
- + Semantic completeness of C implementation *not* verified.
+
+ + Rename cPickle to _pickle.
+ + Semantic completeness of C implementation *not* verified.
+
* profile/cProfile
- + Rename cProfile to _profile.
- + Semantic completeness of C implementation *not* verified.
+
+ + Rename cProfile to _profile.
+ + Semantic completeness of C implementation *not* verified.
+
* StringIO/cStringIO
- + Rename StringIO to stringio.
- + Rename cStringIO to _stringio.
- + Semantic completeness of C implementation *not* verified.
+
+ + Rename StringIO to stringio.
+ + Rename cStringIO to _stringio.
+ + Semantic completeness of C implementation *not* verified.
No public, documented interface
@@ -383,14 +427,15 @@
are exposed. Because they are not meant to be used directly they
should be renamed to reflect this fact.
-* bdb
- _bdb
-* markupbase
- _markupbase
-* opcode
- _opcode
-* dummythread
- _mockthread (assuming the deprecation of 'thread' occurs).
+============ ===============================
+Current Name Replacement Name
+============ ===============================
+bdb _bdb
+markupbase _markupbase
+opcode _opcode
+dummythread _mockthread (assuming the
+ deprecation of 'thread' occurs)
+============ ===============================
Transition Plan
@@ -408,7 +453,7 @@
For modules to be renamed
-------------------------
-Modules will be renamed in Python 2.6 . The original names of the
+Modules will be renamed in Python 2.6. The original names of the
modules will still work but will raise a PendingDeprecationWarning
upon import. The refactoring tool for transitioning to Python 3.0
will refactor imports that use the new names.
@@ -432,9 +477,7 @@
obsolete.
* Cookie/cookielib
-* urllib/urllib2
- + urlparse?
- + httplib?
+* urllib/urllib2 (urlparse? httplib?)
* cgi/cgitb
* Tix/Tkinter
* getpass/pwd/spwd/grp
@@ -456,48 +499,61 @@
of various modules is already occurring.
* collections
- + heapq
- + Queue
- + sets
- + UserDist
- + UserList
- + What to do with UserString?
- - Have a package for Python implementations of built-in types
- instead of putting the User* modules into 'collections'?
+
+ + heapq
+ + Queue
+ + sets
+ + UserDist
+ + UserList
+ + What to do with UserString?
+ Have a package for Python implementations of built-in types
+ instead of putting the User* modules into 'collections'?
+
* mac
- + Various Mac-specific modules.
- + Same can be done for other platform-specific code.
+
+ + Various Mac-specific modules.
+ + Same can be done for other platform-specific code.
+
* Profiling
- + cProfile
- + profile
- + hotshot
- + pstats
+
+ + cProfile
+ + profile
+ + hotshot
+ + pstats
+
* email
- + mailbox
- + mhlib
+
+ + mailbox
+ + mhlib
+
* Databases
- + anydbm
- + dbhash
- + dbm
- + bsddb
- + dumbdbm
- + gdbm
- + whichdb
+
+ + anydbm
+ + dbhash
+ + dbm
+ + bsddb
+ + dumbdbm
+ + gdbm
+ + whichdb
+
* Audio
- + aifc
- + audioop
- + chunk
- + ossaudiodev
- + sunau
- + wave
- + winsound
+
+ + aifc
+ + audioop
+ + chunk
+ + ossaudiodev
+ + sunau
+ + wave
+ + winsound
+
* Servers
- + BaseHTTPServer
- + CGIHTTPServer
- + DocXMLRPCServer
- + SimpleHTTPServer
- + SimpleXMLRPCServer
- + SocketServer
+
+ + BaseHTTPServer
+ + CGIHTTPServer
+ + DocXMLRPCServer
+ + SimpleHTTPServer
+ + SimpleXMLRPCServer
+ + SocketServer
Modules reliant on obsolete/rarely used file formats?
@@ -508,17 +564,17 @@
modules for them can go. Below is a list of some modules which rely
on a file format that may be obsolete.
-* aifc
+aifc
AIFF and AIFF-C audio files. Appears to be only user of the cl
module (which is undocumented).
-* audioop
+audioop
Raw (8|16|32)-bit wide audio files (as generated by the al and
sunaudiodev modules).
-* binhex
+binhex
binhex4 encoding.
-* chunk
+chunk
AIFF, AIFF-C, and RMFF audio files.
-* sunau
+sunau
Sun AU audio files [#sun-au]_.