(term)
return eval(term, {}, AutoImportDict())
Used to evaluate an arbitrary command-line constructor specifying
    a class, with automatic import of global module names.
Used to evaluate an arbitrary command-line constructor specifying
    a class, with automatic import of global module names.
Used to evaluate an arbitrary command - line constructor specifying a class with automatic import of global module names .
def autoimport_eval(term):
    '''
    Used to evaluate an arbitrary command-line constructor specifying
    a class, with automatic import of global module names.
    '''

    class DictNamespace(object):
        def __init__(self, d):
            self.__d__ = d
        def __getattr__(self, key):
            return self.__d__[key]

    class AutoImportDict(defaultdict):
        def __init__(self, wrapped=None, parent=None):
            super().__init__()
            self.wrapped = wrapped
            self.parent = parent
        def __missing__(self, key):
            if self.wrapped is not None:
                if key in self.wrapped:
                    return self.wrapped[key]
            if self.parent is not None:
                key = self.parent + '.' + key
            if key in __builtins__:
                return __builtins__[key]
            mdl = import_module(key)
            # Return an AutoImportDict for any namespace packages
            if hasattr(mdl, '__path__'): # and not hasattr(mdl, '__file__'):
                return DictNamespace(
                        AutoImportDict(wrapped=mdl.__dict__, parent=key))
            return mdl

    return eval(term, {}, AutoImportDict())
def autoimport_eval ( term ) : class DictNamespace ( object ) : def __init__ ( self , d ) : self . __d__ = d def __getattr__ ( self , key ) : return self . __d__ [ key ] class AutoImportDict ( defaultdict ) : def __init__ ( self , wrapped = None , parent = None ) : super ( ) . __init__ ( ) self . wrapped = wrapped self . parent = parent def __missing__ ( self , key ) : if self . wrapped is not None : if key in self . wrapped : return self . wrapped [ key ] if self . parent is not None : key = self . parent + '.' + key if key in __builtins__ : return __builtins__ [ key ] mdl = import_module ( key ) # Return an AutoImportDict for any namespace packages if hasattr ( mdl , '__path__' ) : # and not hasattr(mdl, '__file__'): return DictNamespace ( AutoImportDict ( wrapped = mdl . __dict__ , parent = key ) ) return mdl return eval ( term , { } , AutoImportDict ( ) )