qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 02/16] qapi/expr.py: Check for dict instead of OrderedDict


From: Eduardo Habkost
Subject: Re: [PATCH v2 02/16] qapi/expr.py: Check for dict instead of OrderedDict
Date: Tue, 17 Nov 2020 13:08:47 -0500

On Tue, Nov 17, 2020 at 05:30:04PM +0100, Markus Armbruster wrote:
> John Snow <jsnow@redhat.com> writes:
> 
> > OrderedDict is a subtype of dict, so we can check for a more general form.
> >
> > Signed-off-by: John Snow <jsnow@redhat.com>
> > Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
> > Reviewed-by: Cleber Rosa <crosa@redhat.com>
> > ---
> >  scripts/qapi/expr.py | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py
> > index 35695c4c653b..5694c501fa38 100644
> > --- a/scripts/qapi/expr.py
> > +++ b/scripts/qapi/expr.py
> > @@ -14,7 +14,6 @@
> >  # This work is licensed under the terms of the GNU GPL, version 2.
> >  # See the COPYING file in the top-level directory.
> >  
> > -from collections import OrderedDict
> >  import re
> >  
> >  from .common import c_name
> > @@ -131,7 +130,7 @@ def check_if_str(ifcond):
> >  
> >  
> >  def normalize_members(members):
> > -    if isinstance(members, OrderedDict):
> > +    if isinstance(members, dict):
> >          for key, arg in members.items():
> >              if isinstance(arg, dict):
> >                  continue
> > @@ -162,7 +161,7 @@ def check_type(value, info, source,
> >      if not allow_dict:
> >          raise QAPISemError(info, "%s should be a type name" % source)
> >  
> > -    if not isinstance(value, OrderedDict):
> > +    if not isinstance(value, dict):
> >          raise QAPISemError(info,
> >                             "%s should be an object or type name" % source)
> 
> Plain dict remembers insertion order since Python 3.6, but it wasn't
> formally promised until 3.7.  
> 
> Can we simply ditch OrderedDict entirely?

In theory, our build requirement is "Python >= 3.6", not
"CPython >= 3.6".  In practice, I don't expect anybody to ever
use any other Python implementation except CPython to build QEMU.

I think we can get rid of OrderedDict if you really want to.

-- 
Eduardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]