Merge pull request #119 from SylvainCorlay/docstring

Signature formatting for sphinx
This commit is contained in:
Wenzel Jakob 2016-03-09 16:37:44 +01:00
commit eb5277b38e
2 changed files with 12 additions and 5 deletions

View File

@ -1,22 +1,22 @@
Help on built-in function kw_func in module example Help on built-in function kw_func in module example
kkww__ffuunncc(...) kkww__ffuunncc(...)
Signature : (x : int, y : int) -> NoneType kw_func(x : int, y : int) -> NoneType
Help on built-in function kw_func2 in module example Help on built-in function kw_func2 in module example
kkww__ffuunncc22(...) kkww__ffuunncc22(...)
Signature : (x : int = 100L, y : int = 200L) -> NoneType kw_func2(x : int = 100L, y : int = 200L) -> NoneType
Help on built-in function kw_func3 in module example Help on built-in function kw_func3 in module example
kkww__ffuunncc33(...) kkww__ffuunncc33(...)
Signature : (data : unicode = u'Hello world!') -> NoneType kw_func3(data : unicode = u'Hello world!') -> NoneType
Help on built-in function kw_func4 in module example Help on built-in function kw_func4 in module example
kkww__ffuunncc44(...) kkww__ffuunncc44(...)
Signature : (myList : list<int> = [13L, 17L]) -> NoneType kw_func4(myList : list<int> = [13L, 17L]) -> NoneType
kw_func(x=5, y=10) kw_func(x=5, y=10)
kw_func(x=5, y=10) kw_func(x=5, y=10)

View File

@ -295,10 +295,17 @@ protected:
int index = 0; int index = 0;
/* Create a nice pydoc rec including all signatures and /* Create a nice pydoc rec including all signatures and
docstrings of the functions in the overload chain */ docstrings of the functions in the overload chain */
if (chain) {
// First a generic signature
signatures += rec->name;
signatures += "(*args, **kwargs)\n";
signatures += "Overloaded function.\n\n";
}
// Then specific overload signatures
for (auto it = chain_start; it != nullptr; it = it->next) { for (auto it = chain_start; it != nullptr; it = it->next) {
if (chain) if (chain)
signatures += std::to_string(++index) + ". "; signatures += std::to_string(++index) + ". ";
signatures += "Signature : "; signatures += rec->name;
signatures += it->signature; signatures += it->signature;
signatures += "\n"; signatures += "\n";
if (it->doc && strlen(it->doc) > 0) { if (it->doc && strlen(it->doc) > 0) {