[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations |
Date: |
Wed, 07 Oct 2020 13:32:34 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
John Snow <jsnow@redhat.com> writes:
> Annotations do not change runtime behavior.
> This commit *only* adds annotations.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
> Reviewed-by: Cleber Rosa <crosa@redhat.com>
> ---
> scripts/qapi/events.py | 46 ++++++++++++++++++++++++++++++++----------
> scripts/qapi/mypy.ini | 5 -----
> 2 files changed, 35 insertions(+), 16 deletions(-)
>
> diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py
> index f840a62ed92..57e0939e963 100644
> --- a/scripts/qapi/events.py
> +++ b/scripts/qapi/events.py
> @@ -12,19 +12,31 @@
> See the COPYING file in the top-level directory.
> """
>
> +from typing import List
> +
> from .common import c_enum_const, c_name, mcgen
> from .gen import QAPISchemaModularCVisitor, build_params, ifcontext
> -from .schema import QAPISchemaEnumMember
> +from .schema import (
> + QAPISchema,
> + QAPISchemaEnumMember,
> + QAPISchemaFeature,
> + QAPISchemaObjectType,
> +)
> +from .source import QAPISourceInfo
> from .types import gen_enum, gen_enum_lookup
>
>
> -def build_event_send_proto(name, arg_type, boxed):
> +def build_event_send_proto(name: str,
> + arg_type: QAPISchemaObjectType,
> + boxed: bool) -> str:
> return 'void qapi_event_send_%(c_name)s(%(param)s)' % {
> 'c_name': c_name(name.lower()),
> 'param': build_params(arg_type, boxed)}
>
>
> -def gen_event_send_decl(name, arg_type, boxed):
> +def gen_event_send_decl(name: str,
> + arg_type: QAPISchemaObjectType,
> + boxed: bool) -> str:
> return mcgen('''
>
> %(proto)s;
> @@ -33,7 +45,7 @@ def gen_event_send_decl(name, arg_type, boxed):
>
>
> # Declare and initialize an object 'qapi' using parameters from
> build_params()
> -def gen_param_var(typ):
> +def gen_param_var(typ: QAPISchemaObjectType) -> str:
> assert not typ.variants
> ret = mcgen('''
> %(c_name)s param = {
> @@ -61,7 +73,11 @@ def gen_param_var(typ):
> return ret
>
>
> -def gen_event_send(name, arg_type, boxed, event_enum_name, event_emit):
> +def gen_event_send(name: str,
> + arg_type: QAPISchemaObjectType,
> + boxed: bool,
> + event_enum_name: str,
> + event_emit: str) -> str:
> # FIXME: Our declaration of local variables (and of 'errp' in the
> # parameter list) can collide with exploded members of the event's
> # data type passed in as parameters. If this collision ever hits in
> @@ -137,15 +153,15 @@ def gen_event_send(name, arg_type, boxed,
> event_enum_name, event_emit):
>
> class QAPISchemaGenEventVisitor(QAPISchemaModularCVisitor):
>
> - def __init__(self, prefix):
> + def __init__(self, prefix: str):
> super().__init__(
> prefix, 'qapi-events',
> ' * Schema-defined QAPI/QMP events', None, __doc__)
> self._event_enum_name = c_name(prefix + 'QAPIEvent', protect=False)
> - self._event_enum_members = []
> + self._event_enum_members: List[QAPISchemaEnumMember] = []
> self._event_emit_name = c_name(prefix + 'qapi_event_emit')
>
> - def _begin_user_module(self, name):
> + def _begin_user_module(self, name: str) -> None:
> events = self._module_basename('qapi-events', name)
> types = self._module_basename('qapi-types', name)
> visit = self._module_basename('qapi-visit', name)
> @@ -168,7 +184,7 @@ def _begin_user_module(self, name):
> ''',
> types=types))
>
> - def visit_end(self):
> + def visit_end(self) -> None:
Ignorant question: what's the difference between -> None (like here) and
nothing (like __init__() above?
> self._add_system_module('emit', ' * QAPI Events emission')
> self._genc.preamble_add(mcgen('''
> #include "qemu/osdep.h"
[...]
- Re: [PATCH v5 16/36] qapi/common.py: Convert comments into docstrings, and elaborate, (continued)
- [PATCH v5 19/36] qapi/events.py: add type hint annotations, John Snow, 2020/10/05
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations,
Markus Armbruster <=
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, Markus Armbruster, 2020/10/07
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, John Snow, 2020/10/07
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, Markus Armbruster, 2020/10/08
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, John Snow, 2020/10/08
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, Markus Armbruster, 2020/10/09
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, John Snow, 2020/10/07
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, Markus Armbruster, 2020/10/08
- Re: [PATCH v5 19/36] qapi/events.py: add type hint annotations, John Snow, 2020/10/08
[PATCH v5 20/36] qapi/events.py: Move comments into docstrings, John Snow, 2020/10/05
[PATCH v5 22/36] qapi/commands.py: add type hint annotations, John Snow, 2020/10/05