summaryrefslogtreecommitdiff
path: root/bin/pychart/generate_docs.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/pychart/generate_docs.py')
-rw-r--r--bin/pychart/generate_docs.py125
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")