qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 00/16] qapi: static typing conversion, pt3


From: John Snow
Subject: Re: [PATCH v2 00/16] qapi: static typing conversion, pt3
Date: Tue, 3 Nov 2020 19:41:55 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1

On 10/26/20 5:36 PM, John Snow wrote:
based-on: <20201026194251.11075-1-jsnow@redhat.com>
           [PATCH v2 00/11] qapi: static typing conversion, pt2

Ping,

This series can be reviewed independently of pt2, so I encourage you to try if you have the time.


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(-)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]