def generateDocstring(self, item, stream, indent): item.pyDocstring = "" if item.name.startswith('operator'): return # Apparently sip doesn't like operators to have docstrings... # get the docstring text text = nci(extractors.flattenNode(item.briefDoc, False)) text = wrapText(text) #if isinstance(item, extractors.ClassDef): # # append the function signatures for the class constructors (if any) to the class' docstring # try: # ctor = item.find(item.name) # sigs = ctor.collectPySignatures() # if sigs: # text += '\n' + '\n'.join(sigs) # except extractors.ExtractorError: # pass #else: # # Prepend function signature string(s) for functions and methods # sigs = item.collectPySignatures() # if sigs: # if text: # text = '\n\n' + text # text = '\n'.join(sigs) + text sigs = None if isinstance(item, extractors.ClassDef): try: ctor = item.find(item.name) sigs = ctor.collectPySignatures() except extractors.ExtractorError: pass else: sigs = item.collectPySignatures() if sigs: if text: text = '\n\n' + text text = '\n'.join(sigs) + text # write the docstring directive and the text stream.write('%s%%Docstring\n' % indent) stream.write(nci(text, len(indent)+4)) stream.write('%s%%End\n' % indent) # and save the docstring back into item in case it is needed by other # generators later on item.pyDocstring = nci(text)