[英]How to document fortran function for f2py?
我想使用docstring或類似的東西來記錄我的fortran例程,這些例程可以與python help命令一起使用。 f2py生成的自動生成的docstring遠遠不夠,我需要以與python函數docstring相同的方式添加更多詳細信息。
以我的想法,它應該看起來像:
mymod.f:
subroutine foo()
! This is my function
end subroutine
並在python會話中:
>>> import mymod
>>> help(mymod.foo)
一種較臟的解決方案是將文檔保存在ascii文件中,並在運行時加載它們。 f2py doc在編譯時進行了硬編碼,到目前為止,我認為尚無法在包裝器中對其進行修改(這很好!)。
例如,您可以編寫一個__init__.py文件,該文件加載f2py編譯模塊_mymodule.so並覆蓋或附加到f2py __doc__字符串。 “ >> mymodule.function?” 然后在ipython中工作,但令人驚訝的是“ >> help(mymodule.function)”不能! (不知道為什么...)
以下__init__.py片段摘錄了存儲在文件夾doc /中的文檔以及與每個功能相關聯的文件doc /“ function name” .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 *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.