This is part five (c), and focuses on sharing strict types between parser.py and expr.py.
gitlab: https://gitlab.com/jsnow/qemu/-/commits/python-qapi-cleanup-pt5c Every commit should pass with: - `isort -c qapi/` - `flake8 qapi/` - `pylint --rcfile=qapi/pylintrc qapi/` - `mypy --config-file=qapi/mypy.ini qapi/` V4: - Dropped the "split check_exprs" patch - Based the QAPIExpression class on Dict[str, object] instead - Removed the type workaround patch, which is no longer needed. - Added a new patch to fix a problem with Python 3.6 and pylint V3: - Squashed a bunch of patches into the QAPIExpression patch - Added a few 'info' locals whenever there were >= 3 usages to help minimize some churn - Removed some type redundancy from docstrings - Brought along the two patches from pt0 that I want merged. - Removed 'pexpr' entirely, there's no intermediate state where it's needed now. - Minor style issues. John Snow (6): qapi: Update flake8 config qapi: update pylint configuration qapi: Add minor typing workaround for 3.6 qapi/parser: add QAPIExpression type qapi: remove _JSONObject qapi: remove JSON value FIXME scripts/qapi/.flake8 | 3 +- scripts/qapi/expr.py | 101 ++++++++++++++++------------------------- scripts/qapi/parser.py | 41 +++++++++-------- scripts/qapi/pylintrc | 1 + scripts/qapi/schema.py | 72 +++++++++++++++-------------- 5 files changed, 104 insertions(+), 114 deletions(-) -- 2.39.0