[Python-checkins] r62509 - peps/trunk/pep-3108.txt
brett.cannon
python-checkins at python.org
Sat Apr 26 06:05:53 CEST 2008
Author: brett.cannon
Date: Sat Apr 26 06:05:53 2008
New Revision: 62509
Log:
Make some changes at Guido's suggestion.
Modified:
peps/trunk/pep-3108.txt
Modified: peps/trunk/pep-3108.txt
==============================================================================
--- peps/trunk/pep-3108.txt (original)
+++ peps/trunk/pep-3108.txt Sat Apr 26 06:05:53 2008
@@ -8,7 +8,7 @@
Content-Type: text/x-rst
Created: 01-Jan-2007
Python-Version: 3.0
-Post-History:
+Post-History:
Abstract
@@ -55,14 +55,12 @@
#. 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 @@
---------------------
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 @@
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 @@
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 @@
+ 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 @@
+ 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 @@
+ 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 @@
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 @@
+ 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 @@
+ 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 @@
+ 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 @@
============ ===============================
Current Name Replacement Name
============ ===============================
-bdb _bdb
-markupbase _markupbase [done]
-opcode _opcode
+markupbase _markupbase [done: 3.0]
dummy_thread _dummy_thread [#]_
============ ===============================
@@ -585,6 +590,7 @@
================= ===============================
Current Name Replacement Name
================= ===============================
+repr reprlib
test.test_support test.support
================= ===============================
@@ -614,7 +620,8 @@
.. [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 @@
.. [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 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 @@
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 @@
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 @@
+ 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
-----------------------------------
More information about the Python-checkins
mailing list