Message ID | 20171002141341.24616-10-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | qapi: Cleanups around qapi2texi | expand |
On Mon, Oct 2, 2017 at 4:13 PM, Markus Armbruster <armbru@redhat.com> wrote: > Use a string instead of a list of strings. While there, generate > fewer superfluous blank lines. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > scripts/qapi2texi.py | 33 ++++++++++++++++----------------- > tests/qapi-schema/doc-good.texi | 10 ---------- > 2 files changed, 16 insertions(+), 27 deletions(-) > > diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py > index 379d27643d..58add26c11 100755 > --- a/scripts/qapi2texi.py > +++ b/scripts/qapi2texi.py > @@ -13,7 +13,6 @@ MSG_FMT = """ > @deftypefn {type} {{}} {name} > > {body} > - > @end deftypefn > > """.format > @@ -22,7 +21,6 @@ TYPE_FMT = """ > @deftp {{{type}}} {name} > > {body} > - > @end deftp > > """.format > @@ -74,7 +72,7 @@ def texi_format(doc): > - 1. or 1): generates an @enumerate @item > - */-: generates an @itemize list > """ > - lines = [] > + ret = '' > doc = subst_braces(doc) > doc = subst_vars(doc) > doc = subst_emph(doc) > @@ -100,32 +98,32 @@ def texi_format(doc): > line = '@subsection ' + line[3:] > elif re.match(r'^([0-9]*\.) ', line): > if not inlist: > - lines.append('@enumerate') > + ret += '@enumerate\n' > inlist = 'enumerate' > + ret += '@item\n' > line = line[line.find(' ')+1:] > - lines.append('@item') > elif re.match(r'^[*-] ', line): > if not inlist: > - lines.append('@itemize %s' % {'*': '@bullet', > - '-': '@minus'}[line[0]]) > + ret += '@itemize %s\n' % {'*': '@bullet', > + '-': '@minus'}[line[0]] > inlist = 'itemize' > - lines.append('@item') > + ret += '@item\n' > line = line[2:] > elif lastempty and inlist: > - lines.append('@end %s\n' % inlist) > + ret += '@end %s\n\n' % inlist > inlist = '' > > lastempty = empty > - lines.append(line) > + ret += line + '\n' > > if inlist: > - lines.append('@end %s\n' % inlist) > - return '\n'.join(lines) > + ret += '@end %s\n\n' % inlist > + return ret > > > def texi_body(doc): > """Format the main documentation body""" > - return texi_format(doc.body.text) + '\n' > + return texi_format(doc.body.text) > > > def texi_enum_value(value): > @@ -154,10 +152,11 @@ def texi_members(doc, what, base, variants, member_func): > elif (variants and variants.tag_member == section.member > and not section.member.type.doc_type()): > values = section.member.type.member_names() > - desc = 'One of ' + ', '.join(['@t{"%s"}' % v for v in values]) > + members_text = ', '.join(['@t{"%s"}' % v for v in values]) > + desc = 'One of ' + members_text + '\n' > else: > - desc = 'Not documented' > - items += member_func(section.member) + desc + '\n' > + desc = 'Not documented\n' > + items += member_func(section.member) + desc > if base: > items += '@item The members of @code{%s}\n' % base.doc_type() > if variants: > @@ -182,7 +181,7 @@ def texi_sections(doc): > for section in doc.sections: > if section.name: > # prefer @b over @strong, so txt doesn't translate it to *Foo:* > - body += '\n\n@b{%s:}\n' % section.name > + body += '\n@b{%s:}\n' % section.name > if section.name and section.name.startswith('Example'): > body += texi_example(section.text) > else: > diff --git a/tests/qapi-schema/doc-good.texi b/tests/qapi-schema/doc-good.texi > index c032f23fc1..1778312581 100644 > --- a/tests/qapi-schema/doc-good.texi > +++ b/tests/qapi-schema/doc-good.texi > @@ -101,7 +101,6 @@ Not documented > the first member > @end table > > - > @end deftp > > > @@ -118,7 +117,6 @@ Another paragraph (but no @code{var}: line) > Not documented > @end table > > - > @end deftp > > > @@ -127,7 +125,6 @@ Not documented > > > > - > @end deftp > > > @@ -143,7 +140,6 @@ Not documented > @item The members of @code{Variant2} when @code{base1} is @t{"two"} > @end table > > - > @end deftp > > > @@ -160,7 +156,6 @@ One of @t{"one"}, @t{"two"} > @item @code{data: Variant2} when @code{type} is @t{"two"} > @end table > > - > @end deftp > > > @@ -182,7 +177,6 @@ argument > Not documented > @end table > > - > @b{Note:} > @code{arg3} is undocumented > > @@ -209,14 +203,12 @@ Duis aute irure dolor > <- out > @end example > > - > @b{Examples:} > @example > - *verbatim* > - @{braces@} > @end example > > - > @b{Since:} > 2.10 > > @@ -230,7 +222,6 @@ If you're bored enough to read this, go see a video of boxed cats > > @b{Arguments:} the members of @code{Object} > > - > @b{Example:} > @example > -> in > @@ -238,7 +229,6 @@ If you're bored enough to read this, go see a video of boxed cats > <- out > @end example > > - > @end deftypefn > > > -- > 2.13.6 > >
diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py index 379d27643d..58add26c11 100755 --- a/scripts/qapi2texi.py +++ b/scripts/qapi2texi.py @@ -13,7 +13,6 @@ MSG_FMT = """ @deftypefn {type} {{}} {name} {body} - @end deftypefn """.format @@ -22,7 +21,6 @@ TYPE_FMT = """ @deftp {{{type}}} {name} {body} - @end deftp """.format @@ -74,7 +72,7 @@ def texi_format(doc): - 1. or 1): generates an @enumerate @item - */-: generates an @itemize list """ - lines = [] + ret = '' doc = subst_braces(doc) doc = subst_vars(doc) doc = subst_emph(doc) @@ -100,32 +98,32 @@ def texi_format(doc): line = '@subsection ' + line[3:] elif re.match(r'^([0-9]*\.) ', line): if not inlist: - lines.append('@enumerate') + ret += '@enumerate\n' inlist = 'enumerate' + ret += '@item\n' line = line[line.find(' ')+1:] - lines.append('@item') elif re.match(r'^[*-] ', line): if not inlist: - lines.append('@itemize %s' % {'*': '@bullet', - '-': '@minus'}[line[0]]) + ret += '@itemize %s\n' % {'*': '@bullet', + '-': '@minus'}[line[0]] inlist = 'itemize' - lines.append('@item') + ret += '@item\n' line = line[2:] elif lastempty and inlist: - lines.append('@end %s\n' % inlist) + ret += '@end %s\n\n' % inlist inlist = '' lastempty = empty - lines.append(line) + ret += line + '\n' if inlist: - lines.append('@end %s\n' % inlist) - return '\n'.join(lines) + ret += '@end %s\n\n' % inlist + return ret def texi_body(doc): """Format the main documentation body""" - return texi_format(doc.body.text) + '\n' + return texi_format(doc.body.text) def texi_enum_value(value): @@ -154,10 +152,11 @@ def texi_members(doc, what, base, variants, member_func): elif (variants and variants.tag_member == section.member and not section.member.type.doc_type()): values = section.member.type.member_names() - desc = 'One of ' + ', '.join(['@t{"%s"}' % v for v in values]) + members_text = ', '.join(['@t{"%s"}' % v for v in values]) + desc = 'One of ' + members_text + '\n' else: - desc = 'Not documented' - items += member_func(section.member) + desc + '\n' + desc = 'Not documented\n' + items += member_func(section.member) + desc if base: items += '@item The members of @code{%s}\n' % base.doc_type() if variants: @@ -182,7 +181,7 @@ def texi_sections(doc): for section in doc.sections: if section.name: # prefer @b over @strong, so txt doesn't translate it to *Foo:* - body += '\n\n@b{%s:}\n' % section.name + body += '\n@b{%s:}\n' % section.name if section.name and section.name.startswith('Example'): body += texi_example(section.text) else: diff --git a/tests/qapi-schema/doc-good.texi b/tests/qapi-schema/doc-good.texi index c032f23fc1..1778312581 100644 --- a/tests/qapi-schema/doc-good.texi +++ b/tests/qapi-schema/doc-good.texi @@ -101,7 +101,6 @@ Not documented the first member @end table - @end deftp @@ -118,7 +117,6 @@ Another paragraph (but no @code{var}: line) Not documented @end table - @end deftp @@ -127,7 +125,6 @@ Not documented - @end deftp @@ -143,7 +140,6 @@ Not documented @item The members of @code{Variant2} when @code{base1} is @t{"two"} @end table - @end deftp @@ -160,7 +156,6 @@ One of @t{"one"}, @t{"two"} @item @code{data: Variant2} when @code{type} is @t{"two"} @end table - @end deftp @@ -182,7 +177,6 @@ argument Not documented @end table - @b{Note:} @code{arg3} is undocumented @@ -209,14 +203,12 @@ Duis aute irure dolor <- out @end example - @b{Examples:} @example - *verbatim* - @{braces@} @end example - @b{Since:} 2.10 @@ -230,7 +222,6 @@ If you're bored enough to read this, go see a video of boxed cats @b{Arguments:} the members of @code{Object} - @b{Example:} @example -> in @@ -238,7 +229,6 @@ If you're bored enough to read this, go see a video of boxed cats <- out @end example - @end deftypefn
Use a string instead of a list of strings. While there, generate fewer superfluous blank lines. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- scripts/qapi2texi.py | 33 ++++++++++++++++----------------- tests/qapi-schema/doc-good.texi | 10 ---------- 2 files changed, 16 insertions(+), 27 deletions(-)