[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

AltStyle によって変換されたページ (->オリジナル) /