'Return the object imported, if any, with the given import
node (in a citree) and name.
Return value: If successful it returns the citree node imported.
If \'name\' was not found in a \'*\'-import then None is returned
(e.g. it is not exceptional that \'from os import *\' does not
import \'fuzzywuzzy\'). If the import could not be resolved, but
it looks like it should have been, then an error is raised.'

def _eval_import(self, imp, name):

    module_name = imp.get('module')
    symbol_name = imp.get('symbol')
    alias = imp.get('alias')
    obj = None
    if alias:
        if (alias == name):
            self.log("'%s'    is    from    <%s>", name, self.str_import(imp))
            return self._resolve_import(module_name, symbol_name)
    elif symbol_name:
        assert (symbol_name != '**'), "only    Perl    should    be    using    '**'    for    imports"
        if (symbol_name == '*'):
            self.log("'%s'    may    be    from    <%s>", name, imp)
            try:
                module = self._resolve_import(module_name)
            except CodeIntelError as ex:
                self.warn("could    not    resolve    '%s'    import    to    handle    <%s>", module_name, self.str_import(imp))
                return None
            self.warn('not    handling    <%s>!', self.str_import(imp))
        if (symbol_name == name):
            self.log("'%s'    is    from    <%s>", name, self.str_import(imp))
            return self._resolve_import(module_name, symbol_name)
    elif (module_name == name):
        self.log("'%s'    is    from    <%s>", name, self.str_import(imp))
        return self._resolve_import(module_name)
    return None
