[Python-3000] possible new packages (PEP 3108)

Jim Jewett jimjjewett at gmail.com
Wed Jan 10 17:32:03 CET 2007


On 1/9/07, Brett Cannon <brett at python.org> wrote:
> Anyway, since this is an Open Issue and slightly controversial I need
> explicit voting from people on whether they like any of the proposed
> packages.  So please don't be silent if there is a package you think
> that should (or should not) happen.

I explicitly like reducing the the number of top-level modules in
almost *any* sensible manner.

For me (and I doubt I'm alone), the most obvious way to find something
is to look in the Lib directory (which misses C modules), followed by
the global module index.  With over 200 choices (windows), this
doesn't work as well as it should.

> * 'collections' package

>   + heapq
>   + Queue
>   + sets
>   + UserDist (?)
>   + UserList (?)

Except for queue (which should move to threads), this is the most clearcut.

If it is rejected, then the "builtin data types" or even a more
generic datatypes (for modules that mostly let you work with a certain
type of data, like csv or datetime) would be better than nothing.

> * Platform-specific

Yes, please.  While some are there for reasons of historical accident,
the fact remains that they don't work on all platforms, and are
therefore only a source of confusion to beginners.

The platform-specfic implementations of path should also move there.

If all builds end up distributing some of the platform-specific
packages for compatibility ("but I want to treat it as a Mac path"),
that's OK -- at least people will understand what it is there for, and
why it acts "funny".

> * Profiling

Should this be combined with debugging?

> * 'email' package
(yes)

> * Databases
>
>   + anydbm
>   + dbhash
>   + dbm
>   + bsddb
>   + dumbdbm
>   + gdbm
>   + whichdb

also shelve, sqlite3

And this reopens the question of whether there should be a way to
separate the "standard" databases from those that were added locally.

> * Audio
>
>   + aifc
>   + audioop
>   + chunk
>   + ossaudiodev
>   + sndhdr
>   + sunau
>   + wave
>   + winsound

This at least gets them out of my non-audio hair, but I'm not sure how
much sense it makes to actual users.  Should there be an audio module
(or the package __init__.py) which imports the "right"
platform-specific module for simple uses?

> * XML-RPC

>   + DocXMLRPCServer
>   + SimpleXMLRPCServer
>   + xmlrpclib

Somehow, this grouping seems artificial.  I also wonder whether the
Doc server ought to go in a docs package, or the debug package.  That
said, I still like it better than no change.

> * Internet (leaving out all questionable modules leads to a Web
>   grouping)

I would like this if we weren't worried about hierarchy depth.

I would also like it if web were pulled out separately, the way email is.

> * Servers

I would most prefer to see these as subgroupings under net (or web).

I would rather see them lumped in with the rest of web than broken out
into a separate servers package.

Though even just this -- grouping them as "servers", is an improvement
over the status quo.


> * Bytecode
> * Compression
> * Date & time

yes


More information about the Python-3000 mailing list