Как я могу перенаправить предупреждения Sphinx в stdout, но хранить ошибки в stderr - PullRequest
0 голосов
/ 11 июня 2018

В сборке Sphinx все предупреждения и ошибки записываются в stderr.Однако мне нужны только ошибки, записанные в stderr, и предупреждения, написанные в stdout.

Можно ли как-нибудь этого добиться?

1 Ответ

0 голосов
/ 11 июня 2018

Это нельзя изменить, пока вы не загрузите sphinx как пакет и не исправите его оборудование:

sphinx\cmdline.py:

<...>
def main(argv=sys.argv[1:]):
<...>
    status = sys.stdout
    warning = sys.stderr
    error = sys.stderr

    if args.quiet:
        status = None

    if args.really_quiet:
        status = warning = None

    if warning and args.warnfile:
        try:
            warnfp = open(args.warnfile, 'w')
        <...>
        warning = Tee(warning, warnfp)  # type: ignore
        error = warning

    <...>
        with patch_docutils(), docutils_namespace():
            app = Sphinx(srcdir, confdir, outdir, doctreedir, args.builder,
                         confoverrides, status, warning, args.freshenv,
                         args.warningiserror, args.tags, args.verbosity, args.jobs)
            app.build(args.force_all, filenames)
            return app.statuscode

Как видите, Sphinxдаже не имеет отдельного аргумента конструктора для ошибок и предупреждений.

...