Ignorant question: why does this come after PATCH 13 "qapi/common.py: add notational type hints", but before all the other patches adding type hints?
John Snow <js...@redhat.com> writes: > Fix two very minor issues, and then establish a mypy type-checking > baseline. > > Like pylint, this should be run from the folder above: > > > mypy --config-file=qapi/mypy.ini qapi/ I get: $ mypy --config-file qapi/mypy.ini qapi qapi/mypy.ini: [mypy]: Strict mode is not supported in configuration files: specify individual flags instead (see 'mypy -h' for the list of flags enabled in strict mode) qapi/types.py:29: error: Need type annotation for 'objects_seen' (hint: "objects_seen: Set[<type>] = ...") Found 1 error in 1 file (checked 18 source files) Is this expected? In case it matters: $ mypy --version mypy 0.761 > Signed-off-by: John Snow <js...@redhat.com> > --- > scripts/qapi/doc.py | 3 +- > scripts/qapi/mypy.ini | 65 ++++++++++++++++++++++++++++++++++++++++++ > scripts/qapi/schema.py | 3 +- > 3 files changed, 69 insertions(+), 2 deletions(-) > create mode 100644 scripts/qapi/mypy.ini > > diff --git a/scripts/qapi/doc.py b/scripts/qapi/doc.py > index cbf7076ed9..70f7cdfaa6 100644 > --- a/scripts/qapi/doc.py > +++ b/scripts/qapi/doc.py > @@ -5,7 +5,8 @@ > """This script produces the documentation of a qapi schema in texinfo > format""" > > import re > -from .gen import QAPIGenDoc, QAPISchemaVisitor > +from .gen import QAPIGenDoc > +from .schema import QAPISchemaVisitor Your mypy doesn't like such lazy imports? Mine seems not to care. > > > MSG_FMT = """ > diff --git a/scripts/qapi/mypy.ini b/scripts/qapi/mypy.ini > new file mode 100644 > index 0000000000..a0f2365a53 > --- /dev/null > +++ b/scripts/qapi/mypy.ini > @@ -0,0 +1,65 @@ > +[mypy] > +strict = True > +strict_optional = False > +disallow_untyped_calls = False > +python_version = 3.6 > + > +[mypy-qapi.commands] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.doc] > +disallow_subclassing_any = False > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > + > +[mypy-qapi.error] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.events] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.expr] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.gen] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.introspect] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.parser] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.schema] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.source] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.types] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False > + > +[mypy-qapi.visit] > +disallow_untyped_defs = False > +disallow_incomplete_defs = False > +check_untyped_defs = False Greek to me. I'll learn in due time. > diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py > index b4921b46c9..bb0cd717f1 100644 > --- a/scripts/qapi/schema.py > +++ b/scripts/qapi/schema.py > @@ -17,6 +17,7 @@ > import os > import re > from collections import OrderedDict > +from typing import Optional > > from .common import c_name, POINTER_SUFFIX > from .error import QAPIError, QAPISemError > @@ -25,7 +26,7 @@ > > > class QAPISchemaEntity: > - meta = None > + meta: Optional[str] = None > > def __init__(self, name, info, doc, ifcond=None, features=None): > assert name is None or isinstance(name, str)