Hi, this series adds static type hints to the QAPI module. This is part two, and covers introspect.py.
Part 2: https://gitlab.com/jsnow/qemu/-/tree/python-qapi-cleanup-pt2 Everything: https://gitlab.com/jsnow/qemu/-/tree/python-qapi-cleanup-pt6 - Requires Python 3.6+ - Requires mypy 0.770 or newer (for type analysis only) - Requires pylint 2.6.0 or newer (for lint checking only) Type hints are added in patches that add *only* type hints and change no other behavior. Any necessary changes to behavior to accommodate typing are split out into their own tiny patches. Every commit should pass with (from ./scripts): - flake8 qapi/ - pylint --rcfile=qapi/pylintrc qapi/ - mypy --config-file=qapi/mypy.ini qapi/ - isort -c qapi/ V4: - Rebased on "pt1.5" v4 - signatures updated to use Optional[QAPISourceInfo] - Changelog from V3 still relevant (That series went unreviewed.) V3: - Dropped all the R-Bs again... - Re-re-ordered to put type annotations last again. - Rebased on top of "pt1.5". - Ensured compliance with strict-optional typing. - Forgive me if I missed a specific critique; I probably just lost it in the shuffle. V2: - Dropped all R-B from previous series; enough has changed. - pt2 is now introspect.py, expr.py is pushed to pt3. - Reworked again to have less confusing (?) type names - Added an assertion to prevent future accidental breakage John Snow (14): qapi/introspect.py: assert schema is not None qapi/introspect.py: use _make_tree for features nodes qapi/introspect.py: add _gen_features helper qapi/introspect.py: guard against ifcond/comment misuse qapi/introspect.py: Unify return type of _make_tree() qapi/introspect.py: replace 'extra' dict with 'comment' argument qapi/introspect.py: Introduce preliminary tree typing qapi/introspect.py: create a typed 'Annotated' data strutcure qapi/introspect.py: improve _tree_to_qlit error message qapi/introspect.py: improve readability of _tree_to_qlit qapi/introspect.py: add type hint annotations qapi/introspect.py: add introspect.json dummy types qapi/introspect.py: Add docstring to _tree_to_qlit qapi/introspect.py: Update copyright and authors list scripts/qapi/introspect.py | 311 ++++++++++++++++++++++++++----------- scripts/qapi/mypy.ini | 5 - scripts/qapi/schema.py | 2 +- 3 files changed, 221 insertions(+), 97 deletions(-) -- 2.29.2