--- Begin Message ---
Source: sphinx-argparse
Version: 0.2.5-1
Severity: important
Tags: patch
Control: affects -1 src:python-pyproj
Dear Maintainer,
As reported in #982698, python-pyproj FTBFS due to sphinx failing:
PYTHONPATH=/build/python-pyproj/.pybuild/cpython3_3.9_pyproj/build make -C
/build/python-pyproj/docs man
make[2]: Entering directory '/build/python-pyproj/docs'
Running Sphinx v3.4.3
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 33 added, 0 changed, 0 removed
reading sources... [ 3%] advanced_examples
reading sources... [ 6%] api/aoi
reading sources... [ 9%] api/crs/coordinate_operation
reading sources... [ 12%] api/crs/coordinate_system
reading sources... [ 15%] api/crs/crs
reading sources... [ 18%] api/crs/datum
reading sources... [ 21%] api/crs/enums
reading sources... [ 24%] api/crs/index
reading sources... [ 27%] api/database
reading sources... [ 30%] api/datadir
reading sources... [ 33%] api/enums
reading sources... [ 36%] api/exceptions
reading sources... [ 39%] api/geod
reading sources... [ 42%] api/global_context
reading sources... [ 45%] api/index
reading sources... [ 48%] api/list
reading sources... [ 51%] api/network
reading sources... [ 54%] api/proj
reading sources... [ 57%] api/show_versions
reading sources... [ 60%] api/sync
reading sources... [ 63%] api/transformer
reading sources... [ 66%] build_crs
reading sources... [ 69%] build_crs_cf
reading sources... [ 72%] cli
Exception occurred:
File "/usr/lib/python3/dist-packages/sphinxarg/parser.py", line 40, in
_try_add_parser_attribute
data[attribname] = attribval % {'prog': data['prog']}
KeyError: 'prog'
The full traceback has been saved in /tmp/sphinx-err-c2bpk2op.log, if you want
to report the issue to the developers.
Please also report this if it was a user error, so that a better error message
can be provided next time.
A bug report can be filed in the tracker at
<https://github.com/sphinx-doc/sphinx/issues>. Thanks!
The content of /tmp/sphinx-err-c2bpk2op.log:
# Sphinx version: 3.4.3
# Python version: 3.9.2 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.3
# Last messages:
# reading sources... [ 45%] api/index
# reading sources... [ 48%] api/list
# reading sources... [ 51%] api/network
# reading sources... [ 54%] api/proj
# reading sources... [ 57%] api/show_versions
# reading sources... [ 60%] api/sync
# reading sources... [ 63%] api/transformer
# reading sources... [ 66%] build_crs
# reading sources... [ 69%] build_crs_cf
# reading sources... [ 72%] cli
# Loaded extensions:
# sphinx.ext.mathjax (3.4.3) from
/usr/lib/python3/dist-packages/sphinx/ext/mathjax.py
# alabaster (0.7.8) from /usr/lib/python3/dist-packages/alabaster/__init__.py
# sphinx.ext.autodoc.type_comment (3.4.3) from
/usr/lib/python3/dist-packages/sphinx/ext/autodoc/type_comment.py
# sphinx.ext.autodoc (3.4.3) from
/usr/lib/python3/dist-packages/sphinx/ext/autodoc/__init__.py
# sphinx.ext.viewcode (3.4.3) from
/usr/lib/python3/dist-packages/sphinx/ext/viewcode.py
# sphinx.ext.napoleon (3.4.3) from
/usr/lib/python3/dist-packages/sphinx/ext/napoleon/__init__.py
# sphinx.ext.intersphinx (3.4.3) from
/usr/lib/python3/dist-packages/sphinx/ext/intersphinx.py
# sphinxarg.ext (unknown version) from
/usr/lib/python3/dist-packages/sphinxarg/ext.py
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sphinx/cmd/build.py", line 280, in
build_main
app.build(args.force_all, filenames)
File "/usr/lib/python3/dist-packages/sphinx/application.py", line 346, in
build
self.builder.build_update()
File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 293,
in build_update
self.build(['__all__'], to_build)
File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 310,
in build
updated_docnames = set(self.read())
File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 417,
in read
self._read_serial(docnames)
File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 438,
in _read_serial
self.read_doc(docname)
File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 478,
in read_doc
doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
File "/usr/lib/python3/dist-packages/sphinx/io.py", line 221, in read_doc
pub.publish()
File "/usr/lib/python3/dist-packages/docutils/core.py", line 217, in publish
self.document = self.reader.read(self.source, self.parser,
File "/usr/lib/python3/dist-packages/sphinx/io.py", line 126, in read
self.parse()
File "/usr/lib/python3/dist-packages/docutils/readers/__init__.py", line 77,
in parse
self.parser.parse(self.input, document)
File "/usr/lib/python3/dist-packages/sphinx/parsers.py", line 104, in parse
self.statemachine.run(inputlines, document, inliner=self.inliner)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
171, in run
results = StateMachineWS.run(self, input_lines, input_offset,
File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 241, in
run
context, next_state, result = self.check_line(
File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 459, in
check_line
return method(match, context, next_state)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
2770, in underline
self.section(title, source, style, lineno - 1, messages)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
328, in section
self.new_subsection(title, lineno, messages)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
394, in new_subsection
newabsoffset = self.nested_parse(
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
282, in nested_parse
state_machine.run(block, input_offset, memo=self.memo,
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
197, in run
results = StateMachineWS.run(self, input_lines, input_offset)
File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 241, in
run
context, next_state, result = self.check_line(
File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 459, in
check_line
return method(match, context, next_state)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
2343, in explicit_markup
nodelist, blank_finish = self.explicit_construct(match)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
2355, in explicit_construct
return method(self, expmatch)
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
2097, in directive
return self.run_directive(
File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line
2147, in run_directive
result = directive_instance.run()
File "/usr/lib/python3/dist-packages/sphinxarg/ext.py", line 467, in run
result = parse_parser(
File "/usr/lib/python3/dist-packages/sphinxarg/parser.py", line 95, in
parse_parser
parse_parser(subaction, subdata, **kwargs)
File "/usr/lib/python3/dist-packages/sphinxarg/parser.py", line 62, in
parse_parser
_try_add_parser_attribute(data, parser, 'description')
File "/usr/lib/python3/dist-packages/sphinxarg/parser.py", line 40, in
_try_add_parser_attribute
data[attribname] = attribval % {'prog': data['prog']}
KeyError: 'prog'
This change in pytest_prog_name_varies.patch is the cause:
--- sphinx-argparse.orig/sphinxarg/parser.py
+++ sphinx-argparse/sphinxarg/parser.py
@@ -37,7 +37,7 @@
if not isinstance(attribval, str):
return
if len(attribval) > 0:
- data[attribname] = attribval
+ data[attribname] = attribval % {'prog': data['prog']}
def _format_usage_without_prefix(parser):
Reverting this change fixes the issue.
If the change is required for other cases, something like the following may be
appropriate to fix the KeyError:
if 'prog' in data:
data[attribname] = attribval % {'prog': data['prog']}
else:
data[attribname] = attribval
Kind Regards,
Bas
--- End Message ---