def METHOD_NAME(self):
    if isinstance(self.rootNode, ast.Module):
        self.log_with_loc("Handling tree root: %s" %
                          (ast.dump(self.rootNode)))
        # Module(stmt* body, type_ignore* type_ignores)
        # TODO how to name the namespace?
        # TODO improve readability
        nsd_name = ".".join(os.path.basename(self.fname).split(".")[:-1])
        nsd = DeclarationBuilderKt.newNamespaceDeclaration(self.frontend,
                                                           nsd_name, "")
        self.tud.addDeclaration(nsd)
        self.scopemanager.enterScope(nsd)
        for stmt in self.rootNode.body:
            r = self.handle_statement(stmt)
            if self.is_declaration(r):
                r = self.wrap_declaration_to_stmt(r)
            nsd.addStatement(r)
        self.scopemanager.leaveScope(nsd)
        self.scopemanager.addDeclaration(nsd)
    else:
        self.log_with_loc("Expected an ast.Module node but received %s." %
                          (type(self.rootNode)), level="ERROR")
        raise RuntimeError