Am 23.10.2020 um 14:49 hat Markus Armbruster geschrieben:
> In addition to that, I get
>
> /usr/bin/sphinx-build-3 -Dversion=5.1.50 -Drelease=
> -Ddepfile=docs/interop.d -Ddepfile_stamp=docs/interop.stamp -b html -d
> /work/armbru/qemu/bld-x86/docs/interop.p /work/armbru/qemu/docs/interop
> /work/armbru/qemu/bld-x86/docs/interop
> Running Sphinx v2.2.2
> building [mo]: targets for 0 po files that are out of date
> building [html]: targets for 12 source files that are out of date
> updating environment: [new config] 12 added, 0 changed, 0 removed
> reading sources... [ 8%] bitmaps
> reading sources... [ 16%] dbus
> reading sources... [ 25%] dbus-vmstate
> reading sources... [ 33%] index
> reading sources... [ 41%] live-block-operations
> reading sources... [ 50%] pr-helper
> reading sources... [ 58%] qemu-ga
> reading sources... [ 66%] qemu-ga-ref
> reading sources... [ 75%] qemu-qmp-ref
>
> Exception occurred:
> File "/work/armbru/qemu/docs/sphinx/qapidoc.py", line 187, in
> _nodes_for_members
> assert not v.type.base and not v.type.variants
> AttributeError: 'QAPISchemaBuiltinType' object has no attribute 'base'
FWIW, when I install sphinx on F33 (sphinx-build 3.2.1), master doesn't
even build for me, so I uninstalled it again for now...
But the fix is the following, I'll include it in v2.
Kevin
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index e03abcbb95..75f6721e29 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -183,12 +183,14 @@ class QAPISchemaGenRSTVisitor(QAPISchemaVisitor):
if variants:
for v in variants.variants:
- if v.type.is_implicit():
- assert not v.type.base and not v.type.variants
- for m in v.type.local_members:
- term = self._nodes_for_one_member(m)
- term.extend(self._nodes_for_variant_when(variants, v))
- dlnode += self._make_dlitem(term, None)
+ if v.wrapped:
+ term = [nodes.literal('', 'data'),
+ nodes.Text(': '),
+ nodes.literal('', v.type.doc_type())]
+ term.extend(self._nodes_for_variant_when(variants, v))
+ dlnode += self._make_dlitem(term, None)
+ elif v.type.is_implicit():
+ assert v.type.name == 'q_empty'
else:
term = [nodes.Text('The members of '),
nodes.literal('', v.type.doc_type())]