Una soluzione un po 'sporca è quello di salvare la documentazione nei file ascii e caricarli in fase di esecuzione. Il documento f2py è hard coded in fase di compilazione e l'opzione per modificarlo nel wrapper non è disponibile finora (penso sarebbe bello!).
È possibile ad esempio scrivere un file __init__.py che carica il modulo compilato f2py _mymodule.so e sovrascrive o accoda le stringhe f2py __doc__. ">> mymodule.function?" in ipython funziona quindi, ma sorprendentemente ">> help (mymodule.function)" no! (non so perché ...)
Il seguente frammento di __init__.py prende la documentazione che è archiviata in cartella doc/e file doc/"nome funzione". doc che sono associati a ciascuna funzione. In questo caso la documentazione è sempre caricata ma è anche possibile caricarla manualmente.
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 *
Non vedo perché questa domanda stia ottenendo downvotes e voti da chiudere. Come personalizzare la docstring di una funzione generata da f2py suona come una buona domanda per me. –
Non vedo né il motivo per cui vogliono chiudere questa domanda. Può il prossimo scrivere un commento da spiegare? – Sigmun