[Python-Dev] module aliasing

Nick Coghlan ncoghlan at gmail.com
Fri Apr 7 15:00:41 CEST 2006


skip at pobox.com wrote:
>     >>>> Modules should have short, lowercase names, without underscores.
>     >> 
>     >> But if we don't start becoming stricter about the naming of things
>     >> added to the stdlib, consistency of naming is never going to improve.
>     >> 
>     >> Or should this wait for Py3k?
> 
>     aahz> For contributions that are also maintained separately from Python,
>     aahz> I think compatibility with the external code has to have some
>     aahz> importance.  I vote we wait for Py3k.
> 
> Why not implement some sort of user-controlled module aliasing?  That way in
> 2.x you might have StringIO and stringio available at the same time.  The
> user could enable or disable one or both names for testing and backward
> compatibility.
> 
> This of course presumes that the api of the module doesn't change, just its
> name.

Something that has occasionally bugged me is the verbosity of trying an 
import, failing with an ImportError, then trying again.

For instance, to be Py3k friendly, the simple:

   from StringIO import StringIO

would have to become:

   try:
       from stringio import StringIO
   except ImportError:
       from StringIO import StringIO

And if I wanted to check for cStringIO as well (assuming Py3k was clever 
enough to supply the C version if it was available), it would be:

   try:
       from stringio import StringIO
   except ImportError:
       try:
           from cStringIO import StringIO
       except ImportError:
           from StringIO import StringIO


It would be nice if this chain could instead be written as:

   from stringio or cStringIO or StringIO import StringIO

Similar to PEP 341, this could be pure syntactic sugar, with the actual 
try-except statements generated in the AST.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-Dev mailing list