[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 04/16] qapi/expr.py: Add assertion for union type 'check_dict
From: |
Eduardo Habkost |
Subject: |
Re: [PATCH 04/16] qapi/expr.py: Add assertion for union type 'check_dict' |
Date: |
Thu, 24 Sep 2020 21:08:57 -0400 |
On Thu, Sep 24, 2020 at 08:47:31PM -0400, John Snow wrote:
> On 9/23/20 3:53 PM, Eduardo Habkost wrote:
> > On Tue, Sep 22, 2020 at 05:13:01PM -0400, John Snow wrote:
> > > mypy isn't fond of allowing you to check for bool membership in a
> > > collection of str elements. Guard this lookup for precisely when we were
> > > given a name.
> > >
> > > Signed-off-by: John Snow <jsnow@redhat.com>
> > > ---
> > > scripts/qapi/expr.py | 4 +++-
> > > 1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py
> > > index f6b55a87c1..67892502e9 100644
> > > --- a/scripts/qapi/expr.py
> > > +++ b/scripts/qapi/expr.py
> > > @@ -166,7 +166,9 @@ def check_type(value, info, source,
> > > raise QAPISemError(info,
> > > "%s should be an object or type name" %
> > > source)
> > > - permit_upper = allow_dict in info.pragma.name_case_whitelist
> > > + permit_upper = False
> > > + if isinstance(allow_dict, str):
> > > + permit_upper = allow_dict in info.pragma.name_case_whitelist
> >
> > Well, this keeps existing behavior, so:
> >
> > Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
> >
> > But: what exactly is the meaning of allow_dict=False,
> > allow_dict=True, and allow_dict being a string?
> >
> >
>
> allow_dict = True -- allows the type to be an object describing the type.
>
> allow_dict: str -- allows the type to be an object (like True), but also
> passes a name in for the purposes of validating the name with the pragma
> whitelist(!)
What.
--
Eduardo
[PATCH 03/16] qapi/expr.py: constrain incoming expression types, John Snow, 2020/09/22
Re: [PATCH 03/16] qapi/expr.py: constrain incoming expression types, Cleber Rosa, 2020/09/24
[PATCH 02/16] qapi/expr.py: Check for dict instead of OrderedDict, John Snow, 2020/09/22