Используя SWIG для создания интерфейса Python для приложения C ++, есть ли способ заставить его комментировать функции в сгенерированном .py файл? Я на самом деле втягиваю весь файл .h в файл.i, но для небольшого примера:
%module example
bool do_something_interesting(int number, string text);
swig -python example.i
Генерирует:
...
def do_something_interesting(*args):
return _example.do_something_interesting(*args)
do_something_interesting = _example.do_something_interesting
В идеале , я бы хотел, чтобы он автоматически добавлял комментарий с исходной сигнатурой метода
#bool do_something_interesting(int number, string text)
def do_something_interesting(*args):
return _example.do_something_interesting(*args)
do_something_interesting = _example.do_something_interesting
Но я было бы идеально написать где-нибудь свой собственный комментарий (особенно, если бы комментарий каким-то образом мог быть в файле .h). Я подумал, что % pythonprepend
может быть возможным решением, но он вставляет код внутри определения функции, а не перед ним.
РЕДАКТИРОВАТЬ: Вот что я нашел в файле .h. Не самое красивое, но годится:
#ifdef SWIG
%pythonprepend do_something_interesting(int, string) %{
"""Do some interesting thing
number:Int -- a number
text:String -- some text
"""
%}
#endif
bool do_something_interesting(int number, string text);