Ответ 1
Несколько грязное решение - сохранить документацию в файлах ascii и загрузить их во время выполнения. Документ f2py жестко закодирован во время компиляции, и возможность изменить его в обертке пока недоступна (это было бы неплохо!).
Например, вы можете написать файл __init__.py, который загружает скомпилированный модуль f2py _mymodule.so и перезаписывает или присоединяется к строкам f2py __doc__. " → mymodule.function?" в ipython работает тогда, но удивительно " → help (mymodule.function)" не делает! (не знаю, почему...)
Следующий фрагмент файла __init__.py содержит документацию, которая хранится в папке doc/и файле doc/ "имя функции".doc, которые связаны с каждой функцией. В этом случае документация всегда загружается, но вы также можете загрузить ее вручную.
def load_documentation():
"""
Fills the modules __doc__ strings
"""
import os
from . import _mymodule
print('loading documentation')
docfolder = os.path.abspath(os.path.join(os.path.dirname(__file__), 'doc'))
for name,func in _mymodule.__dict__.items():
if callable(func):
try:
path = os.path.join(docfolder,name.lower()+'.doc')
docfile = open(path)
doc = docfile.read()
docfile.close()
func.__doc__ = doc
except IOError as msg:
print(msg)
load_documentation()
from _mymodule import *