based-on: <20201026194251.11075-1-js...@redhat.com> [PATCH v2 00/11] qapi: static typing conversion, pt2
Hi, this series adds static type hints to the QAPI module. This is part three, and it focuses on expr.py. Part 3: https://gitlab.com/jsnow/qemu/-/tree/python-qapi-cleanup-pt3 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: - flake8 qapi/ - pylint --rcfile=qapi/pylintrc qapi/ - mypy --config-file=qapi/mypy.ini qapi/ V2: - Rebased on the latest V2 002/16:[0001] [FC] 'qapi/expr.py: Check for dict instead of OrderedDict' - Import order differences 007/16:[0006] [FC] 'qapi/expr.py: Add casts in a few select cases' - Import order differences 008/16:[0006] [FC] 'qapi/expr.py: add type hint annotations' - Import order differents 012/16:[0066] [FC] 'qapi/expr.py: Add docstrings' - Various docstring changes for Sphinx 014/16:[0004] [FC] 'qapi/expr.py: Use tuples instead of lists for static data' - Change to accommodate new 'coroutine' key 015/16:[0006] [FC] 'qapi/expr.py: move related checks inside check_xxx functions' - Fix check order (ehabkost) John Snow (16): qapi/expr.py: Remove 'info' argument from nested check_if_str qapi/expr.py: Check for dict instead of OrderedDict qapi/expr.py: constrain incoming expression types qapi/expr.py: Add assertion for union type 'check_dict' qapi/expr.py: move string check upwards in check_type qapi/expr.py: Check type of 'data' member qapi/expr.py: Add casts in a few select cases qapi/expr.py: add type hint annotations qapi/expr.py: rewrite check_if qapi/expr.py: Remove single-letter variable qapi/expr.py: enable pylint checks qapi/expr.py: Add docstrings qapi/expr.py: Modify check_keys to accept any Iterable qapi/expr.py: Use tuples instead of lists for static data qapi/expr.py: move related checks inside check_xxx functions qapi/expr.py: Use an expression checker dispatch table scripts/qapi/expr.py | 447 +++++++++++++++++++++++++++++++----------- scripts/qapi/mypy.ini | 5 - scripts/qapi/pylintrc | 1 - 3 files changed, 334 insertions(+), 119 deletions(-) -- 2.26.2