主にC拡張モジュールであるpycurlを文書化しようとしています。
この拡張モジュールには、C で記述されたいくつかのクラスがあります。それらにはメソッドがあります。メソッドには、docstring が定義されています。
>>> ヘルプ (pycurl.Curl().close) 組み込み関数のクローズに関するヘルプ: 近い(...) close() -> なし。ハンドルを閉じて curl セッションを終了します。
ただし、これらのメソッドはクラス自体では定義されていません。
>>> dir(pycurl.Curl) ['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', ' __le__'、'__lt__'、'__module__'、'__name__'、'__ne__'、'__new__'、'__reduce__'、'__reduce_ex__'、'__repr__'、'__self__'、'__setattr__'、'__sizeof__'、'__str__' 、「__サブクラスフック__」] >>> pycurl.Curl.close トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、 AttributeError: 'builtin_function_or_method' オブジェクトには属性 'close' がありません
その結果、automethod を使用してそれらを文書化しようとすると、sphinx はこれらのメソッドが存在しないと言います:
.. 自動メソッド:: pycurl.Curl.close curlobject.rst:13: 警告: autodoc: モジュール u'pycurl' からメソッド u'Curl.close' をインポートできませんでした。次の例外が発生しました。 トレースバック (最新の呼び出しが最後): ファイル "/usr/local/lib/python2.7/site-packages/Sphinx-1.2-py2.7.egg/sphinx/ext/autodoc.py"、342 行目、import_object 内 obj = self.get_attr(obj, part) ファイル "/usr/local/lib/python2.7/site-packages/Sphinx-1.2-py2.7.egg/sphinx/ext/autodoc.py"、241 行目、get_attr 内 return safe_getattr(obj, name, *defargs) ファイル "/usr/local/lib/python2.7/site-packages/Sphinx-1.2-py2.7.egg/sphinx/util/inspect.py"、114 行目、safe_getattr 内 AttributeError(名前)を上げる 属性エラー: 閉じる
C 拡張モジュールで定義されたメソッドから docstring を取得するように sphinx を取得するにはどうすればよいですか?