Модули появляются, но не отображают функции в ReadTheDocs, без явных ошибок в Sphinx

Я работаю над документированием фрагмента кода с помощью ReadTheDocs (RTD). Вот репозиторий GitHub, который он создает, а ниже - текущее состояние веб-сайта:

Репо: https://github.com/GluonicPenguin/AutoDQM.

RTD: https://autodqm.readthedocs.io/en/latest/index.html < / а>

Я запустил сборку Sphinx локально и проверил сборку на RTD, и я не получаю никаких предупреждений или ошибок, но _ 1_ неправильно отображает список функций на RTD, т.е. списки функций не отображаются. У меня тоже была проблема с autodqm/compare_hists.py, и я обнаружил проблема заключалась в том, что у меня была строка import ROOT вверху (с другими строками импорта), которая, когда импорт вызывается через функцию ROOT (), по какой-то причине это устраняет проблему, и модуль autodqm/compare_hists.py правильно отображается на веб-сайте.

Я думал, что подобное исправление будет работать с autodqm/dqm.py, но в этом случае мне нужно определить вверху функции

def lxml():
    import lxml.html
    return lxml.html

def FuturesSession():
    from requests_futures.sessions import FuturesSession
    return FuturesSession

и мне нужно удалить класс DQMSession. По крайней мере, я могу думать, что RTD не любит обрабатывать функции импорта в форме import <package>.<subpackage>.

Я также заранее извиняюсь за все коммиты и расплывчатые / плохие сообщения о коммитах - я делал это исчерпывающе и разрабатывал это локально, а не на GitHub, поэтому мне пришлось продолжать настаивать, чтобы проверить это.

Есть ли причина, по которой текущая установка не работает? Есть ли другие проблемы, которые мне не хватает? Я никогда раньше не использовал Sphinx / RTD, так что я новичок, когда дело доходит до исправления подобных вещей. Причина, по которой я не хочу поддерживать описанное выше быстрое исправление с отдельными функциями импорта, заключается в том, что этот код должен быть эффективным, поскольку он предназначен для сканирования большого количества гистограмм для выполнения сравнения статистики, для которых в таком масштабе важна эффективность.


person GluonicPenguin    schedule 23.11.2020    source источник
comment
Проверьте необработанный журнал на наличие предупреждений. WARNING: autodoc: failed to import module 'dqm' from module 'autodqm'; the following exception was raised: No module named 'requests_futures'. Также убедитесь, что вы установили все требования и зависимости для вашего проекта от RTD.   -  person Steve Piercy    schedule 24.11.2020
comment
Привет, Стив, извините за поздний ответ, я не знал, что необработанный журнал доступен - это были именно те источники, которые мне нужны, исправление чуть ниже   -  person GluonicPenguin    schedule 25.11.2020


Ответы (1)


Основываясь на ответе Стива выше, я исправил проблему в AutoDQM RE, из-за которой не удалось импортировать модули, поэтому теперь все функции правильно отображаются на веб-сайте. Исправления были:

dqm.py - требования-фьючерсы и lxml теперь указаны в setup.py, которые устанавливаются через

install_requires = ['lxml == 4.5.2', 'requests-futures == 1.0.0']

compare_hists.py - импорт ROOT исправлен с использованием расширения autodoc_mock_imports из autodoc, поэтому в docs / conf.py есть строка autodoc_mock_imports = [ROOT]. Нам нужно подобное требование, потому что это пакет с зависимостями C, поэтому его нельзя установить, как другие.

Спасибо за вашу помощь!

person GluonicPenguin    schedule 25.11.2020