Eolian: Add text replacements for docstrings

This commit is contained in:
Kai Huuhko 2014-06-17 12:41:42 +03:00
parent 7e4838fe5b
commit 5bd82c2883
1 changed files with 35 additions and 15 deletions

View File

@ -26,6 +26,21 @@ eolian.init()
DOCSTRINGS_ENABLED = True
import re
docstring_replacements = (
(re.compile(r"@brief "), r""),
(re.compile(r"@ingroup .+", re.S), r""),
(re.compile(r"@see (.+)(?!@)"), r":see: \1"),
(re.compile(r"@return "), r":return: "),
(re.compile(r"@(note|warning) "), r".. \1:: "),
(re.compile(r"@(p|c) (\w+)"), r"``\2``"),
(re.compile(r"@(b) (\w+)"), r"**\2**"),
(re.compile(r"@(i) (\w+)"), r"*\2*"),
(re.compile(r"EINA_TRUE"), r"True"),
(re.compile(r"EINA_FALSE"), r"False"),
(re.compile(r"NULL"), r"None"),
)
complex_types = (
"Eina_List"
)
@ -91,23 +106,18 @@ class Generator(object):
else:
self.write('"""')
for docs in docstrings:
if docs.startswith("- "):
if docs.startswith("- ") or \
docs.startswith(".. ") or \
docs.startswith(":"):
self.write(
docs, wrapped=True,
#i_ind=self.level * self.tab + "- ",
s_ind=self.level * self.tab + " "
)
elif docs.startswith(" - "):
self.write(
docs, wrapped=True,
#i_ind=self.level * self.tab + " - ",
s_ind=self.level * self.tab + " "
)
elif docs.startswith(":"):
self.write(
docs, wrapped=True,
s_ind=self.level * self.tab + " "
)
else:
self.write(docs, wrapped=True)
self.write('"""')
@ -179,8 +189,11 @@ class Method(object):
if func_desc:
func_desc = func_desc.split("\n\n")
for desc in func_desc:
self.docs.append(desc)
self.docs.append("")
for pat, repl in docstring_replacements:
desc = pat.sub(repl, desc)
if desc:
self.docs.append(desc)
self.docs.append("")
for p in func.parameters_list:
pdir, ptype, name, desc = p.information
@ -302,8 +315,11 @@ class Property(object):
if func_desc:
func_desc = func_desc.split("\n\n")
for desc in func_desc:
self.docs.append(desc)
self.docs.append("")
for pat, repl in docstring_replacements:
desc = pat.sub(repl, desc)
if desc:
self.docs.append(desc)
self.docs.append("")
self.getter = None
self.setter = None
@ -437,9 +453,13 @@ class Class(object):
desc = self.cls.description
if desc:
desc = desc.replace("\n", " ").strip()
self.docs.append(desc)
self.docs.append("")
desc = desc.split("\n\n")
for d in desc:
for pat, repl in docstring_replacements:
d = pat.sub(repl, d)
if d:
self.docs.append(d)
self.docs.append("")
for k, v in (
type(self.cls).__dict__.items()