The merging of profile/cProfile as of Python 3.3 did not occur, and thus is considered abandoned (although it would be acceptable to do in the future).

Python 3.0 presents 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 . This PEP lists modules that should not be included in Python 3.0 or which need to be renamed.

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.

Guido pronounced that "silly old stuff" is to be deleted from the stdlib for Py3K . 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.

Previously deprecated [done] PEP 4 lists all modules that have been deprecated in the stdlib . 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. 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 in a previous version. Supplanted by the email package.

MimeWriter Supplanted 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 [done] Python supports many platforms, some of which are not widely used or maintained. 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 modules mentioned below are documented. All undocumented modules for the specified platforms will also be removed. IRIX The IRIX operating system is no longer produced . Removing all modules from the plat-irix[56] directory has been deemed reasonable because of this fact. 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 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 Undocumented.

cdplayer Undocumented.

cl/CL/CL_old 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 GL access, which is the predecessor to OpenGL. Has not been edited in at least eight years. Third-party libraries provide better support (PyOpenGL ).

ERRNO Undocumented.

FILE Undocumented.

FL/fl/flp Wrapper for the FORMS library 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.

GET Undocumented.

GLWS Undocumented.

imgfile Wrapper for SGI libimage library for imglib image files ( .rgb files). Python Imaging Library provides read-only support . Not uniquely edited in 13 years.

IN Undocumented.

IOCTL Undocumented.

jpeg Wrapper for JPEG (de)compressor. Code not uniquely edited in nine years. Third-party libraries provide better support (Python Imaging Library ).

panel Undocumented.

panelparser Undocumented.

readcd Undocumented.

SV Undocumented.

torgb Undocumented.

WAIT Undocumented.

Mac-specific modules The Mac-specific modules are not well-maintained (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 Lib/plat-mac and 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 . 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.

buildtools Documented as deprecated since Python 2.3 without an explicit reason.

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

icglue

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.

OSATerminology

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.

Solaris SUNAUDIODEV/sunaudiodev Access to the sound card on Sun machines. Code not uniquely edited in over eight years.



Hardly used [done] Some platform-independent modules are rarely used. There are a number of possible explanations for this, including, ease of reimplementation, very small audience or lack of adherence to more modern standards. audiodev Undocumented. Not edited in five 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 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).

sunaudio Undocumented. Not edited in over seven years. The sunau module provides similar abilities.

toaiff 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 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 Written before Pure Atria was bought by Rational which was then bought by IBM (in other words, very old).

test.testall 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] Restricted execution / security. Turned off in Python 2.3. Modules deemed unsafe.

bsddb185 [done] Superseded by bsddb3 Not built by default. Documentation specifies that the "module should never be used directly in new code". Available externally from PyPI .

Canvas [done] Marked as obsolete in a comment by Guido since 2000 (see http://bugs.python.org/issue210677). Better to use the Tkinter.Canvas class.

commands [done] subprocess module replaces it . Remove getstatus(), move rest to subprocess.

compiler [done] Having to maintain both the built-in compiler and the stdlib package is redundant . The AST created by the compiler is available . Mechanism to compile from an AST needs to be added.

dircache [done] Negligible use. Easily replicated.

dl [done] ctypes provides better support for same functionality.

fpformat [done] All functionality is supported by string interpolation.

htmllib [done] Superseded by HTMLParser.

ihooks [done] Undocumented. For use with rexec which has been turned off since Python 2.3.

imageop [done] Better support by third-party libraries (Python Imaging Library ). Unit tests relied on rgbimg and imgfile. rgbimg was removed in Python 2.6. imgfile slated for removal in this PEP.

linuxaudiodev [done] Replaced by ossaudiodev.

mhlib [done] Should be removed as an individual module; use mailbox instead.

popen2 [done] subprocess module replaces it .

sgmllib [done] Does not fully parse SGML. In the stdlib for support to htmllib which is slated for removal.

sre [done] Previously deprecated; import re instead.

stat [TODO need to move all uses over to os.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 [done] os.statvfs now returns a tuple with attributes.

thread [done] 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 .

urllib [done] Superseded by urllib2. Functionality unique to urllib will be kept in the urllib package.

UserDict [done: 3.0] [TODO handle 2.6] Not as useful since types can be a superclass. Useful bits moved to the 'collections' module.

UserList/UserString [done] Not useful since types can be a superclass. Moved to the 'collections' module.

