diff options
author | Davies Liu <davies.liu@gmail.com> | 2014-09-16 12:51:58 -0700 |
---|---|---|
committer | Josh Rosen <joshrosen@apache.org> | 2014-09-16 12:51:58 -0700 |
commit | ec1adecbb72d291d7ef122fb0505bae53116e0e6 (patch) | |
tree | a61931ca6e78016fbaae5c4b75c97a35c47fde22 /python/docs/epytext.py | |
parent | a9e910430fb6bb4ef1f6ae20761c43b96bb018df (diff) | |
download | spark-ec1adecbb72d291d7ef122fb0505bae53116e0e6.tar.gz spark-ec1adecbb72d291d7ef122fb0505bae53116e0e6.tar.bz2 spark-ec1adecbb72d291d7ef122fb0505bae53116e0e6.zip |
[SPARK-3430] [PySpark] [Doc] generate PySpark API docs using Sphinx
Using Sphinx to generate API docs for PySpark.
requirement: Sphinx
```
$ cd python/docs/
$ make html
```
The generated API docs will be located at python/docs/_build/html/index.html
It can co-exists with those generated by Epydoc.
This is the first working version, after merging in, then we can continue to improve it and replace the epydoc finally.
Author: Davies Liu <davies.liu@gmail.com>
Closes #2292 from davies/sphinx and squashes the following commits:
425a3b1 [Davies Liu] cleanup
1573298 [Davies Liu] move docs to python/docs/
5fe3903 [Davies Liu] Merge branch 'master' into sphinx
9468ab0 [Davies Liu] fix makefile
b408f38 [Davies Liu] address all comments
e2ccb1b [Davies Liu] update name and version
9081ead [Davies Liu] generate PySpark API docs using Sphinx
Diffstat (limited to 'python/docs/epytext.py')
-rw-r--r-- | python/docs/epytext.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/python/docs/epytext.py b/python/docs/epytext.py new file mode 100644 index 0000000000..61d731bff5 --- /dev/null +++ b/python/docs/epytext.py @@ -0,0 +1,27 @@ +import re + +RULES = ( + (r"<[\w.]+>", r""), + (r"L{([\w.()]+)}", r":class:`\1`"), + (r"[LC]{(\w+\.\w+)\(\)}", r":func:`\1`"), + (r"C{([\w.()]+)}", r":class:`\1`"), + (r"[IBCM]{(.+)}", r"`\1`"), + ('pyspark.rdd.RDD', 'RDD'), +) + +def _convert_epytext(line): + """ + >>> _convert_epytext("L{A}") + :class:`A` + """ + line = line.replace('@', ':') + for p, sub in RULES: + line = re.sub(p, sub, line) + return line + +def _process_docstring(app, what, name, obj, options, lines): + for i in range(len(lines)): + lines[i] = _convert_epytext(lines[i]) + +def setup(app): + app.connect("autodoc-process-docstring", _process_docstring) |