3

主に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 を取得するにはどうすればよいですか?

4

0 に答える 0