[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/22] qapi: static typing conversion, pt5a
From: |
John Snow |
Subject: |
[PATCH 00/22] qapi: static typing conversion, pt5a |
Date: |
Wed, 21 Apr 2021 23:06:58 -0400 |
This is part five, and focuses on QAPISchemaParser in parser.py.
It does not touch QAPIDoc yet, which will be covered next.
gitlab: https://gitlab.com/jsnow/qemu/-/commits/python-qapi-cleanup-pt5a
merge-request (and CI): https://gitlab.com/jsnow/qemu/-/merge_requests/3
I encourage you to leave comments on the gitlab MR request link! Let's
try an experiment. (Of course, I will still response to critique on the
list, as usual.)
The patches that belong to just part five start here:
https://gitlab.com/jsnow/qemu/-/merge_requests/3/diffs?commit_id=7cc329b57bbc5504cba7552be6c0502081aca5f0
At the top near "Viewing commit 7cc329b5", you can click "Next" to move
on to the next patch after you're done leaving comments on a single
commit.
Give it a whirl!
Requirements:
- Python 3.6+
- mypy >= 0.770
- pylint >= 2.6.0 (2.7.0+ when using Python 3.9+)
Every commit should pass with:
- `isort -c qapi/`
- `flake8 qapi/`
- `pylint --rcfile=qapi/pylintrc qapi/`
- `mypy --config-file=qapi/mypy.ini qapi/`
John Snow (22):
qapi/parser: Don't try to handle file errors
qapi/source: [RFC] add "with_column" contextmanager
qapi/source: Remove line number from QAPISourceInfo initializer
qapi/parser: factor parsing routine into method
qapi/parser: Assert lexer value is a string
qapi/parser: assert get_expr returns object in outer loop
qapi/parser: assert object keys are strings
qapi/parser: Use @staticmethod where appropriate
qapi: add match_nofail helper
qapi/parser: Fix typing of token membership tests
qapi/parser: Rework _check_pragma_list_of_str as a TypeGuard
qapi/parser: add type hint annotations
qapi/parser: [RFC] overload the return type of get_expr
qapi/parser: Remove superfluous list constructor
qapi/parser: allow 'ch' variable name
qapi/parser: add docstrings
CHECKPOINT
qapi: [WIP] Rip QAPIDoc out of parser.py
qapi: [WIP] Add type ignores for qapidoc.py
qapi: [WIP] Import QAPIDoc from qapidoc Signed-off-by: John Snow
<jsnow@redhat.com>
qapi: [WIP] Add QAPIDocError
qapi: [WIP] Enable linters on parser.py
scripts/qapi/common.py | 8 +-
scripts/qapi/error.py | 8 +-
scripts/qapi/expr.py | 2 +-
scripts/qapi/main.py | 14 +-
scripts/qapi/mypy.ini | 2 +-
scripts/qapi/parser.py | 566 +++++++++++++---------------------------
scripts/qapi/pylintrc | 3 +-
scripts/qapi/qapidoc.py | 360 +++++++++++++++++++++++++
scripts/qapi/source.py | 32 ++-
9 files changed, 581 insertions(+), 414 deletions(-)
create mode 100644 scripts/qapi/qapidoc.py
--
2.30.2