def write_function(self, node): from pythondoc.utilities import parent_path id = node.attribute('id') functionname = pythondoc.utilities.id2name(id) funcref = make_html_id(functionname) modulename = parent_path(id) args, args_desc = self.get_arguments_doc(node) # Find oneliner oneliner = node.child(tag="Oneliner") if oneliner: oneliner = ' - ' + pythondoc.doctree.escape(oneliner.text()) else: oneliner = '' stylesheet = _options.read_value(formatter_name, 'stylesheet')[1] header = open_file('header_file') self.file.write(S.FUNCTION_HEADER % vars()) self.file.write(S.FUNCTION_END) if node.child(tag='Description'): self.file.write('\n' + element('H2', "Description") + '\n\n') if args_desc: self.file.write(args_desc) self.write_description(node)
def write_class(self, node): # Find methods methods, methodlist = self.make_methodhead(node) # Find inherited methods inherits = node.children(tag="Inherited") for base in inherits: b_methods, b_methodlist = self.make_methodhead(base) methods = methods + S.INHERITS_FROM % base.attribute( 'HREF') + b_methods methodlist = methodlist + b_methodlist from pythondoc.utilities import parent_path classname = pythondoc.utilities.id2name(node.attribute('id')) modulename = parent_path(node.attribute('id')) pythondoc.message.information("Making HTML4 page for %s" % classname) # Find oneliner oneliner = node.child(tag="Oneliner") if oneliner: oneliner = ' - ' + self.make_text(oneliner) else: oneliner = '' # Find base classes bases = self.make_classbases(node) # Make inheritance hierarchy hierarchy = self.make_hierarchy(node) if hierarchy: hierarchy = element('H2', 'Inheritance hierarchy:', CLASS="ClassHierarchy") + \ element('P', hierarchy, CLASS="ClassHierarchy") stylesheet = _options.read_value(formatter_name, 'stylesheet')[1] header = open_file('header_file') self.file.write(S.CLASS_HEADER % vars()) self.write_varhead(node) self.file.write(S.CLASS_END) if node.child(tag='Description').children(): self.file.write(element('H2', "Description")) self.write_description(node) for method, head in methodlist: if method.child(tag="Description").children(): self.file.write(head + '\n') argdesc = self.get_arguments_doc(method)[1] if argdesc: self.file.write(argdesc) self.write_description(method)
def write_class(self, node): # Find methods methods, methodlist = self.make_methodhead(node) # Find inherited methods inherits = node.children(tag="Inherited") for base in inherits: b_methods, b_methodlist = self.make_methodhead(base) methods = methods + S.INHERITS_FROM % base.attribute('HREF') + b_methods methodlist = methodlist + b_methodlist from pythondoc.utilities import parent_path classname = pythondoc.utilities.id2name(node.attribute('id')) modulename = parent_path(node.attribute('id')) pythondoc.message.information("Making HTML4 page for %s" % classname) # Find oneliner oneliner = node.child(tag="Oneliner") if oneliner: oneliner = ' - ' + self.make_text(oneliner) else: oneliner = '' # Find base classes bases = self.make_classbases(node) # Make inheritance hierarchy hierarchy = self.make_hierarchy(node) if hierarchy: hierarchy = element('H2', 'Inheritance hierarchy:', CLASS="ClassHierarchy") + \ element('P', hierarchy, CLASS="ClassHierarchy") stylesheet = _options.read_value(formatter_name, 'stylesheet')[1] header = open_file('header_file') self.file.write(S.CLASS_HEADER % vars()) self.write_varhead(node) self.file.write(S.CLASS_END) if node.child(tag='Description').children(): self.file.write(element('H2', "Description")) self.write_description(node) for method, head in methodlist: if method.child(tag="Description").children(): self.file.write(head + '\n') argdesc = self.get_arguments_doc(method)[1] if argdesc: self.file.write(argdesc) self.write_description(method)
def write_module(self, node): """Called by the doctree for module nodes.""" # Write the module header modulename = node.attribute('id') pythondoc.message.information("Making HTML4 page for %s" % modulename) stylesheet = _options.read_value(formatter_name, 'stylesheet')[1] header = open_file('header_file') self.file.write(S.MODULE_HEADER % vars()) from pythondoc.utilities import parent_path parent = parent_path(modulename) if parent: self.file.write(S.DECL_IN % (parent, parent)) self.file.write('<PRE>') # Continue traversing the rest of the tree modules = node.children(tag="Module") for module in modules: f = HTML4Formatter() f.document(module) oneliner = module.child(tag="Oneliner") if oneliner: oneliner = S.ONELINER % self.make_text(oneliner) else: oneliner = '' id = module.attribute('id') name = pythondoc.utilities.id2name(id) self.file.write(S.MODMODULE % (id, name, oneliner)) classes = node.children(tag="Class") for clazz in classes: f = HTML4Formatter(node) f.document(clazz) oneliner = clazz.child(tag="Oneliner") if oneliner: oneliner = S.ONELINER % self.make_text(oneliner) else: oneliner = '' href = clazz.attribute('id') classname = pythondoc.utilities.id2name(href) bases = self.make_classbases(clazz) self.file.write(S.MODCLASS % vars()) functions = node.children(tag="Function") funclist = [] for fun in functions: oneliner = fun.child(tag="Oneliner") if oneliner: oneliner = self.make_text(oneliner) oneliner_top = S.ONELINER % oneliner else: oneliner = oneliner_top = '' funcname = pythondoc.utilities.id2name(fun.attribute('id')) args = self.get_arguments_doc(fun)[0] if fun.child(tag="Description").children(): funcref = make_html_id(funcname) funclist.append((fun, S.FUNCTION_HEAD % vars())) MODFUNC = S.MODFUNC_DOC else: MODFUNC = S.MODFUNC self.file.write(MODFUNC % vars()) self.write_varhead(node) aliases = node.children(tag="Alias") for alias in aliases: name = pythondoc.utilities.id2name(alias.attribute('id')) type = alias.attribute('type') try: aliasfor = alias.attribute('HREF') except: aliasfor = '***Unknown***' self.file.write(S.MODALIAS % (name, aliasfor, type)) self.file.write('</PRE>') if node.child(tag='Description').children(): self.file.write(element('H2', "Description")) self.write_description(node) for func, head in funclist: self.file.write(head + '\n') self.write_description(func)