- Timestamp:
- 04/06/2007 03:43:34 PM (21 months ago)
- Location:
- vendor/epydoc/current
- Files:
-
- 28 modified
-
doc/custom.css (modified) (1 diff)
-
doc/fields.html (modified) (2 diffs)
-
doc/index.html (modified) (4 diffs)
-
doc/installing.html (modified) (12 diffs)
-
doc/manual-docstring.txt (modified) (2 diffs)
-
doc/manual-othermarkup.txt (modified) (2 diffs)
-
doc/manual.txt (modified) (2 diffs)
-
src/epydoc/__init__.py (modified) (3 diffs)
-
src/epydoc/apidoc.py (modified) (2 diffs)
-
src/epydoc/cli.py (modified) (6 diffs)
-
src/epydoc/docparser.py (modified) (7 diffs)
-
src/epydoc/docstringparser.py (modified) (4 diffs)
-
src/epydoc/docwriter/dotgraph.py (modified) (5 diffs)
-
src/epydoc/docwriter/html.py (modified) (17 diffs)
-
src/epydoc/docwriter/html_colorize.py (modified) (2 diffs)
-
src/epydoc/docwriter/html_css.py (modified) (4 diffs)
-
src/epydoc/docwriter/latex.py (modified) (16 diffs)
-
src/epydoc/docwriter/xlink.py (modified) (4 diffs)
-
src/epydoc/markup/__init__.py (modified) (2 diffs)
-
src/epydoc/markup/epytext.py (modified) (15 diffs)
-
src/epydoc/markup/javadoc.py (modified) (3 diffs)
-
src/epydoc/markup/plaintext.py (modified) (2 diffs)
-
src/epydoc/markup/pyval_repr.py (modified) (1 diff)
-
src/epydoc/markup/restructuredtext.py (modified) (4 diffs)
-
src/epydoc/test/docbuilder.doctest (modified) (1 diff)
-
src/epydoc/test/encoding.doctest (modified) (13 diffs)
-
src/epydoc/test/epytext.doctest (modified) (14 diffs)
-
src/epydoc/test/plaintext.doctest (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
vendor/epydoc/current/doc/custom.css
r2127 r2133 84 84 div.epydoc-usage { border: 1px solid #708890; 85 85 background: #e8f0f8; margin: 1em; padding: 0.5em} 86 table.option-list { background: none !important; } 86 table.option-list { background: none !important; 87 border: 0px solid black; } 87 88 table.option-list td { border: none !important; } 88 89 -
vendor/epydoc/current/doc/fields.html
r2127 r2133 4 4 <link rel="stylesheet" href="epydoc.css" type="text/css"/> 5 5 </head> 6 <!-- $Id: fields.html 15 29 2007-02-18 12:34:08Z dvarrazzo$ -->6 <!-- $Id: fields.html 1575 2007-03-08 21:28:07Z edloper $ --> 7 7 <body> 8 8 <div class="body"> … … 365 365 366 366 <p> Normally the fields are written in the docstring of the documented 367 objects: this allows to add fields to modules, classes, function, properties.367 objects: this allows you to add fields to modules, classes, function, properties. 368 368 Where a docstring is not allowed, usually alternative options do exist. 369 369 </p> -
vendor/epydoc/current/doc/index.html
r2127 r2133 4 4 <link rel="stylesheet" href="epydoc.css" type="text/css"/> 5 5 </head> 6 <!-- $Id: index.html 15 55 2007-02-27 04:00:10Z edloper$ -->6 <!-- $Id: index.html 1562 2007-02-27 09:57:25Z dvarrazzo $ --> 7 7 <body> 8 8 … … 42 42 <li> <a href="manual-install.html">Installing Epydoc</a> </li> 43 43 <li> <a href="manual-usage.html">Using Epydoc</a> </li> 44 <li> <a href="manual-docstring s.html">Python Docstrings</a> </li>44 <li> <a href="manual-docstring.html">Python Docstrings</a> </li> 45 45 <li> <a href="manual-epytext.html">The Epytext Markup Language</a> </li> 46 46 <li> <a href="manual-fields.html">Epydoc Fields</a> </li> … … 95 95 96 96 <ul> 97 <li> The latest testing release is <a href="http://sourceforge.net/project/ showfiles.php?group_id=32455&package_id=24617&release_id=441763">Epydoc 3.0 alpha 3</a>. </li>97 <li> The latest testing release is <a href="http://sourceforge.net/project/platformdownload.php?group_id=32455">Epydoc 3.0 beta 1</a>. </li> 98 98 99 99 <li>The … … 131 131 <h2 class="box-title">News</h2> 132 132 133 <p><b>Epydoc 3.0 alpha 3 released [August 2006]</b></br /> The third134 alpha release of epydoc 3.0 is now available on the <a135 href="http://sourceforge.net/project/ showfiles.php?group_id=32455">SourceForge133 <p><b>Epydoc 3.0 beta 1 released [February 2007]</b></br /> The first 134 beta release of epydoc 3.0 is now available on the <a 135 href="http://sourceforge.net/project/platformdownload.php?group_id=32455">SourceForge 136 136 download page</a>. See the <a href="whatsnew.html">What's New</a> 137 137 page for details. Epydoc is under active development; if you wish to -
vendor/epydoc/current/doc/installing.html
r2127 r2133 4 4 <link rel="stylesheet" href="epydoc.css" type="text/css"/> 5 5 </head> 6 <!-- $Id: installing.html 1 334 2006-08-29 22:12:20Z edloper $ -->6 <!-- $Id: installing.html 1558 2007-02-27 05:28:35Z edloper $ --> 7 7 8 8 <body> … … 84 84 <code class="prompt">[/tmp]$</code> <code class="user">su</code> 85 85 Password: 86 <code class="prompt">[/tmp]#</code> <code class="user">rpm -i epydoc-3.0 alpha3.noarch.rpm</code>86 <code class="prompt">[/tmp]#</code> <code class="user">rpm -i epydoc-3.0beta1.noarch.rpm</code> 87 87 </pre></div></li> 88 88 … … 90 90 91 91 <div class="screen"><pre> 92 <code class="prompt">[/tmp]#</code> <code class="user">rm epydoc-3.0 alpha3.rpm</code>92 <code class="prompt">[/tmp]#</code> <code class="user">rm epydoc-3.0beta1.rpm</code> 93 93 </pre></div> </li> 94 94 </ol> … … 98 98 99 99 <ol> 100 <li> Download and run <code>epydoc-3.0 alpha3.win32.exe</code>. </li>100 <li> Download and run <code>epydoc-3.0beta1.win32.exe</code>. </li> 101 101 <li> Follow the on-screen instructions. Epydoc will be installed in 102 102 the <code>epydoc</code> subdirectory of your Python installation … … 110 110 menu). </li> 111 111 <li> Once epydoc is installed, you can delete 112 <code>epydoc-3.0 alpha3.win32.exe</code>. </li>112 <code>epydoc-3.0beta1.win32.exe</code>. </li> 113 113 </ol> 114 114 … … 121 121 122 122 <div class="screen"><pre> 123 <code class="prompt">[/tmp]$</code> <code class="user">wget -q http://prdownloads.sourceforge.net/epydoc/epydoc-3.0 alpha3.tar.gz</code>124 <code class="prompt">[/tmp]$</code> <code class="user">gunzip epydoc-3.0 alpha3.tar.gz</code>125 <code class="prompt">[/tmp]$</code> <code class="user">tar -xvf epydoc-3.0 alpha3.tar</code>126 </pre></div></li> 127 128 <li> Use "<code>make install</code>" in the <code>eydoc-3.0 alpha3/</code>123 <code class="prompt">[/tmp]$</code> <code class="user">wget -q http://prdownloads.sourceforge.net/epydoc/epydoc-3.0beta1.tar.gz</code> 124 <code class="prompt">[/tmp]$</code> <code class="user">gunzip epydoc-3.0beta1.tar.gz</code> 125 <code class="prompt">[/tmp]$</code> <code class="user">tar -xvf epydoc-3.0beta1.tar</code> 126 </pre></div></li> 127 128 <li> Use "<code>make install</code>" in the <code>eydoc-3.0beta1/</code> 129 129 directory to install epydoc. 130 130 131 131 <div class="screen"><pre> 132 <code class="prompt">[/tmp]$</code> <code class="user">cd epydoc-3.0 alpha3/</code>133 <code class="prompt">[/tmp/epydoc-3.0 alpha3]$</code> <code class="user">su</code>132 <code class="prompt">[/tmp]$</code> <code class="user">cd epydoc-3.0beta1/</code> 133 <code class="prompt">[/tmp/epydoc-3.0beta1]$</code> <code class="user">su</code> 134 134 Password: 135 <code class="prompt">[/tmp/epydoc-3.0 alpha3]#</code> <code class="user">make install</code>135 <code class="prompt">[/tmp/epydoc-3.0beta1]#</code> <code class="user">make install</code> 136 136 running install 137 137 running build … … 151 151 152 152 <div class="screen"><pre> 153 <code class="prompt">[/tmp/epydoc-3.0 alpha3]#</code> <code class="user">make installdocs</code>153 <code class="prompt">[/tmp/epydoc-3.0beta1]#</code> <code class="user">make installdocs</code> 154 154 </pre></div></li> 155 155 … … 158 158 159 159 <div class="screen"><pre> 160 <code class="prompt">[/tmp/epydoc-3.0 alpha3]#</code> <code class="user">cd ..</code>161 <code class="prompt">[/tmp]#</code> <code class="user">rm -r epydoc-3.0 alpha3</code>162 <code class="prompt">[/tmp]#</code> <code class="user">rm epydoc-3.0 alpha3.tar</code>160 <code class="prompt">[/tmp/epydoc-3.0beta1]#</code> <code class="user">cd ..</code> 161 <code class="prompt">[/tmp]#</code> <code class="user">rm -r epydoc-3.0beta1</code> 162 <code class="prompt">[/tmp]#</code> <code class="user">rm epydoc-3.0beta1.tar</code> 163 163 </pre></div> </li> 164 164 </ol> … … 172 172 173 173 <div class="screen"><pre> 174 <code class="prompt">[/tmp]$</code> <code class="user">wget -q http://prdownloads.sourceforge.net/epydoc/epydoc-3.0 alpha3.tar.gz</code>175 <code class="prompt">[/tmp]$</code> <code class="user">gunzip epydoc-3.0 alpha3.tar.gz</code>176 <code class="prompt">[/tmp]$</code> <code class="user">tar -xvf epydoc-3.0 alpha3.tar</code>174 <code class="prompt">[/tmp]$</code> <code class="user">wget -q http://prdownloads.sourceforge.net/epydoc/epydoc-3.0beta1.tar.gz</code> 175 <code class="prompt">[/tmp]$</code> <code class="user">gunzip epydoc-3.0beta1.tar.gz</code> 176 <code class="prompt">[/tmp]$</code> <code class="user">tar -xvf epydoc-3.0beta1.tar</code> 177 177 </pre></div></li> 178 178 179 179 <li> Use the <code>setup.py</code> script in the 180 <code>eydoc-3.0 alpha3/</code> directory to install epydoc.181 182 <div class="screen"><pre> 183 <code class="prompt">[/tmp]$</code> <code class="user">cd epydoc-3.0 alpha3/</code>184 <code class="prompt">[/tmp/epydoc-3.0 alpha3]$</code> <code class="user">su</code>180 <code>eydoc-3.0beta1/</code> directory to install epydoc. 181 182 <div class="screen"><pre> 183 <code class="prompt">[/tmp]$</code> <code class="user">cd epydoc-3.0beta1/</code> 184 <code class="prompt">[/tmp/epydoc-3.0beta1]$</code> <code class="user">su</code> 185 185 Password: 186 <code class="prompt">[/tmp/epydoc-3.0 alpha3]#</code> <code class="user">python setup.py install</code>186 <code class="prompt">[/tmp/epydoc-3.0beta1]#</code> <code class="user">python setup.py install</code> 187 187 running install 188 188 running build … … 190 190 copying build/scripts/epydoc -> /usr/bin 191 191 changing mode of /usr/bin/epydoc to 100775 192 <code class="prompt">[/tmp/epydoc-3.0 alpha3]#</code> <code class="user">cd ..</code>192 <code class="prompt">[/tmp/epydoc-3.0beta1]#</code> <code class="user">cd ..</code> 193 193 <code class="prompt">[/tmp]#</code> 194 194 </pre></div></li> … … 200 200 201 201 <div class="screen"><pre> 202 <code class="prompt">[/tmp]#</code> <code class="user">cp -r epydoc-3.0 alpha3/doc/ /usr/share/doc/epydoc/</code>203 <code class="prompt">[/tmp]#</code> <code class="user">cp epydoc-3.0 alpha3/man/* /usr/share/man/</code>202 <code class="prompt">[/tmp]#</code> <code class="user">cp -r epydoc-3.0beta1/doc/ /usr/share/doc/epydoc/</code> 203 <code class="prompt">[/tmp]#</code> <code class="user">cp epydoc-3.0beta1/man/* /usr/share/man/</code> 204 204 </pre></div> </li> 205 205 … … 208 208 209 209 <div class="screen"><pre> 210 <code class="prompt">[/tmp]#</code> <code class="user">rm -r epydoc-3.0 alpha3</code>211 <code class="prompt">[/tmp]#</code> <code class="user">rm epydoc-3.0 alpha3.tar</code>210 <code class="prompt">[/tmp]#</code> <code class="user">rm -r epydoc-3.0beta1</code> 211 <code class="prompt">[/tmp]#</code> <code class="user">rm epydoc-3.0beta1.tar</code> 212 212 </pre></div> </li> 213 213 </ol> -
vendor/epydoc/current/doc/manual-docstring.txt
r2127 r2133 2 2 ================= 3 3 4 .. $Id: manual-docstring.txt 15 48 2007-02-22 00:25:40Z dvarrazzo$4 .. $Id: manual-docstring.txt 1575 2007-03-08 21:28:07Z edloper $ 5 5 6 6 Python documentation strings (or *docstrings*) provide a convenient way of … … 105 105 106 106 For each module and class, Epydoc generates pages with both public and private 107 methods. A Javascript snippet allows to toggle the visibility of private107 methods. A Javascript snippet allows you to toggle the visibility of private 108 108 objects. 109 109 -
vendor/epydoc/current/doc/manual-othermarkup.txt
r2127 r2133 2 2 ========================== 3 3 4 .. $Id: manual-othermarkup.txt 15 51 2007-02-25 16:13:17Z dvarrazzo$4 .. $Id: manual-othermarkup.txt 1575 2007-03-08 21:28:07Z edloper $ 5 5 6 6 Epydoc's default markup language is epytext__, a lightweight markup language … … 382 382 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 383 383 384 Epydoc provides the script ``apirst2html.py`` which allows to use the384 Epydoc provides the script ``apirst2html.py`` which allows you to use the 385 385 previously described interpreted text roles from any reST document. The script 386 386 exposes the same interface of the standard Docutils script ``rst2html.py`` but -
vendor/epydoc/current/doc/manual.txt
r2127 r2133 6 6 ------------------------------------------------- 7 7 8 .. $Id: manual.txt 155 4 2007-02-27 03:31:56Z edloper $8 .. $Id: manual.txt 1559 2007-02-27 06:42:46Z edloper $ 9 9 10 10 :Author: `Edward Loper <edloper@gradient.cis.upenn.edu>`__ … … 33 33 .. contents:: 34 34 .. section-numbering:: 35 .. def:: singlepage36 35 37 36 -
vendor/epydoc/current/src/epydoc/__init__.py
r2127 r2133 5 5 # URL: <http://epydoc.sf.net> 6 6 # 7 # $Id: __init__.py 1 347 2006-09-03 03:40:30Z edloper $7 # $Id: __init__.py 1558 2007-02-27 05:28:35Z edloper $ 8 8 9 9 """ … … 168 168 :author: `Edward Loper <edloper@gradient.cis.upenn.edu>`__ 169 169 :requires: Python 2.3+ 170 :version: 3.0 alpha 2170 :version: 3.0 beta 1 171 171 :see: `The epydoc webpage <http://epydoc.sourceforge.net>`__ 172 172 :see: `The epytext markup language … … 201 201 __docformat__ = 'restructuredtext en' 202 202 203 __version__ = '3.0 alpha3'203 __version__ = '3.0beta1' 204 204 """The version of epydoc""" 205 205 -
vendor/epydoc/current/src/epydoc/apidoc.py
r2127 r2133 5 5 # URL: <http://epydoc.sf.net> 6 6 # 7 # $Id: apidoc.py 15 53 2007-02-27 00:07:56Z edloper$7 # $Id: apidoc.py 1588 2007-03-25 13:37:13Z dvarrazzo $ 8 8 9 9 """ … … 1011 1011 """ 1012 1012 if self.sorted_variables is UNKNOWN: 1013 self.init_sorted_variables 1013 self.init_sorted_variables() 1014 1014 assert len(self.sorted_variables) == len(self.variables) 1015 1015 -
vendor/epydoc/current/src/epydoc/cli.py
r2127 r2133 5 5 # URL: <http://epydoc.sf.net> 6 6 # 7 # $Id: cli.py 15 49 2007-02-24 16:23:49Z dvarrazzo $7 # $Id: cli.py 1585 2007-03-14 01:53:14Z dvarrazzo $ 8 8 9 9 """ … … 507 507 if optname in ('modules', 'objects', 'values', 508 508 'module', 'object', 'value'): 509 names.extend( val.replace(',', ' ').split())509 names.extend(_str_to_list(val)) 510 510 elif optname == 'target': 511 511 options.target = val … … 530 530 options.introspect = _str_to_bool(val, optname) 531 531 elif optname == 'exclude': 532 options.exclude. append(val)532 options.exclude.extend(_str_to_list(val)) 533 533 elif optname in ('exclude-parse', 'exclude_parse'): 534 options.exclude_parse. append(val)534 options.exclude_parse.extend(_str_to_list(val)) 535 535 elif optname in ('exclude-introspect', 'exclude_introspect'): 536 options.exclude_introspect. append(val)536 options.exclude_introspect.extend(_str_to_list(val)) 537 537 elif optname == 'inheritance': 538 538 if val.lower() not in INHERITANCE_STYLES: … … 569 569 # External API 570 570 elif optname in ('external-api', 'external_api'): 571 options.external_api.extend( val.replace(',', ' ').split())571 options.external_api.extend(_str_to_list(val)) 572 572 elif optname in ('external-api-file', 'external_api_file'): 573 options.external_api_file. append(val)573 options.external_api_file.extend(_str_to_list(val)) 574 574 elif optname in ('external-api-root', 'external_api_root'): 575 options.external_api_root. append(val)575 options.external_api_root.extend(_str_to_list(val)) 576 576 577 577 # Graph options 578 578 elif optname == 'graph': 579 graphtypes = val.replace(',', '').split()579 graphtypes = _str_to_list(val) 580 580 for graphtype in graphtypes: 581 581 if graphtype not in GRAPH_TYPES + ('all',): … … 590 590 options.graph_font_size = _str_to_int(val, optname) 591 591 elif optname == 'pstat': 592 options.pstat_files.extend( val.replace(',', ' ').split())592 options.pstat_files.extend(_str_to_list(val)) 593 593 594 594 # Return value options … … 620 620 except ValueError: 621 621 raise ValueError('"%s" option expected an int' % optname) 622 623 def _str_to_list(val): 624 return val.replace(',', ' ').split() 622 625 623 626 ###################################################################### -
vendor/epydoc/current/src/epydoc/docparser.py
r2127 r2133 5 5 # URL: <http://epydoc.sf.net> 6 6 # 7 # $Id: docparser.py 15 11 2007-02-16 02:08:51Z dvarrazzo $7 # $Id: docparser.py 1580 2007-03-10 16:01:52Z dvarrazzo $ 8 8 9 9 """ … … 231 231 232 232 # Check the cache, first. 233 if _moduledoc_cache.has_key(filename):233 if filename in _moduledoc_cache: 234 234 return _moduledoc_cache[filename] 235 235 … … 866 866 # >>> from os.path import join, split 867 867 else: 868 src_name = parse_dotted_name(lhs) 868 # Allow relative imports in this case, as per PEP 328 869 src_name = parse_dotted_name(lhs, 870 parent_name=parent_docs[-1].canonical_name) 869 871 parts = split_on(rhs, (token.OP, ',')) 870 872 for part in parts: … … 1669 1671 return elt[1] 1670 1672 1671 def parse_dotted_name(elt_list, strip_parens=True): 1672 """ 1673 def parse_dotted_name(elt_list, strip_parens=True, parent_name=None): 1674 """ 1675 @param parent_name: canonical name of referring module, to resolve 1676 relative imports. 1677 @type parent_name: L{DottedName} 1673 1678 @bug: does not handle 'x.(y).z' 1674 1679 """ … … 1684 1689 elt_list[:1] = elt_list[0][1:-1] 1685 1690 1691 # Convert a relative import into an absolute name. 1692 prefix_name = None 1693 if parent_name is not None and elt_list[0][-1] == '.': 1694 items = 1 1695 while len(elt_list) > items and elt_list[items][-1] == '.': 1696 items += 1 1697 1698 elt_list = elt_list[items:] 1699 prefix_name = parent_name[:-items] 1700 1701 # >>> from . import foo 1702 if not elt_list: 1703 return prefix_name 1704 1686 1705 if len(elt_list) % 2 != 1: raise ParseError("Bad dotted name") 1687 1706 name = DottedName(parse_name(elt_list[0], True)) 1707 if prefix_name is not None: 1708 name = prefix_name + name 1709 1688 1710 for i in range(2, len(elt_list), 2): 1689 1711 dot, identifier = elt_list[i-1], elt_list[i] … … 1872 1894 # Locals 1873 1895 if isinstance(parent_docs[-1], NamespaceDoc): 1874 if parent_docs[-1].variables.has_key(identifier):1896 if identifier in parent_docs[-1].variables: 1875 1897 return parent_docs[-1].variables[identifier] 1876 1898 1877 1899 # Globals (aka the containing module) 1878 1900 if isinstance(parent_docs[0], NamespaceDoc): 1879 if parent_docs[0].variables.has_key(identifier):1901 if identifier in parent_docs[0].variables: 1880 1902 return parent_docs[0].variables[identifier] 1881 1903 … … 1883 1905 builtins = epydoc.docintrospecter.introspect_docs(__builtin__) 1884 1906 if isinstance(builtins, NamespaceDoc): 1885 if builtins.variables.has_key(identifier):1907 if identifier in builtins.variables: 1886 1908 return builtins.variables[identifier] 1887 1909 -
vendor/epydoc/current/src/epydoc/docstringparser.py
r2127 r2133 5 5 # URL: <http://epydoc.sf.net> 6 6 # 7 # $Id: docstringparser.py 15 29 2007-02-18 12:34:08Z dvarrazzo $7 # $Id: docstringparser.py 1578 2007-03-10 00:10:33Z dvarrazzo $ 8 8 9 9 """ … … 219 219 # Parse ahead the __init__ docstring for this class 220 220 initvar = api_doc.variables.get('__init__') 221 if initvar and i nitvar.value not in (None, UNKNOWN):221 if initvar and isinstance(initvar.value, RoutineDoc): 222 222 init_api_doc = initvar.value 223 223 parse_docstring(init_api_doc, docindex) … … 268 268 269 269 def add_metadata_from_var(api_doc, field): 270 if not field.multivalue:271 for (f,a,d) in api_doc.metadata:272 if field == f:273 return # We already have a value for this metadata.274 270 for varname in field.varnames: 275 271 # Check if api_doc has a variable w/ the given name. 276 272 if varname not in api_doc.variables: continue 273 274 # Check moved here from before the for loop because we expect to 275 # reach rarely this point. The loop below is to be performed more than 276 # once only for fields with more than one varname, which currently is 277 # only 'author'. 278 for md in api_doc.metadata: 279 if field == md[0]: 280 return # We already have a value for this metadata. 281 277 282 var_doc = api_doc.variables[varname] 278 283 if var_doc.value is UNKNOWN: continue … … 508 513 construct summary descriptions for routines that have empty C{descr}, 509 514 but non-empty C{return_descr}.""" 515 RETURN_PDS._tree.children[0].attribs['inline'] = True 510 516 511 517 ###################################################################### -
vendor/epydoc/current/src/epydoc/docwriter/dotgraph.py
r2127 r2133 5 5 # URL: <http://epydoc.sf.net> 6 6 # 7 # $Id: dotgraph.py 15 10 2007-02-16 01:28:57Z dvarrazzo $7 # $Id: dotgraph.py 1567 2007-03-05 00:53:10Z dvarrazzo $ 8 8 9 9 """ … … 185 185 if caption: 186 186 s += '<span class="graph-caption">%s</span>' % caption 187 s += '\n </td></tr>\n</table><br />'187 s += '\n </td></tr>\n</table><br />' 188 188 if center: s += '</center>' 189 189 return s … … 865 865 - ``depth`` is the depth of the package tree (for coloring) 866 866 - ``width`` is the max width of the HTML label, roughly in
FiPy: A Finite Volume PDE Solver Using Python