def _from(self, node, current_klass, root_level = False):
        if node.modname == '__pyjamas__':
            # special module to help make pyjamas modules loadable in
            # the python interpreter
            for name in node.names:
                ass_name = name[1] or name[0]
                try:
                    jsname =  getattr(__pyjamas__, name[0])
                    if callable(jsname):
                        self.add_lookup("__pyjamas__", ass_name, name[0])
                    else:
                        self.add_lookup("__pyjamas__", ass_name, jsname)
                except __HOLE__, e:
                    #raise TranslationError("Unknown __pyjamas__ import: %s" % name, node)
                    pass
            return
        if node.modname == '__javascript__':
            for name in node.names:
                ass_name = name[1] or name[0]
                self.add_lookup("__javascript__", ass_name, name[0])
            return
        if node.modname == '__future__':
            for name in node.names:
                future = getattr(__future__, name[0], None)
                if callable(future):
                    future(self)
                else:
                    # Ignoring from __future__ import name[0]
                    pass
            return
        # XXX: hack for in-function checking, we should have another
        # object to check our scope
        absPath = False
        modname = node.modname
        if hasattr(node, 'level') and node.level > 0:
            absPath = True
            modname = self.relative_import_context.split('.')
            level = node.level - 1
            if len(modname) <= level:
                raise TranslationError(
                    "Attempted relative import beyond toplevel package",
                    node, self.module_name)
            if level:
                modname = '.'.join(modname[:-node.level])
            else:
                modname = self.relative_import_context
            if node.modname:
                modname += '.' + node.modname
        for name in node.names:
            if name[0] == "*":
                self._doImport(((modname, name[0]),), current_klass,
                               root_level, False, absPath, True)
                continue
            sub = modname + '.' + name[0]
            ass_name = name[1] or name[0]
            self._doImport(((sub, ass_name),), current_klass, root_level, True, absPath)
dataset/ETHPy150Open anandology/pyjamas/pyjs/src/pyjs/translator_proto.py/Translator._from