[Python-Dev] pep-3108.txt

Brett Cannon brett at python.org
Tue Jan 2 23:54:59 CET 2007


On 1/2/07, M.-A. Lemburg <mal at egenix.com> wrote:
>
> 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.


That has been suggested before (including by me) and Guido has always shot
it down.  That's why I left it out of this proposal.

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.


Oops, I should have clarified that was not package name suggestsions beyond
'collections'.  It was just meant to act as what the type of grouping was.

-Brett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-dev/attachments/20070102/f867294b/attachment.html 


More information about the Python-Dev mailing list