[Python-3000] pimp; restructuring the standard library

tav tav at espians.com
Thu Jun 28 17:59:31 CEST 2007


rehi all,

First of all, I'd like to say "fucking great work!". Whilst initially
skeptical about Python 3.0, I really love all the decisions that have
been made so far. Python 3.0 is looking like it's going to be a great
language! Thank you ever so much to all those who've put in their time
and effort.

Now, one of the killer features of Python has always been it's
batteries included standard library. However, until recently, this has
been slightly abandoned. Wth 3.0, we have a chance to rectify this and
bring it up-to-date with the modern era.

I don't think what PEP 3001 currently suggests goes far enough in this
regard. It seems to be treating the change as a usual python 2.x ->
2.x+1 change.

I'd like to suggest a complete overhaul of the standard library, and
along with it, perhaps some changes to the import mechanism.

* Structured hierarchy (this seems to be something that already has support).

* Abandoning of unit tests and replacing with full doctest coverage in
the style perfected by Jim Fulton and PJE. Integration with py.test.

* Ability to import from remote networked sources, e.g. import
http://foo.com/blah/

* Authentication of sources with configurable crypto.

* Full integration with setuptools + eggs.

* Pluggable integration support for version control systems like svn/bzr.

* Builtin versioning support for modules.

* Live-update of modules/code support (in the vein of Erlang).

* Rewrite of standard library to be more adaptable, concurrent, and
pertaining to object capability. This way, we can have a secure,
composable and parallelisable standard library!

* Integration of "best-of" libraries out there. (Obviously subjective...)

* Grouped imports/exports, e.g. from module import :api, instead of
the current all or nothing, from module import *

Now, this might seem a bit much but if done well, I think it can
provide Python a huge leap over other languages...

I have already worked on this for my own projects by implementing an
import replacement called ``pimp`` in python 2.x. See:

  https://svn.espnow.net/24weeks/trunk/source/python/importer/pimp/pimp.py

And, have been working on structuring code for my own uses under:

  https://svn.espnow.net/24weeks/trunk/source/python/

Hope this all makes some kind of sense... your thoughts will be much
appreciated. Thanks!

-- 
love, tav
founder and ceo, esp metanational llp

plex:espians/tav | tav at espians.com | +44 (0) 7809 569 369


More information about the Python-3000 mailing list