[Python-Dev] PEP 391 ready for review
Nick Coghlan
ncoghlan at gmail.com
Thu Nov 26 13:11:46 CET 2009
Nick Coghlan wrote:
> Terry Reedy wrote:
>> if not hasattr(factory, '__call__'): factory = __import__(factory)
>
> That won't quite work since the string generally isn't referring to a
> module, and due to the quirk of __import__ returning the top level
> module since that is what the interpreter needs to bind to a name as
> part of a normal import statement.
>
> This would need to look more like:
>
> if not hasattr(factory, '__call__'):
> mod_name, dot, attr = factory.rpartition('.')
> if not dot:
> raise ValueError("<something meaningful>")
> module = imputil.import_module(mod_name)
> factory = getattr(module, attr)
s/imputil/importlib/ (Oops...)
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
More information about the Python-Dev
mailing list