2009-07-30 6 views
1

pydocのwritedocs()関数でパッケージのサブディレクトリを作成する方法はありますか?たとえば、のは、私が文書に以下のモジュールとしましょう:)私はpydoc.writedocsを(実行するとpydocはサブディレクトリを生成できますか?

foo.py 
dir/bar.py 
dir/__init__.py 

を、私は、次のファイルを入手:

foo.html 
dir.bar.html 

私が取得したいと思います:

foo.html 
dir/bar.html 

これを行う方法はありますか?

答えて

1

pydoc.writedocsこれは、現在のディレクトリにファイルを書き込むように文書化(実装)されているwritedocをループするだけです。私が見ることができる唯一の方法は、変更されたバージョンを作成して(つまり、息を呑むように、それをモンキーにして)モジュールに入れるか、それともいくつかの重要な側面をモンキーにして、開く。具体的には、あなたのコードでは、あなたのような何かを行うことができます:

import pydoc 

def monkey_open(name, option): 
    if option == 'w' and name.endswith('.html'): 
    name_pieces = name.split('.') 
    name_pieces[-2:] = '.'.join(name_pieces[-2:]) 
    name = '/'.join(name_pieces) 
    return open(name, option) 

pydoc.open = monkey_open 

ないエレガントなまたは非常に堅牢なソリューションを、しかし「ニーズがなければなりません」... pydocはちょうど、あなたがやりたいことができるように設計されていませんだから、物事はちょっと「靴ひも」にする必要があります。

+0

よろしくお願いいたします。この場合、モジュールの動作をオーバーライドするだけでは不安にならないと思います。しかし、それは知って良いです! pythonはpydocの機能リクエストを受け取りますか?私は何とかリクエストを提出できると思いますか? –

+0

もちろん、フィーチャーリクエストをPythonトラッカーhttp://bugs.python.org/に提出することができます(IDとパスワードを取得するためにサイトに登録し、それ以上のものを取得するにはログインする必要があります) - トラッカーへのアクセスのみ)、そのような要求が既に入力されていないことをトラッカーが確認した後に行うほうがよい。 –

関連する問題