[Python-3000] PEP 3108: Standard Library Reorganization

Ronald Oussoren ronaldoussoren at mac.com
Wed Jan 3 21:26:50 CET 2007


On 2 Jan, 2007, at 1:14, Brett Cannon wrote:


>
> * buildtools
>    2.3

This one is still used by buildapplet (a mac specific tool/module).  
However, see below for more on this.

> * cfmfile
>    2.4

mac specific, I don't know if this works on OSX (Jack probably knows).

> * macfs
>    2.3

Mac specific, I have no idea whether this is still in use.

> * Mac
>    + applesingle
>        - Undocumented.
>            * AppleSingle is a binary file format for A/UX.
>                + A/UX no longer distributed.

No problems here.

> * UNIX
>    + nis
>        - Wrapper for NIS.
>            * NIS has been replaced by LDAP, DNS, and Kerberos.

That's rather optimistic, NIS is still in active use. NIS is often  
easier to setup than LDAP/Kerberos, especially with older proprietary  
unix versions.
> * telnetlib
>    + Telnet is not used very much anymore.
>        - Telnet is unsafe.
>        - Most people use SSH instead.

I still use telnet to connect to embedded systems, or even ancient  
unix systems.  I must admit that I don't often use the telnetlib  
module but mostly just use plain socket connections and ignore the  
telnet protocol.

> * asynchat/asyncore
>    + Third-party libraries provide better solutions.
>        - twisted [#twisted]_
>    + Deprecation previously supported [#py-dev-summary-2004-11-01]_

Asyncore is still in active use, also not everyone agrees that  
Twisted is better.

> Modules to Rename
> =================
>
>
> PEP 8 specifies that modules "should have short, lowercase names,
> without underscores" [#pep-0008]_.

Why does the restriction on underscores exist? Removing that  
restriction would make lowercase-only names easier to use  
(basehttpserver vs. base_http_server).


> * autoGIL
>    autogil

This one is mac specific. It's probably possible to completely drop  
this one with some changes to  the Carbon bindings.

> * Carbon
>    carbon

Also mac specific. I'm pretty sure the capitalization is on purpose,  
this is a wrapper for Apple's Carbon libraries.

> * EasyDialogs
>    easydialogs
> * FrameWork
>    framework

Also mac specific. Framework is badly documented and hasn't even been  
updated to support Carbon Events, which itself is ancient technology  
by now.

> * MacOS
>    macos

> * MiniAEFrame
>    miniaeframe

Mac specific.

> * Nav
>    nav

Mac specific.

> * PixMapWrapper
>    pixmapwrapper

Mac specific

> * W
>    w

Mac specific and ancient (see Framework). It's also no longer present  
in the trunk.


>
>
> 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.

+lots on that. A Python and C implementation that are almost but not  
quite the same can be confusing at times.


> Open Issues
> ===========
> * mac
>    + Various Mac-specific modules.
>    + Same can be done for other platform-specific code.

The mac libraries need some serious love. Most of the extensions and  
corresponding python libraries are generated from Apple's headers  
files, but generating them requires the old OS9 SDK. It should be  
possible to convert the toolchain to use the current OSX headers, but  
that requires someone that either knows how bgen works or is willing  
to spend time to learn bgen.

Several parts of the mac library should be deprecated in 2.6 and  
removed in 3.0. Applescript/OSA support is an example of that: the  
applescript support in the stdlib is awkward to use and has some bugs  
(especially on intel macs). There's also a much better way to  
interface with Applescript/OSA: appscript (http:// 
appscript.sourceforge.net/).

Support for CoreFoundation should also be dropped, Carbon.CF is  
incomplete and barely tested. I'm already working on extending PyObjC  
to include full support for CoreFoundation (and other frameworks  
based on CF) [http://pyobjc.sf.net].

>
> Modules reliant on obsolete/rarely used file formats?
> -----------------------------------------------------
>
> Several modules in the stdlib work on a specific file format.  It is
> possible some of these formats are no longer used and thus the stdlib
> modules for them can go.  Below is a list of some modules which rely
> on a file format that may be obsolete.
>
> * aifc
>    AIFF and AIFF-C audio files.  Appears to be only user of the cl
>    module (which is undocumented).

AIFF is not an obsolete file format (http://en.wikipedia.org/wiki/AIFF).

> * binhex
>    binhex4 encoding.

binhex is still used in the mac world, although most software seems  
to move to more cross-platform-friendly formats.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3562 bytes
Desc: not available
Url : http://mail.python.org/pipermail/python-3000/attachments/20070103/d628ead7/attachment-0001.bin 


More information about the Python-3000 mailing list