[Python-Dev] pep-3108.txt

M.-A. Lemburg mal at egenix.com
Tue Jan 2 23:41:15 CET 2007


On 2007-01-02 01:02, brett.cannon wrote:
> Author: brett.cannon
> Date: Tue Jan  2 01:02:41 2007
> New Revision: 53204
> 
> Added:
>    peps/trunk/pep-3108.txt   (contents, props changed)
> Modified:
>    peps/trunk/pep-0000.txt
> Log:
> Add PEP 3108: Standard Library Reorganization.
> 
>...
>
> +Open Issues
> +===========
> +
> +Consolidate dependent modules together into a single module or package?
> ...
> +Consolidate certain modules with similar themes together in a package?
> +----------------------------------------------------------------------
> ...

If you do follow this route, please take the chance to place
the whole Python stdlib under a single package. That way we'll
avoid name clashes with existing packages and modules now and
in the future.

Together with absolute imports this also improves the readability
of modules since it becomes immediately clear where the imported code
is coming from.

Note that as side-effect of this it becomes a lot harder to manipulate
PYTHONPATH to trick Python into loading a standard module from a
non-standard location, improving security and robustness of the
Python installations.

> +Packages are often used to group together modules that have a similar
> +theme but do not have any direct relationship or dependency upon each
> +other.  For Python 3.0 obvious groupings could be done since renaming
> +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'?
> +* mac
> +    + Various Mac-specific modules.
> +    + Same can be done for other platform-specific code.
> +* Profiling
> +    + cProfile
> +    + profile
> +    + hotshot
> +    + pstats
> +* email
> +    + mailbox
> +    + mhlib
> +* Databases
> +    + anydbm
> +    + dbhash
> +    + dbm
> +    + bsddb
> +    + dumbdbm
> +    + gdbm
> +    + whichdb
> +* Audio
> +    + aifc
> +    + audioop
> +    + chunk
> +    + ossaudiodev
> +    + sunau
> +    + wave
> +    + winsound
> +* Servers
> +    + BaseHTTPServer
> +    + CGIHTTPServer
> +    + DocXMLRPCServer
> +    + SimpleHTTPServer
> +    + SimpleXMLRPCServer
> +    + SocketServer

The package names should probably be converted to lower-case to
follow PEP 8.

Thanks and Happy New Year,
-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jan 02 2007)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::


More information about the Python-Dev mailing list