pydocのwritedocs()関数を取得してパッケージのサブディレクトリを作成する方法はありますか?たとえば、次のモジュールを文書化するとします。
foo.py
dir/bar.py
dir/__init__.py
pydoc.writedocs()を実行すると、次のファイルが表示されます。
foo.html
dir.bar.html
取得したい:
foo.html
dir/bar.html
これを行う方法はありますか?
pydoc.writedocs
writedoc
「現在のディレクトリにファイルを書き込む」ために文書化(および実装)されている呼び出しをループするだけです。私が見ることができる唯一の方法は、変更されたバージョンを作成し、それをモジュールに強制する (つまり、ため息、モンキーパッチを適用する) か、その重要な側面、つまり要求された HTML ファイルを書き込むために 'open' が開く場所をモンキーパッチすることです。開く。具体的には、コードで次のようなことができます。
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 は、必要なことを実行できるように設計されていないため、少し「靴べら」にする必要があります。