mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2026-08-03 09:53:01 -05:00
Refactor: all of warnfuncs bypasses kwargs to Sphinx.warn()
This commit is contained in:
@@ -260,12 +260,12 @@ class Builder(object):
|
||||
|
||||
# while reading, collect all warnings from docutils
|
||||
warnings = []
|
||||
self.env.set_warnfunc(lambda *args: warnings.append(args))
|
||||
self.env.set_warnfunc(lambda *args, **kwargs: warnings.append((args, kwargs)))
|
||||
updated_docnames = set(self.env.update(self.config, self.srcdir,
|
||||
self.doctreedir, self.app))
|
||||
self.env.set_warnfunc(self.warn)
|
||||
for warning in warnings:
|
||||
self.warn(*warning)
|
||||
for warning, kwargs in warnings:
|
||||
self.warn(*warning, **kwargs)
|
||||
|
||||
doccount = len(updated_docnames)
|
||||
self.info(bold('looking for now-outdated files... '), nonl=1)
|
||||
@@ -350,7 +350,7 @@ class Builder(object):
|
||||
self.info('done')
|
||||
|
||||
warnings = []
|
||||
self.env.set_warnfunc(lambda *args: warnings.append(args))
|
||||
self.env.set_warnfunc(lambda *args, **kwargs: warnings.append((args, kwargs)))
|
||||
if self.parallel_ok:
|
||||
# number of subprocesses is parallel-1 because the main process
|
||||
# is busy loading doctrees and doing write_doc_serialized()
|
||||
@@ -366,13 +366,16 @@ class Builder(object):
|
||||
doctree = self.env.get_and_resolve_doctree(docname, self)
|
||||
self.write_doc_serialized(docname, doctree)
|
||||
self.write_doc(docname, doctree)
|
||||
for warning in warnings:
|
||||
self.warn(*warning)
|
||||
for warning, kwargs in warnings:
|
||||
self.warn(*warning, **kwargs)
|
||||
|
||||
def _write_parallel(self, docnames, warnings, nproc):
|
||||
def write_process(docs):
|
||||
local_warnings = []
|
||||
self.env.set_warnfunc(lambda *args: local_warnings.append(args))
|
||||
|
||||
def warnfunc(*args, **kwargs):
|
||||
local_warnings.append((args, kwargs))
|
||||
self.env.set_warnfunc(warnfunc)
|
||||
for docname, doctree in docs:
|
||||
self.write_doc(docname, doctree)
|
||||
return local_warnings
|
||||
@@ -402,8 +405,8 @@ class Builder(object):
|
||||
self.info(bold('waiting for workers...'))
|
||||
tasks.join()
|
||||
|
||||
for warning in warnings:
|
||||
self.warn(*warning)
|
||||
for warning, kwargs in warnings:
|
||||
self.warn(*warning, **kwargs)
|
||||
|
||||
def prepare_writing(self, docnames):
|
||||
"""A place where you can add logic before :meth:`write_doc` is run"""
|
||||
|
||||
@@ -242,7 +242,7 @@ class BuildEnvironment:
|
||||
self.versioning_condition = condition
|
||||
self.versioning_compare = compare
|
||||
|
||||
def warn(self, docname, msg, lineno=None):
|
||||
def warn(self, docname, msg, lineno=None, **kwargs):
|
||||
"""Emit a warning.
|
||||
|
||||
This differs from using ``app.warn()`` in that the warning may not
|
||||
@@ -250,11 +250,11 @@ class BuildEnvironment:
|
||||
the update of the environment.
|
||||
"""
|
||||
# strange argument order is due to backwards compatibility
|
||||
self._warnfunc(msg, (docname, lineno))
|
||||
self._warnfunc(msg, (docname, lineno), **kwargs)
|
||||
|
||||
def warn_node(self, msg, node):
|
||||
def warn_node(self, msg, node, **kwargs):
|
||||
"""Like :meth:`warn`, but with source information taken from *node*."""
|
||||
self._warnfunc(msg, '%s:%s' % get_source_line(node))
|
||||
self._warnfunc(msg, '%s:%s' % get_source_line(node), **kwargs)
|
||||
|
||||
def clear_doc(self, docname):
|
||||
"""Remove all traces of a source file in the inventory."""
|
||||
@@ -576,7 +576,7 @@ class BuildEnvironment:
|
||||
def read_process(docs):
|
||||
self.app = app
|
||||
self.warnings = []
|
||||
self.set_warnfunc(lambda *args: self.warnings.append(args))
|
||||
self.set_warnfunc(lambda *args, **kwargs: self.warnings.append((args, kwargs)))
|
||||
for docname in docs:
|
||||
self.read_doc(docname, app)
|
||||
# allow pickling self to send it back
|
||||
@@ -603,8 +603,8 @@ class BuildEnvironment:
|
||||
app.info(bold('waiting for workers...'))
|
||||
tasks.join()
|
||||
|
||||
for warning in warnings:
|
||||
self._warnfunc(*warning)
|
||||
for warning, kwargs in warnings:
|
||||
self._warnfunc(*warning, **kwargs)
|
||||
|
||||
def check_dependents(self, already):
|
||||
to_rewrite = self.assign_section_numbers() + self.assign_figure_numbers()
|
||||
|
||||
Reference in New Issue
Block a user