Может ли pydoc генерировать подкаталоги? - PullRequest
1 голос
/ 30 июля 2009

Есть ли способ получить функцию pydoc writedocs () для создания подкаталогов для пакетов? Например, допустим, у меня есть следующие модули для документирования:

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

Когда я запускаю pydoc.writedocs (), я получаю следующие файлы:

foo.html
dir.bar.html

Хотел бы получить:

foo.html
dir/bar.html

Есть ли способ сделать это?

1 Ответ

1 голос
/ 31 июля 2009

pydoc.writedocs просто повторяет вызов writedoc, который задокументирован (и реализован) для «записи файла в текущий каталог». Единственный выход, который я вижу, - это создание модифицированной версии и ее принудительное использование (т.е. вздох, обезьяна) в модуле, или обезличивание некоторого ключевого аспекта, а именно, где открывается open для записи запрашиваемых HTML-файлов. открыть. В частности, в вашем коде вы можете сделать что-то вроде:

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 просто не предназначен для того, чтобы позволить вам делать то, что вы хотите, поэтому его нужно немного "прижать".

...