[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/16] qapi: static typing conversion, pt3
From: |
John Snow |
Subject: |
[PATCH v2 00/16] qapi: static typing conversion, pt3 |
Date: |
Mon, 26 Oct 2020 17:36:21 -0400 |
based-on: <20201026194251.11075-1-jsnow@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
- [PATCH v2 00/16] qapi: static typing conversion, pt3,
John Snow <=
- [PATCH v2 02/16] qapi/expr.py: Check for dict instead of OrderedDict, John Snow, 2020/10/26
- [PATCH v2 03/16] qapi/expr.py: constrain incoming expression types, John Snow, 2020/10/26
- [PATCH v2 04/16] qapi/expr.py: Add assertion for union type 'check_dict', John Snow, 2020/10/26
- [PATCH v2 05/16] qapi/expr.py: move string check upwards in check_type, John Snow, 2020/10/26
- [PATCH v2 06/16] qapi/expr.py: Check type of 'data' member, John Snow, 2020/10/26
- [PATCH v2 01/16] qapi/expr.py: Remove 'info' argument from nested check_if_str, John Snow, 2020/10/26
- [PATCH v2 07/16] qapi/expr.py: Add casts in a few select cases, John Snow, 2020/10/26
- [PATCH v2 08/16] qapi/expr.py: add type hint annotations, John Snow, 2020/10/26
- [PATCH v2 09/16] qapi/expr.py: rewrite check_if, John Snow, 2020/10/26
- [PATCH v2 15/16] qapi/expr.py: move related checks inside check_xxx functions, John Snow, 2020/10/26