qemu-patch-raspberry4/scripts/qapi
John Snow 4f7f97a7b3 qapi/introspect.py: create a typed 'Annotated' data strutcure
Presently, we use a tuple to attach a dict containing annotations
(comments and compile-time conditionals) to a tree node. This is
undesirable because dicts are difficult to strongly type; promoting it
to a real class allows us to name the values and types of the
annotations we are expecting.

In terms of typing, the Annotated<T> type serves as a generic container
where the annotated node's type is preserved, allowing for greater
specificity than we'd be able to provide without a generic.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20210216021809.134886-11-jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2021-02-18 19:45:17 +01:00
..
.flake8 qapi: delint using flake8 2020-10-10 11:37:47 +02:00
.isort.cfg qapi: enforce import order/styling with isort 2020-10-10 11:37:47 +02:00
__init__.py qapi-gen: New common driver for code and doc generators 2018-03-02 13:14:09 -06:00
commands.py qapi: Replace List[str] with Sequence[str] for ifcond 2021-02-18 17:10:29 +01:00
common.py qapi/common.py: move build_params into gen.py 2020-10-10 11:37:48 +02:00
error.py qapi: Use super() now we have Python 3 2020-03-05 09:24:11 +01:00
events.py qapi: Replace List[str] with Sequence[str] for ifcond 2021-02-18 17:10:29 +01:00
expr.py qapi: enforce import order/styling with isort 2020-10-10 11:37:47 +02:00
gen.py qapi: Replace List[str] with Sequence[str] for ifcond 2021-02-18 17:10:29 +01:00
introspect.py qapi/introspect.py: create a typed 'Annotated' data strutcure 2021-02-18 19:45:17 +01:00
main.py qapi/main: handle theoretical None-return from re.match() 2021-02-08 14:15:58 +01:00
mypy.ini qapi: enable strict-optional checks 2021-02-08 14:15:58 +01:00
parser.py qapi: enforce import order/styling with isort 2020-10-10 11:37:47 +02:00
pylintrc qapi/visit.py: remove unused parameters from gen_visit_object 2020-10-10 11:37:49 +02:00
schema.py qapi: centralize the built-in module name definition 2021-02-08 14:15:58 +01:00
source.py qapi/source.py: delint with pylint 2020-10-10 11:37:48 +02:00
types.py qapi: Replace List[str] with Sequence[str] for ifcond 2021-02-18 17:10:29 +01:00
visit.py qapi: Replace List[str] with Sequence[str] for ifcond 2021-02-18 17:10:29 +01:00