[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