1

pydocのwritedocs()関数を取得してパッケージのサブディレクトリを作成する方法はありますか?たとえば、次のモジュールを文書化するとします。

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

pydoc.writedocs()を実行すると、次のファイルが表示されます。

foo.html
dir.bar.html

取得したい:

foo.html
dir/bar.html

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

4

1 に答える 1

1

pydoc.writedocswritedoc「現在のディレクトリにファイルを書き込む」ために文書化(および実装)されている呼び出しをループするだけです。私が見ることができる唯一の方法は、変更されたバージョンを作成し、それをモジュールに強制する (つまり、ため息、モンキーパッチを適用する) か、その重要な側面、つまり要求された 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 は、必要なことを実行できるように設計されていないため、少し「靴べら」にする必要があります。

于 2009-07-30T20:55:50.023 に答える