[libvirt] [PATCH python 05/15] generator: Remove use of 'has_key' function

Doug Goldstein cardoe at gentoo.org
Tue Dec 3 16:47:22 UTC 2013


On Tue, Dec 3, 2013 at 10:36 AM, Daniel P. Berrange <berrange at redhat.com> wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> The code 'XXX.has_key(YYYY)' must be changed to be of
> the form  'YYY in XXXX' which works in Python2 and 3
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>  generator.py | 106 +++++++++++++++++++++++++++++------------------------------
>  1 file changed, 53 insertions(+), 53 deletions(-)
>
> diff --git a/generator.py b/generator.py
> index ce2797e..8cce800 100755
> --- a/generator.py
> +++ b/generator.py
> @@ -76,11 +76,11 @@ class docParser(xml.sax.handler.ContentHandler):
>              self.function_return = None
>              self.function_file = None
>              self.function_module= None
> -            if attrs.has_key('name'):
> +            if 'name' in attrs:
>                  self.function = attrs['name']
> -            if attrs.has_key('file'):
> +            if 'file' in attrs:
>                  self.function_file = attrs['file']
> -            if attrs.has_key('module'):
> +            if 'module' in attrs:
>                  self.function_module= attrs['module']
>          elif tag == 'cond':
>              self._data = []
> @@ -91,24 +91,24 @@ class docParser(xml.sax.handler.ContentHandler):
>                  self.function_arg_name = None
>                  self.function_arg_type = None
>                  self.function_arg_info = None
> -                if attrs.has_key('name'):
> +                if 'name' in attrs:
>                      self.function_arg_name = attrs['name']
>                      if self.function_arg_name == 'from':
>                          self.function_arg_name = 'frm'
> -                if attrs.has_key('type'):
> +                if 'type' in attrs:
>                      self.function_arg_type = attrs['type']
> -                if attrs.has_key('info'):
> +                if 'info' in attrs:
>                      self.function_arg_info = attrs['info']
>          elif tag == 'return':
>              if self.in_function == 1:
>                  self.function_return_type = None
>                  self.function_return_info = None
>                  self.function_return_field = None
> -                if attrs.has_key('type'):
> +                if 'type' in attrs:
>                      self.function_return_type = attrs['type']
> -                if attrs.has_key('info'):
> +                if 'info' in attrs:
>                      self.function_return_info = attrs['info']
> -                if attrs.has_key('field'):
> +                if 'field' in attrs:
>                      self.function_return_field = attrs['field']
>          elif tag == 'enum':
>              # enums come from header files, hence virterror.h
> @@ -207,7 +207,7 @@ def lxc_function(name, desc, ret, args, file, module, cond):
>      lxc_functions[name] = (desc, ret, args, file, module, cond)
>
>  def enum(type, name, value):
> -    if not enums.has_key(type):
> +    if type not in enums:
>          enums[type] = {}
>      if value == 'VIR_TYPED_PARAM_INT':
>          value = 1
> @@ -233,14 +233,14 @@ def enum(type, name, value):
>          enums[type][name] = value
>
>  def lxc_enum(type, name, value):
> -    if not lxc_enums.has_key(type):
> +    if type not in lxc_enums:
>          lxc_enums[type] = {}
>      if onlyOverrides and name not in lxc_enums[type]:
>          return
>      lxc_enums[type][name] = value
>
>  def qemu_enum(type, name, value):
> -    if not qemu_enums.has_key(type):
> +    if type not in qemu_enums:
>          qemu_enums[type] = {}
>      if onlyOverrides and name not in qemu_enums[type]:
>          return
> @@ -637,7 +637,7 @@ def print_function_wrapper(module, name, output, export, include):
>          if arg[1][0:6] == "const ":
>              arg[1] = arg[1][6:]
>          c_args = c_args + "    %s %s;\n" % (arg[1], arg[0])
> -        if py_types.has_key(arg[1]):
> +        if arg[1] in py_types:
>              (f, t, n, c) = py_types[arg[1]]
>              if (f == 'z') and (name in foreign_encoding_args) and (num_bufs == 0):
>                  f = 't#'
> @@ -659,9 +659,9 @@ def print_function_wrapper(module, name, output, export, include):
>                  c_call = c_call + ", "
>              c_call = c_call + "%s" % (arg[0])
>          else:
> -            if skipped_types.has_key(arg[1]):
> +            if arg[1] in skipped_types:
>                  return 0
> -            if unknown_types.has_key(arg[1]):
> +            if arg[1] in unknown_types:
>                  lst = unknown_types[arg[1]]
>                  lst.append(name)
>              else:
> @@ -683,7 +683,7 @@ def print_function_wrapper(module, name, output, export, include):
>          else:
>              c_call = "\n    %s(%s);\n" % (name, c_call)
>          ret_convert = "    Py_INCREF(Py_None);\n    return Py_None;\n"
> -    elif py_types.has_key(ret[0]):
> +    elif ret[0] in py_types:
>          (f, t, n, c) = py_types[ret[0]]
>          c_return = "    %s c_retval;\n" % (ret[0])
>          if file == "python_accessor" and ret[2] is not None:
> @@ -692,16 +692,16 @@ def print_function_wrapper(module, name, output, export, include):
>              c_call = "\n    c_retval = %s(%s);\n" % (name, c_call)
>          ret_convert = "    py_retval = libvirt_%sWrap((%s) c_retval);\n" % (n,c)
>          ret_convert = ret_convert + "    return py_retval;\n"
> -    elif py_return_types.has_key(ret[0]):
> +    elif ret[0] in py_return_types:
>          (f, t, n, c) = py_return_types[ret[0]]
>          c_return = "    %s c_retval;\n" % (ret[0])
>          c_call = "\n    c_retval = %s(%s);\n" % (name, c_call)
>          ret_convert = "    py_retval = libvirt_%sWrap((%s) c_retval);\n" % (n,c)
>          ret_convert = ret_convert + "    return py_retval;\n"
>      else:
> -        if skipped_types.has_key(ret[0]):
> +        if ret[0] in skipped_types:
>              return 0
> -        if unknown_types.has_key(ret[0]):
> +        if ret[0] in unknown_types:
>              lst = unknown_types[ret[0]]
>              lst.append(name)
>          else:
> @@ -1252,10 +1252,10 @@ def buildWrappers(module):
>                  ctypes.append(type)
>                  ctypes_processed[type] = ()
>      for type in list(classes_type.keys()):
> -        if ctypes_processed.has_key(type):
> +        if type in ctypes_processed:
>              continue
>          tinfo = classes_type[type]
> -        if not classes_processed.has_key(tinfo[2]):
> +        if tinfo[2] not in classes_processed:
>              classes_list.append(tinfo[2])
>              classes_processed[tinfo[2]] = ()
>
> @@ -1317,7 +1317,7 @@ def buildWrappers(module):
>      if extra is not None:
>          extra.close()
>
> -    if function_classes.has_key("None"):
> +    if "None" in function_classes:
>          flist = function_classes["None"]
>          flist.sort(functionCompare)
>          oldfile = ""
> @@ -1342,7 +1342,7 @@ def buildWrappers(module):
>              writeDoc(module, name, args, '    ', classes)
>
>              for arg in args:
> -                if classes_type.has_key(arg[1]):
> +                if arg[1] in classes_type:
>                      classes.write("    if %s is None: %s__o = None\n" %
>                                    (arg[0], arg[0]))
>                      classes.write("    else: %s__o = %s%s\n" %
> @@ -1357,17 +1357,17 @@ def buildWrappers(module):
>                  if n != 0:
>                      classes.write(", ")
>                  classes.write("%s" % arg[0])
> -                if classes_type.has_key(arg[1]):
> +                if arg[1] in classes_type:
>                      classes.write("__o")
>                  n = n + 1
>              classes.write(")\n")
>
>              if ret[0] != "void":
> -                if classes_type.has_key(ret[0]):
> +                if ret[0] in classes_type:
>                      #
>                      # Raise an exception
>                      #
> -                    if functions_noexcept.has_key(name):
> +                    if name in functions_noexcept:
>                          classes.write("    if ret is None:return None\n")
>                      else:
>                          classes.write(
> @@ -1382,8 +1382,8 @@ def buildWrappers(module):
>                  # several things that we can do, depending on the
>                  # contents of functions_int_*:
>                  elif is_integral_type (ret[0]):
> -                    if not functions_noexcept.has_key (name):
> -                        if functions_int_exception_test.has_key (name):
> +                    if name not in functions_noexcept:
> +                        if name in functions_int_exception_test:
>                              test = functions_int_exception_test[name]
>                          else:
>                              test = functions_int_default_test
> @@ -1393,8 +1393,8 @@ def buildWrappers(module):
>                      classes.write("    return ret\n")
>
>                  elif is_python_noninteger_type (ret[0]):
> -                    if not functions_noexcept.has_key (name):
> -                        if functions_list_exception_test.has_key (name):
> +                    if name not in functions_noexcept:
> +                        if name in functions_list_exception_test:
>                              test = functions_list_exception_test[name]
>                          else:
>                              test = functions_list_default_test
> @@ -1412,11 +1412,11 @@ def buildWrappers(module):
>          if classname == "None":
>              pass
>          else:
> -            if classes_ancestor.has_key(classname):
> +            if classname in classes_ancestor:
>                  classes.write("class %s(%s):\n" % (classname,
>                                classes_ancestor[classname]))
>                  classes.write("    def __init__(self, _obj=None):\n")
> -                if reference_keepers.has_key(classname):
> +                if classname in reference_keepers:
>                      rlist = reference_keepers[classname]
>                      for ref in rlist:
>                          classes.write("        self.%s = None\n" % ref[1])
> @@ -1433,7 +1433,7 @@ def buildWrappers(module):
>                      classes.write("    def __init__(self, dom, _obj=None):\n")
>                  else:
>                      classes.write("    def __init__(self, _obj=None):\n")
> -                if reference_keepers.has_key(classname):
> +                if classname in reference_keepers:
>                      rlist = reference_keepers[classname]
>                      for ref in rlist:
>                          classes.write("        self.%s = None\n" % ref[1])
> @@ -1450,7 +1450,7 @@ def buildWrappers(module):
>                      classes.write("        self._conn = dom.connect()\n")
>                  classes.write("        self._o = _obj\n\n")
>              destruct=None
> -            if classes_destructors.has_key(classname):
> +            if classname in classes_destructors:
>                  classes.write("    def __del__(self):\n")
>                  classes.write("        if self._o is not None:\n")
>                  classes.write("            libvirtmod.%s(self._o)\n" %
> @@ -1458,12 +1458,12 @@ def buildWrappers(module):
>                  classes.write("        self._o = None\n\n")
>                  destruct=classes_destructors[classname]
>
> -            if not class_skip_connect_impl.has_key(classname):
> +            if classname not in class_skip_connect_impl:
>                  # Build python safe 'connect' method
>                  classes.write("    def connect(self):\n")
>                  classes.write("        return self._conn\n\n")
>
> -            if class_domain_impl.has_key(classname):
> +            if classname in class_domain_impl:
>                  classes.write("    def domain(self):\n")
>                  classes.write("        return self._dom\n\n")
>
> @@ -1502,7 +1502,7 @@ def buildWrappers(module):
>                  writeDoc(module, name, args, '        ', classes)
>                  n = 0
>                  for arg in args:
> -                    if classes_type.has_key(arg[1]):
> +                    if arg[1] in classes_type:
>                          if n != index:
>                              classes.write("        if %s is None: %s__o = None\n" %
>                                            (arg[0], arg[0]))
> @@ -1520,11 +1520,11 @@ def buildWrappers(module):
>                          classes.write(", ")
>                      if n != index:
>                          classes.write("%s" % arg[0])
> -                        if classes_type.has_key(arg[1]):
> +                        if arg[1] in classes_type:
>                              classes.write("__o")
>                      else:
>                          classes.write("self")
> -                        if classes_type.has_key(arg[1]):
> +                        if arg[1] in classes_type:
>                              classes.write(classes_type[arg[1]][0])
>                      n = n + 1
>                  classes.write(")\n")
> @@ -1534,11 +1534,11 @@ def buildWrappers(module):
>
>                  # For functions returning object types:
>                  if ret[0] != "void":
> -                    if classes_type.has_key(ret[0]):
> +                    if ret[0] in classes_type:
>                          #
>                          # Raise an exception
>                          #
> -                        if functions_noexcept.has_key(name):
> +                        if name in functions_noexcept:
>                              classes.write(
>                                  "        if ret is None:return None\n")
>                          else:
> @@ -1588,7 +1588,7 @@ def buildWrappers(module):
>                          # See reference_keepers for the list
>                          #
>                          tclass = classes_type[ret[0]][2]
> -                        if reference_keepers.has_key(tclass):
> +                        if tclass in reference_keepers:
>                              rlist = reference_keepers[tclass]
>                              for pref in rlist:
>                                  if pref[0] == classname:
> @@ -1596,7 +1596,7 @@ def buildWrappers(module):
>                                                    pref[1])
>
>                          # Post-processing - just before we return.
> -                        if function_post.has_key(name):
> +                        if name in function_post:
>                              classes.write("        %s\n" %
>                                            (function_post[name]))
>
> @@ -1604,16 +1604,16 @@ def buildWrappers(module):
>                          # return the class
>                          #
>                          classes.write("        return __tmp\n")
> -                    elif converter_type.has_key(ret[0]):
> +                    elif ret[0] in converter_type:
>                          #
>                          # Raise an exception
>                          #
> -                        if functions_noexcept.has_key(name):
> +                        if name in functions_noexcept:
>                              classes.write(
>                                  "        if ret is None:return None")
>
>                          # Post-processing - just before we return.
> -                        if function_post.has_key(name):
> +                        if name in function_post:
>                              classes.write("        %s\n" %
>                                            (function_post[name]))
>
> @@ -1625,8 +1625,8 @@ def buildWrappers(module):
>                      # are several things that we can do, depending on
>                      # the contents of functions_int_*:
>                      elif is_integral_type (ret[0]):
> -                        if not functions_noexcept.has_key (name):
> -                            if functions_int_exception_test.has_key (name):
> +                        if name not in functions_noexcept:
> +                            if name in functions_int_exception_test:
>                                  test = functions_int_exception_test[name]
>                              else:
>                                  test = functions_int_default_test
> @@ -1660,15 +1660,15 @@ def buildWrappers(module):
>                                                 ("ret", name))
>
>                          # Post-processing - just before we return.
> -                        if function_post.has_key(name):
> +                        if name in function_post:
>                              classes.write("        %s\n" %
>                                            (function_post[name]))
>
>                          classes.write ("        return ret\n")
>
>                      elif is_python_noninteger_type (ret[0]):
> -                        if not functions_noexcept.has_key (name):
> -                            if functions_list_exception_test.has_key (name):
> +                        if name not in functions_noexcept:
> +                            if name in functions_list_exception_test:
>                                  test = functions_list_exception_test[name]
>                              else:
>                                  test = functions_list_default_test
> @@ -1702,7 +1702,7 @@ def buildWrappers(module):
>                                                 ("ret", name))
>
>                          # Post-processing - just before we return.
> -                        if function_post.has_key(name):
> +                        if name in function_post:
>                              classes.write("        %s\n" %
>                                            (function_post[name]))
>
> @@ -1710,7 +1710,7 @@ def buildWrappers(module):
>
>                      else:
>                          # Post-processing - just before we return.
> -                        if function_post.has_key(name):
> +                        if name in function_post:
>                              classes.write("        %s\n" %
>                                            (function_post[name]))
>
> --
> 1.8.3.1
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

ACK.

-- 
Doug Goldstein




More information about the libvir-list mailing list