0

Zope 2 製品の文書化に Sphinx を使用したいのですが、モジュール内の docstring から情報を引き出す autodoc 機能も使用するとよいでしょう。現在 Zope では、残念ながら docstring を使用して、メソッドを http-requests 経由でアクセスできるように指定しています。したがって、http 経由でアクセスできないすべてのメソッドには、docstring がありません。

Zope ではなく Sphinx によって認識されるように docstring を記述する方法はありますか?

または: Zope docstring の動作を変更する方法はありますか?

4

1 に答える 1

2

私はそれを行う3つの方法を見ることができますが、重機に頼ることを除いて、どれも(なし:-)まさにあなたが望むものではありません.

  1. で始まるメソッド_は公開されていないため、実行しても問題ない場合があります。

    class MyClass:
    
      def _method(self):
        "I have a docstring, but I won't be published"
        return 'done'
    
  2. 役割を設定できますACCESS_PRIVATE

    from AccessControl.SecurityInfo import ACCESS_PRIVATE
    
    class MyClass:
    
        myMethod__roles__ = ACCESS_PRIVATE
        def myMethod(self):
        "I look like I'm published, but I'm not"
            return 'done'
    

    私の意見では、あなたが達成したいことに最も近いですが、動作がdocstringの欠落とは異なることに注意してください.docstringがないときにメソッドが呼び出された場合、結果はNotFound例外ですが、そのACCESS_PRIVATE場合、結果無許可の例外です。

  3. 独自のIBrowserPublisher. デフォルトの実装はDefaultPublishTraverseにありZPublisher/BaseRequest.pyます。次に、それをコピーして独自のものを作成し、公開用に docstring 以外のフラグを使用するように微調整する必要があります。

于 2013-09-19T20:23:33.153 に答える