diff options
| author | pinky <> | 2006-12-07 13:41:40 +0000 |
|---|---|---|
| committer | pinky <> | 2006-12-07 13:41:40 +0000 |
| commit | 004a0b996ff8f269451e07346f71a129a1f3fbaf (patch) | |
| tree | 48f43c1fc2ca4c1f4d5648e7e73553d3f4ccae06 /bin/pychart/generate_docs.py | |
New trunk
bzr revid: pinky-3f10ee12cea3c4c75cef44ab04ad33ef47432907
Diffstat (limited to 'bin/pychart/generate_docs.py')
| -rw-r--r-- | bin/pychart/generate_docs.py | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/bin/pychart/generate_docs.py b/bin/pychart/generate_docs.py new file mode 100644 index 00000000000..9e0461249a2 --- /dev/null +++ b/bin/pychart/generate_docs.py @@ -0,0 +1,125 @@ +# +# Copyright (C) 2000-2005 by Yasushi Saito (yasushi.saito@gmail.com) +# +# Jockey is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any +# later version. +# +# Jockey is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +import string +import doc_support +import sys +import re +import os + +import area +import arrow +import axis +import bar_plot +import line_plot +import pie_plot +import color +import error_bar +import fill_style +import font +import text_box +import line_style +import legend +import range_plot +import tick_mark + +indent = 4 +max_line_len = 64 + +def format_paragraph(fp, str): + line_len = indent + fp.write(" " * indent) + for word in str.split(): + if line_len >= max_line_len: + fp.write("\n") + fp.write(" " * indent) + line_len = indent + fp.write(word + " ") + line_len += len(word) + 1 + +def format_string(fp, str): + str = re.sub("<<([^>]+)>>", "See also pychart.\\1", str) + + str2 = "" + in_example = 0 + for l in str.split("\n"): + if re.match("@example", l): + in_example = 1 + if re.match("@end example", l): + in_example = 0 + if in_example: + str2 += l + else: + l = re.sub("^[ \t]*", "", l) + str2 += l + str2 += "\n" + fname = os.tempnam() + out_fp = open(fname, "w") + out_fp.write(str2) + out_fp.close() + + in_fp = os.popen("makeinfo --fill-column=64 --no-headers " + fname, "r") + for l in in_fp.readlines(): + fp.write(" " * indent) + fp.write(l) + in_fp.close() + os.remove(fname) + +def generate_doc(c, name, suffix="", append = 0): + if append: + fp = open(name + "_doc.py", "a+") + else: + fp = open(name + "_doc.py", "w") + fp.write("# automatically generated by generate_docs.py.\n") + + fp.write("doc" + suffix + "=\"\"\"Attributes supported by this class are:\n") + for key in c.keys.keys(): + val=c.keys[key] + desc = "" + defaultValDesc = None + if len(val) > 3: + desc = val[3] + if len(val) > 4: + defaultValDesc = val[4] + + fp.write(key + "(type:" + doc_support.stringify_type(val[0])) + if defaultValDesc: + fp.write(") default:" + defaultValDesc) + else: + fp.write(") default=" + str(doc_support.stringify_value(val[2])) + ".\n") + format_string(fp, desc) + fp.write("\"\"\"\n\n") + fp.close() + + +generate_doc(arrow.T, "arrow") +generate_doc(area.T, "area") +generate_doc(axis.X, "axis", "_x") +generate_doc(axis.Y, "axis", "_y", 1) +generate_doc(bar_plot.T, "bar_plot") +generate_doc(line_plot.T, "line_plot") +generate_doc(pie_plot.T, "pie_plot") +generate_doc(color.T, "color") +generate_doc(error_bar.error_bar1, "error_bar","_1") +generate_doc(error_bar.error_bar2, "error_bar", "_2", 1) +generate_doc(error_bar.error_bar3, "error_bar", "_3", 1) +generate_doc(error_bar.error_bar4, "error_bar", "_4", 1) +generate_doc(error_bar.error_bar5, "error_bar", "_5", 1) +generate_doc(error_bar.error_bar6, "error_bar", "_6", 1) +generate_doc(fill_style.T, "fill_style") +generate_doc(text_box.T, "text_box") +generate_doc(range_plot.T, "range_plot") +generate_doc(legend.T, "legend") +generate_doc(legend.Entry, "legend", "_entry", 1) +generate_doc(line_style.T, "line_style") +generate_doc(tick_mark.T, "tick_mark") |
