def visit_module(self, node, modname): """visit a Module node by returning a fresh instance of it""" newnode = new.Module(modname, None) _lineno_parent(node, newnode, parent=None) _init_set_doc(node, newnode) newnode.body = [self.visit(child, newnode) for child in node.body] newnode.set_line_info(newnode.last_child()) return newnode
def visit_module(self, node, modname, package): """visit a Module node by returning a fresh instance of it""" newnode = new.Module(modname, node.doc) newnode.package = package self._set_infos(node, newnode, None) self._remove_nodes = [] # list of ';' Discard nodes to be removed newnode.body = [self.visit(child, newnode) for child in node.node.nodes] for discard, d_parent in self._remove_nodes: d_parent.child_sequence(discard).remove(discard) return newnode
def test_relative_to_absolute_name(self): # package mod = nodes.Module('very.multi.package', 'doc') mod.package = True modname = mod.relative_to_absolute_name('utils', 1) self.assertEqual(modname, 'very.multi.package.utils') modname = mod.relative_to_absolute_name('utils', 2) self.assertEqual(modname, 'very.multi.utils') modname = mod.relative_to_absolute_name('utils', 0) self.assertEqual(modname, 'very.multi.package.utils') modname = mod.relative_to_absolute_name('', 1) self.assertEqual(modname, 'very.multi.package') # non package mod = nodes.Module('very.multi.module', 'doc') mod.package = False modname = mod.relative_to_absolute_name('utils', 0) self.assertEqual(modname, 'very.multi.utils') modname = mod.relative_to_absolute_name('utils', 1) self.assertEqual(modname, 'very.multi.utils') modname = mod.relative_to_absolute_name('utils', 2) self.assertEqual(modname, 'very.utils') modname = mod.relative_to_absolute_name('', 1) self.assertEqual(modname, 'very.multi')
def build_module(name, doc=None): """create and initialize a astng Module node""" node = nodes.Module(name, doc, pure_python=False) node.package = False node.parent = None return node