1*5808f684SSatish Balay#!/usr/bin/env python 2*5808f684SSatish Balay 3*5808f684SSatish Balay# -------------------------------------------------------------------- 4*5808f684SSatish Balay 5*5808f684SSatish Balayfrom petsc4py import PETSc 6*5808f684SSatish Balay 7*5808f684SSatish Balay# -------------------------------------------------------------------- 8*5808f684SSatish Balay 9*5808f684SSatish Balaytry: 10*5808f684SSatish Balay from docutils.nodes import NodeVisitor 11*5808f684SSatish Balay NodeVisitor.unknown_visit = lambda self, node: None 12*5808f684SSatish Balay NodeVisitor.unknown_departure = lambda self, node: None 13*5808f684SSatish Balayexcept ImportError: 14*5808f684SSatish Balay pass 15*5808f684SSatish Balay 16*5808f684SSatish Balaytry: # epydoc 3.0.1 + docutils 0.6 17*5808f684SSatish Balay from docutils.nodes import Text 18*5808f684SSatish Balay from UserString import UserString 19*5808f684SSatish Balay if not isinstance(Text, UserString): 20*5808f684SSatish Balay def Text_get_data(s): 21*5808f684SSatish Balay try: 22*5808f684SSatish Balay return s._data 23*5808f684SSatish Balay except AttributeError: 24*5808f684SSatish Balay return s.astext() 25*5808f684SSatish Balay def Text_set_data(s, d): 26*5808f684SSatish Balay s.astext = lambda: d 27*5808f684SSatish Balay s._data = d 28*5808f684SSatish Balay Text.data = property(Text_get_data, Text_set_data) 29*5808f684SSatish Balayexcept ImportError: 30*5808f684SSatish Balay pass 31*5808f684SSatish Balay 32*5808f684SSatish Balay# -------------------------------------------------------------------- 33*5808f684SSatish Balay 34*5808f684SSatish Balayfrom epydoc.docwriter import dotgraph 35*5808f684SSatish Balay 36*5808f684SSatish Balayimport re 37*5808f684SSatish Balaydotgraph._DOT_VERSION_RE = \ 38*5808f684SSatish Balay re.compile(r'dot (?:- Graphviz )version ([\d\.]+)') 39*5808f684SSatish Balay 40*5808f684SSatish Balaytry: 41*5808f684SSatish Balay 42*5808f684SSatish Balay dotgraph.DotGraph.DEFAULT_HTML_IMAGE_FORMAT 43*5808f684SSatish Balay dotgraph.DotGraph.DEFAULT_HTML_IMAGE_FORMAT = 'png' 44*5808f684SSatish Balay 45*5808f684SSatish Balayexcept AttributeError: 46*5808f684SSatish Balay 47*5808f684SSatish Balay DotGraph_to_html = dotgraph.DotGraph.to_html 48*5808f684SSatish Balay DotGraph_run_dot = dotgraph.DotGraph._run_dot 49*5808f684SSatish Balay 50*5808f684SSatish Balay def to_html(self, image_file, image_url, center=True): 51*5808f684SSatish Balay if image_file[-4:] == '.gif': 52*5808f684SSatish Balay image_file = image_file[:-4] + '.png' 53*5808f684SSatish Balay if image_url[-4:] == '.gif': 54*5808f684SSatish Balay image_url = image_url[:-4] + '.png' 55*5808f684SSatish Balay return DotGraph_to_html(self, image_file, image_url) 56*5808f684SSatish Balay 57*5808f684SSatish Balay def _run_dot(self, *options): 58*5808f684SSatish Balay if '-Tgif' in options: 59*5808f684SSatish Balay opts = list(options) 60*5808f684SSatish Balay for i, o in enumerate(opts): 61*5808f684SSatish Balay if o == '-Tgif': opts[i] = '-Tpng' 62*5808f684SSatish Balay options = type(options)(opts) 63*5808f684SSatish Balay return DotGraph_run_dot(self, *options) 64*5808f684SSatish Balay 65*5808f684SSatish Balay dotgraph.DotGraph.to_html = to_html 66*5808f684SSatish Balay dotgraph.DotGraph._run_dot = _run_dot 67*5808f684SSatish Balay 68*5808f684SSatish Balay# -------------------------------------------------------------------- 69*5808f684SSatish Balay 70*5808f684SSatish Balayimport re 71*5808f684SSatish Balay 72*5808f684SSatish Balay_SIGNATURE_RE = re.compile( 73*5808f684SSatish Balay # Class name (for builtin methods) 74*5808f684SSatish Balay r'^\s*((?P<class>\w+)\.)?' + 75*5808f684SSatish Balay # The function name 76*5808f684SSatish Balay r'(?P<func>\w+)' + 77*5808f684SSatish Balay # The parameters 78*5808f684SSatish Balay r'\(((?P<self>(?:self|cls|mcs)),?)?(?P<params>.*)\)' + 79*5808f684SSatish Balay # The return value (optional) 80*5808f684SSatish Balay r'(\s*(->)\s*(?P<return>\S.*?))?'+ 81*5808f684SSatish Balay # The end marker 82*5808f684SSatish Balay r'\s*(\n|\s+(--|<=+>)\s+|$|\.\s+|\.\n)') 83*5808f684SSatish Balay 84*5808f684SSatish Balayfrom epydoc import docstringparser as dsp 85*5808f684SSatish Balaydsp._SIGNATURE_RE = _SIGNATURE_RE 86*5808f684SSatish Balay 87*5808f684SSatish Balay# -------------------------------------------------------------------- 88*5808f684SSatish Balay 89*5808f684SSatish Balayimport sys, os 90*5808f684SSatish Balayimport epydoc.cli 91*5808f684SSatish Balay 92*5808f684SSatish Balaydef epydocify(): 93*5808f684SSatish Balay dirname = os.path.dirname(__file__) 94*5808f684SSatish Balay config = os.path.join(dirname, 'epydoc.cfg') 95*5808f684SSatish Balay sys.argv.append('--config=' + config) 96*5808f684SSatish Balay epydoc.cli.cli() 97*5808f684SSatish Balay 98*5808f684SSatish Balayif __name__ == '__main__': 99*5808f684SSatish Balay epydocify() 100*5808f684SSatish Balay 101*5808f684SSatish Balay# -------------------------------------------------------------------- 102