Повышаю. Python поддерживает определяемые пользователем докстринги с автоматическим добавлением сигнатур C++. Эти функции включены по умолчанию. Класс docstring_options доступен для выборочного подавления определяемых пользователем докстрингов, подписей или обоих.
Контролирует появление докстрингов обернутых функций и членских функций на протяжении всей жизни экземпляра. Эти случаи не поддаются копированию, чтобы исключить возможность неожиданных побочных эффектов.
Конструирует объект docstring_options, который контролирует внешний вид функции и докстрингов функции-члена, определенных в следующем коде. Если show_all соответствует действительности, отображаются как определяемые пользователем докстринги, так и автоматически генерируемые подписи Python и C++. Если show_all является ложным, атрибуты _doc__ являются Никто.
Конструирует объект docstring_options, который контролирует внешний вид функции и докстрингов функции-члена, определенных в следующем коде. Iff show_user_defined является true, показаны определяемые пользователем докстринги. Iff show_signatures является true, автоматически добавляются подписи Python и C++. Если оба show_user_defined и show_signatures являются фальсифицированными, атрибуты _doc__ являются None.
Конструирует объект docstring_options, который контролирует внешний вид функции и докстрингов функции-члена, определенных в следующем коде. Iff show_user_defined является true, показаны определяемые пользователем докстринги. Iff show_py_signaturestrue, подписи Python автоматически добавляются. Iff show_cpp_signatures соответствует действительности, подписи C++ добавляются автоматически. Если все параметры фальсифицированы, атрибуты _doc__ являются Никто.
Восстанавливает предыдущее состояние вариантов докстринга. В частности, если экземпляры docstring_options находятся в вложенных C++-областях, параметры, эффективные в прилагающемся объеме, восстанавливаются. Если последний экземпляр docstring_options выходит из области действия, настройки по умолчанию «все включено» восстанавливаются.
Эти функции динамически изменяют внешний вид докстрингов в коде, который следует. *_user_defined() и *_signatures() Функции-члены предусмотрены для мелкозернистого управления. Функции *_all() являются удобными ярлыками для одновременного управления всеми настройками.
#include<boost/python/module.hpp>#include<boost/python/def.hpp>#include<boost/python/args.hpp>#include<boost/python/docstring_options.hpp>intfoo1(inti){returni;}intfoo2(longl){returnstatic_cast<int>(l);}intbar1(inti){returni;}intbar2(longl){returnstatic_cast<int>(l);}namespace{voidwrap_foos(){usingnamespaceboost::python;// no docstring_options here// -> settings from outer C++ scope are in effectdef("foo1",foo1,arg("i"),"foo1 doc");def("foo2",foo2,arg("l"),"foo2 doc");}voidwrap_bars(){usingnamespaceboost::python;boolshow_user_defined=true;boolshow_signatures=false;docstring_optionsdoc_options(show_user_defined,show_signatures);def("bar1",bar1,arg("i"),"bar1 doc");def("bar2",bar2,arg("l"),"bar2 doc");}}BOOST_PYTHON_MODULE(demo){boost::python::docstring_optionsdoc_options(false);wrap_foos();wrap_bars();}
Статья boost/python/docstring_options.hpp раздела Boost.Python Reference Manual Chapter 2. High Level Components может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.