[Python-3000] PEP 3108: Standard Library Reorganization

Brett Cannon brett at python.org
Tue Jan 2 04:44:08 CET 2007


On 1/1/07, Josiah Carlson <jcarlson at uci.edu> wrote:
>
>
> "Brett Cannon" <brett at python.org> wrote:
> > * fileinput
> >     + Basic functionality handled by ``itertools.chain``.
> >     + Using ``enumerate`` (for the line number in the file),
> >       ``itertools.repeat`` (for returning the filename with each
> >       line), and ``zip`` (for connecting the ``enumerate`` object and
> >       ``itertools.repeat`` object)  provides 95% of other unique
> >       abilities of fileinput.
>
> I agree with Giovanni on the above.


OK.  Starting to sound like fileinput should stay.

> * telnetlib
> >     + Telnet is not used very much anymore.
> >         - Telnet is unsafe.
> >         - Most people use SSH instead.
>
> I don't know how common telnet lib use is currently, but I have found it
> useful in writing plaintext line-based clients (like SMTP, POP, HTTP,
> IMAP, etc.), before moving on to writing async* derived clients.


Fair enough.  If more people step up it can stay.

> * base64/quopri/uu
> >     + Support exists in the codecs module.
> >     + If removed (along with binhex), also remove binascii.
> >         - C implementation of base64, binhex, and uu modules.
>
> The binascii module has become a catch all module for various plaintext
> <-> binary conversions.


Right, but is it necessarily the best thing that it has become a catch-all?

  I'm not sure if using .encode()/.decode() are
> necessarily desireable, especially in the case of certain binascii
> conversions that involve long/int <-> binary (that didn't make it into
> Python 2.5).


 Anyone else want to weigh in to save binascii?

> * asynchat/asyncore
> >     + Third-party libraries provide better solutions.
> >         - twisted [#twisted]_
> >     + Deprecation previously supported [#py-dev-summary-2004-11-01]_
>
> There is quite a bit of user code that depends on asynchat/asyncore
> modules.  While there are many people who end up using twisted, forcing
> all asynchronous socket users to "drink the twisted kool-aid" would set
> a bad precident for any commonly used stdlib Python library with a more
> fully-featured 3rd party module.


Well, I just remember the thread that led to the suggestion the two modules
go.  It can be saved from the chopping block but I remember part of the
issue was no one was wanting to maintain the modules anymore and they were
starting to collect dust.

> * stat
> >     + ``os.stat`` now returns a tuple with attributes.
>
> The stat module also offers useful functions like stat.IS_DIR() for
> determining if an object is a directory.


Perhaps the functions should move to os or be part of the object returned by
os.stat.

> * thread
> >     + People should use 'threading' instead.
> >         - Rename 'thread' to _thread.
> >         - Deprecate dummy_thread.
> >             * Rename to _mockthread.
> >             * Change of name better reflects modules purpose.
> >     + Guido has previously supported the deprecation
> >       [#thread-deprecation]_.
>
> Sounds good.  Can we get this particular change into the 2.x series?
> I've seen too much code that mixes and matches threading and thread use.


Probably if people want it.

> * SocketServer
> >     socketserver
>
> SocketServer and its derivatives (*HTTPServer) are tricky (I've been
> seeing them used quite a bit)...


Well, I am not proposing to remove them although I would not cry if the
HTTPServer children disappeared, but that's just me.  We will have to see if
anyone else is up for letting them go.

> * Servers
> >     + BaseHTTPServer
> >     + CGIHTTPServer
> >     + DocXMLRPCServer
> >     + SimpleHTTPServer
> >     + SimpleXMLRPCServer
> >     + SocketServer
>
> Would it be a reasonable semantic to say that 'no top level modules or
> packages can violate PEP 8 module/package naming guidelines', but
> sub-modules or packages may use CamelCase by historical precident or
> when doing so would make understanding the purpose of the module/package
> easier?



Could.  The renaming as of right now only enforces it on the package name
stringently.  But the style guide is not my call.

-Brett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-3000/attachments/20070101/58eef67b/attachment.html 


More information about the Python-3000 mailing list