def __init__(self, name, abs_name, file, lineno, parent_module = None, docstring = "", children = [ ]): """Constructor Don't call this directly -- instead, use the fromAST static methods - name : object name - abs_name : dotted object name - file : file where defined - lineno : line number of definition - parent_module : module object where defined - docstring: documentation - children : list of children """ Namespace.__init__(self, parent_module, name) self.name_list = abs_name.split('.') self.abs_name = abs_name self.file = file self.lineno = lineno if docstring is None: self.docstring = "" else: self.docstring = docstring self.children = children self.parent_module = parent_module
def __init__(self, options): """Class initializer options : command line options""" self.options = options self.modules = [ ] self.modules_by_name = { } self.package_namespace = Namespace(name = options.package)
def __init__(self, options): """Class initializer options : command line options""" self.options = options self.modules = [] self.modules_by_name = {} self.package_namespace = Namespace(name=options.package)
class OutputBase: """Base class for output backends """ def __init__(self, options): """Class initializer options : command line options""" self.options = options self.modules = [ ] self.modules_by_name = { } self.package_namespace = Namespace(name = options.package) def add_module(self, module): "Add a parsed module (docobjects.Module) to be documented" self.modules.append(module) self.modules_by_name[module.abs_name] = module self.package_namespace.bind(module.abs_name, module) # add module to parent as submodule, if parent present dot = module.abs_name.rfind('.') if dot != -1: parent_name = module.abs_name[:dot] if self.modules_by_name.has_key(parent_name): self.modules_by_name[parent_name].add_sub_module(module) def resolve_imports(self): "Resolve dangling imports after all modules scanned" for module in self.modules: module.resolve_imports(self.modules_by_name) def write_output(self): "Generate documentation" self.resolve_imports() self.generate() def generate(self): pass
class OutputBase: """Base class for output backends """ def __init__(self, options): """Class initializer options : command line options""" self.options = options self.modules = [] self.modules_by_name = {} self.package_namespace = Namespace(name=options.package) def add_module(self, module): "Add a parsed module (docobjects.Module) to be documented" self.modules.append(module) self.modules_by_name[module.abs_name] = module self.package_namespace.bind(module.abs_name, module) # add module to parent as submodule, if parent present dot = module.abs_name.rfind(".") if dot != -1: parent_name = module.abs_name[:dot] if self.modules_by_name.has_key(parent_name): self.modules_by_name[parent_name].add_sub_module(module) def resolve_imports(self): "Resolve dangling imports after all modules scanned" for module in self.modules: module.resolve_imports(self.modules_by_name) def write_output(self): "Generate documentation" self.resolve_imports() self.generate() def generate(self): pass
def bind(self, name, obj): "Bind name to obj in this object's (self's) namespace" Namespace.bind(self, name, obj) DocObject.GLOBAL[self.name + '.' + name] = obj
def index(self): "Return dictionary of modules, indexed by name" result = Namespace.index(self) return dict([ (k, v) for k, v in result.items() if isinstance(v, Module) ])