On Mon, Apr 28, 2008 at 7:30 PM, Brett Cannon <[EMAIL PROTECTED]> wrote:
> [bcc to stdlib-sig]
>
>  After two false starts over the YEARS of trying to cleanup and
>  reorganize the stdlib, creating a SIG to get this going, having Guido
>  give the PEP the once-over over the past several days, and creating
>  two new bugs reports (issues 2715 and 2716), PEP 3108 is finally ready
>  for public vetting!
>
>  While reading this PEP, do remember this is only about either removing
>  modules, renaming them, or moving them into a package. Additions are
>  not covered by this PEP!
>
>  Also realize all of the right people have been consulted on this stuff
>  (e.g., the web SIG about the urllib package). So please do not think
>  that something that seems drastic (e.g., the removal of all
>  Mac-specific modules) was taken lightly when in fact the proper people
>  were asked and they were okay with what is going on.
>
>  Lastly, I do not want this to turn into a drawn-out thread about how
>  people think some module should stay because they happen to use it or
>  suggest some other module to remove. Please think before you propose a
>  change. I have been through this proposal process for this reorg
>  before and every time it has gotten way out of control. I do not want
>  it happen this time.
>
>  OK, with all of that out of the way, here is the PEP:
>  -----------------------------------------------
>
>  PEP: 3108
>  Title: Standard Library Reorganization
>  Version: $Revision: 62573 $
>  Last-Modified: $Date: 2008-04-28 17:56:36 -0700 (Mon, 28 Apr 2008) $
>  Author: Brett Cannon <[EMAIL PROTECTED]>
>  Status: Draft
>  Type: Standards Track
>  Content-Type: text/x-rst
>  Created: 01-Jan-2007
>  Python-Version: 3.0
>  Post-History:
>
>
>  Abstract
>  ========
>
>  Just like the language itself, Python's standard library (stdlib) has
>  grown over the years to be very rich.  But over time some modules
>  have lost their need to be included with Python.  There has also been
>  an introduction of a naming convention for modules since Python's
>  inception that not all modules follow.
>
>  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
>  =================
>
>  Guido pronounced that "silly old stuff" is to be deleted from the
>  stdlib for Py3K [#silly-old-stuff]_.  This is open-ended on purpose.
>  Each module to be removed needs to have a justification as to why it
>  should no longer be distributed with Python.  This can range from the
>  module being deprecated in Python 2.x to being for a platform that is
>  no longer widely used.
>
>  This section of the PEP lists the various modules to be removed. Each
>  subsection represents a different reason for modules to be
>  removed.  Each module must have a specific justification on top of
>  being listed in a specific subsection so as to make sure only modules
>  that truly deserve to be removed are in fact removed.
>
>  When a reason mentions how long it has been since a module has been
>  "uniquely edited", it is in reference to how long it has been since a
>  checkin was done specifically for the module and not for a change that
>  applied universally across the entire stdlib.  If an edit time is not
>  denoted as "unique" then it is the last time the file was edited,
>  period.
>
>  The procedure to thoroughly remove a module is:
>
>  #. Remove the module.
>  #. Remove the tests.
>  #. Edit ``Modules/Setup.dist`` and ``setup.py`` if needed.
>  #. 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
>  perform the procedure above.  This will avoid some merge conflicts.
>
>
>  Previously deprecated
>  ---------------------
>
>  PEP 4 lists all modules that have been deprecated in the stdlib
>  [#pep-0004]_.  The specified motivations mirror those listed in
>  PEP 4. 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
>  distribution for Python for users that rely upon the code.
>
>  * buildtools
>
>     + Documented as deprecated since Python 2.3 without an explicit
>       reason.
>
>  * cfmfile
>
>     + Documented as deprecated since Python 2.4 without an explicit
>       reason.
>
>  * cl
>
>     + Documented as obsolete since Python 2.0 or earlier.
>     + Interface to SGI hardware.
>
>  * md5
>
>     + Supplanted by the ``hashlib`` module.
>
>  * mimetools
>
>     + Documented as obsolete without an explicit reason.
>
>  * MimeWriter
>
>     + Supplaned by the ``email`` package.
>
>  * mimify
>
>     + Supplanted by the ``email`` package.
>
>  * multifile
>
>     + Supplanted by the ``email`` package.
>
>  * posixfile
>
>     + Locking is better done by ``fcntl.lockf()``.
>
>  * rfc822
>
>     + Supplanted by the ``email`` package.
>
>  * sha
>
>     + Supplanted by the ``hashlib`` package.
>
>  * sv
>
>     + Documented as obsolete since Python 2.0 or earlier.
>     + Interface to obsolete SGI Indigo hardware.
>
>  * timing
>
>     + Documented as obsolete since Python 2.0 or earlier.
>     + ``time.clock()`` gives better time resolution.
>
>
>  Platform-specific with minimal use
>  ----------------------------------
>
>  Python supports many platforms, some of which are not widely held.
>  And on some of these platforms there are modules that have limited use
>  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
>  /////
>  The IRIX operating system is no longer produced [#irix-retirement]_.
>  Removing all modules from the plat-irix[56] directory has been deemed
>  reasonable because of this fact.
>
>   + 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: 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.
>
>   + cddb [done: 3.0]
>
>     - Undocumented.
>
>   + cdplayer [done: 3.0]
>
>     - Undocumented.
>
>   + cl/CL/CL_old [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: 3.0]
>
>     - 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]_).
>
>   + ERRNO [done: 3.0]
>
>     - Undocumented.
>
>   + FILE [done: 3.0]
>
>     - Undocumented.
>
>   + 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: 3.0]
>
>     - Wrapper to the IRIS Font Manager library.
>     - Only available on SGI machines which no longer come with IRIX.
>
>   + GET [done: 3.0]
>
>     - Undocumented.
>
>   + GLWS [done: 3.0]
>
>     - Undocumented.
>
>   + 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.
>
>   + IN [done: 3.0]
>
>     - Undocumented.
>
>   + IOCTL [done: 3.0]
>
>     - Undocumented.
>
>   + 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]_).
>
>   + panel [done: 3.0]
>
>     - Undocumented.
>
>   + panelparser [done: 3.0]
>
>     - Undocumented.
>
>   + readcd [done: 3.0]
>
>     - Undocumented.
>
>   + SV [done: 3.0]
>
>     - Undocumented.
>
>   + torgb [done: 3.0]
>
>     - Undocumented.
>
>   + WAIT [done: 3.0]
>
>     - Undocumented.
>
>
>  Mac-specific modules
>  ////////////////////
>
>  The Mac-specific modules are mostly unmaintained (e.g., the bgen
>  tool used to auto-generate many of the modules has never been
>  updated to support UCS-4). It is also not Python's place to maintain
>  such a large amount of OS-specific modules. Thus all modules under
>  plat-mac are to be removed.
>
>  A stub module for proxy access will be provided for use by urllib.
>
>  * _builtinSuites
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>  * Audio_mac
>
>     - Undocumented.
>
>  * aepack
>
>     - OSA support is better through third-party modules.
>
>         * Appscript [#appscript]_.
>
>     - Hard-coded endianness which breaks on Intel Macs.
>     - Might need to rename if Carbon package dependent.
>
>  * aetools
>
>     - See aepack.
>
>  * aetypes
>
>     - See aepack.
>
>  * applesingle
>
>     - Undocumented.
>     - AppleSingle is a binary file format for A/UX.
>     - A/UX no longer distributed.
>
>  * appletrawmain
>
>     - Undocumented.
>
>  * appletrunner
>
>     - Undocumented.
>
>  * argvemulator
>
>     - Undocumented.
>
>  * autoGIL
>
>     - Very bad model for using Python with the CFRunLoop.
>
>  * bgenlocations
>
>     - Undocumented.
>
>  * bundlebuilder
>
>     - Undocumented.
>
>  * Carbon
>
>     - Carbon development has stopped.
>     - Does not support 64-bit systems completely.
>     - Dependent on bgen which has never been updated to support UCS-4
>       Unicode builds of Python.
>
>  * CodeWarrior
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>  * ColorPicker
>
>     - Better to use Cocoa for GUIs.
>
>  * EasyDialogs
>
>     - Better to use Cocoa for GUIs.
>
>  * Explorer
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>  * Finder
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>
>  * findertools
>
>     - No longer useful.
>
>  * FrameWork
>
>     - Poorly documented.
>     - Not updated to support Carbon Events.
>
>  * gensuitemodule
>
>     - See aepack.
>
>  * ic
>
>  * icopen
>
>     - Not needed on OS X.
>     - Meant to replace 'open' which is usually a bad thing to do.
>
>  * macerrors
>
>     - Undocumented.
>
>  * MacOS
>
>     - Would also mean the removal of binhex.
>
>  * macostools
>
>  * macresource
>
>     - Undocumented.
>
>  * MiniAEFrame
>
>     - See aepack.
>
>  * Nav
>
>     - Undocumented.
>
>  * Netscape
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>
>  * pimp
>
>     - Undocumented.
>
>  * PixMapWrapper
>
>     - Undocumented.
>
>  * StdSuites
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>  * SystemEvents
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>  * Terminal
>
>     - Undocumented.
>     - Package under lib-scriptpackages.
>
>
>  * terminalcommand
>
>     - Undocumented.
>
>  * videoreader
>
>      - No longer used.
>
>  * W
>
>      - No longer distributed with Python.
>
>
>  .. _PyObjC: http://pyobjc.sourceforge.net/
>
>
>  Solaris
>  ///////
>
>   + SUNAUDIODEV/sunaudiodev [done: 3.0]
>
>     - Access to the sound card on Sun machines.
>     - Code not uniquely edited in over eight years.
>
>
>  Hardly used
>  ------------
>
>  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: 3.0]
>
>   + Undocumented.
>   + Not edited in five years.
>   + If removed sunaudio should go as well (also undocumented; not
>     edited in over seven years).
>
>  * imputil
>
>   + 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.
>   + Only useful with the 'sched' module.
>   + Not thread-safe.
>
>
>  * stringold [done: 3.0]
>
>   + Function versions of the methods on string objects.
>   + Obsolete since Python 1.6.
>   + Any functionality not in the string object or module will be moved
>     to the string module (mostly constants).
>
>  * symtable/_symtable
>
>   + Undocumented.
>
>  * toaiff [done: 3.0, moved to Demo]
>
>   + 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.
>
>  * 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: 3.0]
>
>   + Written before Pure Atria was bought by Rational which was then
>     bought by IBM (in other words, very old).
>
>  * test.testall [done: 3.0]
>
>   + From the days before regrtest.
>
>
>  Obsolete
>  --------
>
>  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: 3.0]
>
>   + Restricted execution / security.
>   + Turned off in Python 2.3.
>   + Modules deemed unsafe.
>
>  * 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
>
>   + subprocess module replaces it [#pep-0324]_.
>   + Remove getstatus(), move rest to subprocess.
>
>  * 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: 3.0]
>
>   + ctypes provides better support for same functionality.
>
>  * fpformat
>
>   + All functionality is supported by string interpolation.
>
>  * htmllib
>
>   + Superceded by HTMLParser.
>
>  * ihooks
>
>   + Undocumented.
>   + For use with rexec which has been turned off since Python 2.3.
>
>  * 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: 3.0]
>
>  * 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.
>
>
>  * sgmllib
>
>   + Does not fully parse SGML.
>   + In the stdlib for support to htmllib which is slated for removal.
>
>  * stat
>
>   + ``os.stat`` now returns a tuple with attributes.
>   + Functions in the module should be made into methods for the object
>     returned by os.stat.
>
>  * statvfs
>
>   + ``os.statvfs`` now returns a tuple with attributes.
>
>  * thread
>
>   + People should use 'threading' instead.
>
>     - Rename 'thread' to _thread.
>     - Deprecate dummy_thread and rename _dummy_thread.
>     - Move thread.get_ident over to threading.
>
>   + Guido has previously supported the deprecation
>     [#thread-deprecation]_.
>
>  * urllib
>
>   + Superceded by urllib2.
>   + Functionality unique to urllib will be kept in the
>     `urllib package`_.
>
>  * UserDict [done: 3.0]
>
>   + Not as useful since types can be a superclass.
>   + Useful bits moved to the 'collections' module.
>
>  * UserList/UserString [done: 3.0]
>
>   + Not useful since types can be a superclass.
>
>
>  Modules to Rename
>  =================
>
>  Along with the stdlib gaining some modules that are no longer
>  relevant, there is also the issue of naming.  Many modules existed in
>  the stdlib before PEP 8 came into existence [#pep-0008]_.  This has
>  led to some naming inconsistencies and namespace bloat that should be
>  addressed.
>
>
>  PEP 8 violations
>  ----------------
>
>  PEP 8 specifies that modules "should have short, all-lowercase names"
>  where "underscores can be used ... if it improves readability"
>  [#pep-0008]_.  The use of underscores is discouraged in package names.
>  The following modules violate PEP 8 and are not somehow being renamed
>  by being moved to a package.
>
>  ==================  ==================================================
>  Current Name        Replacement Name
>  ==================  ==================================================
>  _winreg             winreg (rename also because module has a public
>                     interface and thus should not have a leading
>                     underscore)
>  ConfigParser        configparser
>  copy_reg            copyreg
>  PixMapWrapper       pixmapwrapper
>  Queue               queue
>  SocketServer        socketserver
>  ==================  ==================================================
>
>
>  Merging C and Python implementations of the same interface
>  ----------------------------------------------------------
>
>  Several interfaces have both a Python and C implementation.  While it
>  is great to have a C implementation for speed with a Python
>  implementation as fallback, there is no need to expose the two
>  implementations independently in the stdlib.  For Python 3.0 all
>  interfaces with two implementations will be merged into a single
>  public interface.
>
>  The C module is to be given a leading underscore to delineate the fact
>  that it is not the reference implementation (the Python implementation
>  is).  This means that any semantic difference between the C and Python
>  versions must be dealt with before Python 3.0 or else the C
>  implementation will be removed until it can be fixed.
>
>  One interface that is not listed below is xml.etree.ElementTree.  This
>  is an externally maintained module and thus is not under the direct
>  control of the Python development team for renaming.  See `Open
>  Issues`_ for a discussion on this.
>
>  * pickle/cPickle
>
>   + Rename cPickle to _pickle.
>   + Semantic completeness of C implementation *not* verified.
>
>  * profile/cProfile
>
>   + Rename cProfile to _profile.
>   + Semantic completeness of C implementation *not* verified.
>
>  * StringIO/cStringIO [done: 3.0]
>
>   + Add the class to the 'io' module.
>
>
>  No public, documented interface
>  -------------------------------
>
>  There are several modules in the stdlib that have no defined public
>  interface.  These modules exist as support code for other modules that
>  are exposed.  Because they are not meant to be used directly they
>  should be renamed to reflect this fact.
>
>  ============  ===============================
>  Current Name  Replacement Name
>  ============  ===============================
>  markupbase    _markupbase [done: 3.0]
>  dummy_thread  _dummy_thread [#]_
>  ============  ===============================
>
>  .. [#] Assumes ``thread`` is renamed to ``_thread``.
>
>
>  Poorly chosen names
>  -------------------
>
>  A few modules have names that were poorly chosen in hindsight.  They
>  should be renamed so as to prevent their bad name from perpetuating
>  beyond the 2.x series.
>
>  =================  ===============================
>  Current Name       Replacement Name
>  =================  ===============================
>  repr               reprlib
>  test.test_support  test.support
>  =================  ===============================
>
>
>  Grouping of modules
>  -------------------
>
>  As the stdlib has grown, several areas within it have expanded to
>  include multiple modules (e.g., dbm support). Thus some new packages
>  make sense where the renaming makes a module's name easier to work
>  with.
>
>
>  dbm package
>  ///////////
>
>  =================  ===============================
>  Current Name       Replacement Name
>  =================  ===============================
>  anydbm             dbm.tools [1]_
>  dbhash             dbm.bsd
>  dbm                dbm.ndbm
>  dumbdm             dbm.dumb
>  gdbm               dbm.gnu
>  whichdb            dbm.tools [1]_
>  =================  ===============================
>
>
>  .. [1] ``dbm.tools`` can combine ``anybdbm`` and ``whichdb`` since the public
>        API for both modules has no name conflict and the two modules have
>        closely related usage.
>
>
>
>  html package
>  ////////////
>
>  ==================  ===============================
>  Current Name        Replacement Name
>  ==================  ===============================
>  HTMLParser          html.parser
>  htmlentitydefs      html.entities
>  ==================  ===============================
>
>
>  http package
>  ////////////
>
>  =================  ===============================
>  Current Name       Replacement Name
>  =================  ===============================
>  httplib            http.client
>  BaseHTTPServer     http.server [2]_
>  CGIHTTPServer      http.server [2]_
>  SimpleHTTPServer   http.server [2]_
>  Cookie             http.cookies
>  cookielib          http.cookiejar
>  =================  ===============================
>
>  .. [2] The ``http.server`` module can combine the specified modules
>        safely as they have no naming conflicts.
>
>
>  tkinter package
>  ///////////////
>
>  ==================  ===============================
>  Current Name        Replacement Name
>  ==================  ===============================
>  Canvas              tkinter.canvas
>  Dialog              tkinter.dialog
>  FileDialog          tkinter.filedialog [4]_
>  FixTk               tkinter._fix
>  ScrolledText        tkinter.scrolledtext
>  SimpleDialog        tkinter.simpledialog [5]_
>  Tix                 tkinter.tix
>  Tkconstants         tkinter.constants
>  Tkdnd               tkinter.dnd
>  Tkinter             tkinter.__init__
>  tkColorChooser      tkinter.colorchooser
>  tkCommonDialog      tkinter.commondialog
>  tkFileDialog        tkinter.filedialog [4]_
>  tkFont              tkinter.font
>  tkMessageBox        tkinter.messagebox
>  tkSimpleDialog      tkinter.simpledialog [5]_
>  turtle              tkinter.turtle
>  ==================  ===============================
>
>  .. [4] ``tkinter.filedialog`` can safely combine ``FileDialog`` and
>        ``tkFileDialog`` as there are no naming conflicts.
>
>  .. [5] ``tkinter.simpledialog`` can safely combine ``SimpleDialog``
>        and ``tkSimpleDialog`` have no naming conflicts.
>
>
>  urllib package
>  //////////////
>
>  Originally this new package was to be named ``url``, but because of
>  the common use of the name as a variable, it has been deemed better
>  to keep the name ``urllib`` and instead shift existing modules around
>  into a new package.
>
>  ==================  ===============================
>  Current Name        Replacement Name
>  ==================  ===============================
>  urllib2             urllib.request
>  urlparse            urllib.parse
>  urllib              urllib.parse, urllib.request [6]_
>  ==================  ===============================
>
>  .. [6] The quoting-related functions from ``urllib`` will be added
>        to ``urllib.parse``. ``urllib.URLOpener`` and
>        ``urllib.FancyUrlOpener`` will be added to ``urllib.request``
>        as long as the documentation for both modules is updated.
>
>
>  xmlrpc package
>  //////////////
>
>  ==================  ===============================
>  Current Name        Replacement Name
>  ==================  ===============================
>  xmlrpclib           xmlrpc.client
>  SimpleXMLRPCServer  xmlrpc.server [3]_
>  CGIXMLRPCServer     xmlrpc.server [3]_
>  ==================  ===============================
>
>  .. [3] The modules being combined into ``xmlrpc.server`` have no
>        naming conflicts and thus can safely be merged.
>
>
>  Transition Plan
>  ===============
>
>  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),
>  ``warnings.warn3k()`` will be used to issue a DeprecationWarning.

FYI, we can also flag these using 2to3.

>  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
>  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.
>
>  These stub modules will import the module code based on the new
>  naming.  The same type of warning being raised by modules being
>  removed will be raised in the stub modules.
>
>  Support in the 2to3 refactoring tool for renames will also be used
>  [#2to3]_.  Import statements will be rewritten so that only the import
>  statement and none of the rest of the code needs to be touched.  This
>  will be accomplished by using the ``as`` keyword in import statements
>  to bind in the module namespace to the old name while importing based
>  on the new name.

You should cite the existing fix_imports fixer as one example of how
to do this: 
http://svn.python.org/view/sandbox/trunk/2to3/lib2to3/fixes/fix_imports.py?view=markup

>  Open Issues
>  ===========
>
>  Renaming of modules maintained outside of the stdlib
>  ----------------------------------------------------
>
>  xml.etree.ElementTree not only does not meet PEP 8 naming standards
>  but it also has an exposed C implementation [#pep-0008]_.  It is an
>  externally maintained package, though [#pep-0360]_.  A request will be
>  made for the maintainer to change the name so that it matches PEP 8
>  and hides the C implementation.
>
>
>  Rejected Ideas
>  ==============
>
>  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.
>
>  * base64/quopri/uu
>
>   + All still widely used.
>   + 'codecs' module does not provide as nice of an API for basic
>     usage.
>
>  * fileinput
>
>   + Useful when having to work with stdin.
>
>  * linecache
>
>    + Used internally in several places.
>
>  * nis
>
>   + Testimonials from people that new installations of NIS are still
>     occurring
>
>  * getopt
>
>   + Simpler than optparse.
>
>  * repr
>
>   + Useful as a basis for overriding.
>   + Used internally.
>
>  * telnetlib
>
>   + Really handy for quick-and-dirty remote access.
>   + 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
>  -----------------------------------
>
>  It has been suggested that the entire stdlib be placed within its own
>  package.  This PEP will not address this issue as it has its own
>  design issues (naming, does it deserve special consideration in import
>  semantics, etc.).  Everything within this PEP can easily be handled if
>  a new top-level package is introduced.
>
>
>  Introducing new packages to contain theme-related modules
>  ---------------------------------------------------------
>
>  During the writing of this PEP it was noticed that certain themes
>  appeared in the stdlib.  In the past people have suggested introducing
>  new packages to help collect modules that share a similar theme (e.g.,
>  audio).  An Open Issue was created to suggest some new packages to
>  introduce.
>
>  In the end, though, not enough support could be pulled together to
>  warrant moving forward with the idea.  Instead name simplification has
>  been chosen as the guiding force for PEPs to create.
>
>
>  References
>  ==========
>
>  .. [#pep-0004] PEP 4: Deprecation of Standard Modules
>     (http://www.python.org/dev/peps/pep-0004/)
>
>  .. [#pep-0008] PEP 8: Style Guide for Python Code
>     (http://www.python.org/dev/peps/pep-0008/)
>
>  .. [#pep-0324] PEP 324: subprocess -- New process module
>     (http://www.python.org/dev/peps/pep-0324/)
>
>  .. [#pep-0360] PEP 360: Externally Maintained Packages
>     (http://www.python.org/dev/peps/pep-0360/)
>
>  .. [#module-index] Python Documentation: Global Module Index
>     (http://docs.python.org/modindex.html)
>
>  .. [#timing-module] Python Library Reference: Obsolete
>     (http://docs.python.org/lib/obsolete-modules.html)
>
>  .. [#silly-old-stuff] Python-Dev email: "Py3k release schedule worries"
>     (http://mail.python.org/pipermail/python-3000/2006-December/005130.html)
>
>  .. [#thread-deprecation] Python-Dev email: Autoloading?
>     (http://mail.python.org/pipermail/python-dev/2005-October/057244.html)
>
>  .. [#py-dev-summary-2004-11-01] Python-Dev Summary: 2004-11-01
>     (http://www.python.org/dev/summary/2004-11-01_2004-11-15/#id10)
>
>  .. [#2to3] 2to3 refactoring tool
>     (http://svn.python.org/view/sandbox/trunk/2to3/)
>
>  .. [#pyopengl] PyOpenGL
>     (http://pyopengl.sourceforge.net/)
>
>  .. [#pil] Python Imaging Library (PIL)
>     (http://www.pythonware.com/products/pil/)
>
>  .. [#twisted] Twisted
>     (http://twistedmatrix.com/trac/)
>
>  .. [#irix-retirement] SGI Press Release:
>     End of General Availability for MIPS IRIX Products -- December 2006
>     (http://www.sgi.com/support/mips_irix.html)
>
>  .. [#irix-forms] FORMS Library by Mark Overmars
>     (ftp://ftp.cs.ruu.nl/pub/SGI/FORMS)
>
>  .. [#sun-au] Wikipedia: Au file format
>     (http://en.wikipedia.org/wiki/Au_file_format)
>
>  .. [#appscript] appscript
>     (http://appscript.sourceforge.net/)
>
>  .. [#ast] _ast module
>     (http://docs.python.org/lib/ast.html)
>
>  .. [#ast-removal] python-dev email: getting compiler package failures
>     (http://mail.python.org/pipermail/python-3000/2007-May/007615.html)
>
>
>  Copyright
>  =========
>
>  This document has been placed in the public domain.
>
>
>
>  ..
>    Local Variables:
>    mode: indented-text
>    indent-tabs-mode: nil
>    sentence-end-double-space: t
>    fill-column: 70
>    coding: utf-8
>    End:
>  _______________________________________________
>  Python-3000 mailing list
>  Python-3000@python.org
>  http://mail.python.org/mailman/listinfo/python-3000
>  Unsubscribe: 
> http://mail.python.org/mailman/options/python-3000/collinw%40gmail.com
>
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to