I keep stumbling over things in later patches that turn out to go back to this one.
John Snow <js...@redhat.com> writes: > This is a minor re-work of the entrypoint script. It isolates a > generate() method from the actual command-line mechanism. > > Signed-off-by: John Snow <js...@redhat.com> > Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> > Reviewed-by: Cleber Rosa <cr...@redhat.com> > Tested-by: Cleber Rosa <cr...@redhat.com> > --- > scripts/qapi-gen.py | 85 +++++++++++++++++++++++++++++++++------------ > 1 file changed, 62 insertions(+), 23 deletions(-) > > diff --git a/scripts/qapi-gen.py b/scripts/qapi-gen.py > index 541e8c1f55d..117b396a595 100644 > --- a/scripts/qapi-gen.py > +++ b/scripts/qapi-gen.py > @@ -1,30 +1,77 @@ > #!/usr/bin/env python3 > -# QAPI generator > -# > + > # This work is licensed under the terms of the GNU GPL, version 2 or later. > # See the COPYING file in the top-level directory. > > +""" > +QAPI Generator > + > +This script is the main entry point for generating C code from the QAPI > schema. PEP 8: For flowing long blocks of text with fewer structural restrictions (docstrings or comments), the line length should be limited to 72 characters. > +""" > > import argparse > import re > import sys > > from qapi.commands import gen_commands > +from qapi.error import QAPIError > from qapi.events import gen_events > from qapi.introspect import gen_introspect > -from qapi.schema import QAPIError, QAPISchema > +from qapi.schema import QAPISchema > from qapi.types import gen_types > from qapi.visit import gen_visit > > > -def main(argv): > +DEFAULT_OUTPUT_DIR = '' > +DEFAULT_PREFIX = '' > + > + > +def generate(schema_file: str, > + output_dir: str, > + prefix: str, > + unmask: bool = False, > + builtins: bool = False) -> None: > + """ > + generate uses a given schema to produce C code in the target directory. PEP 257: The docstring is a phrase ending in a period. It prescribes the function or method's effect as a command ("Do this", "Return that"), not as a description; e.g. don't write "Returns the pathname ...". Suggest Generate C code for the given schema into the target directory. > + > + :param schema_file: The primary QAPI schema file. > + :param output_dir: The output directory to store generated code. > + :param prefix: Optional C-code prefix for symbol names. > + :param unmask: Expose non-ABI names through introspection? > + :param builtins: Generate code for built-in types? > + > + :raise QAPIError: On failures. > + """ [...]