python: Better iterate over dictionaries
authorMathieu Bridon <bochecha@daitauha.fr>
Fri, 6 Jul 2018 10:20:26 +0000 (12:20 +0200)
committerDylan Baker <dylan@pnwbakers.com>
Tue, 24 Jul 2018 18:07:04 +0000 (11:07 -0700)
In Python 2, dictionaries have 2 sets of methods to iterate over their
keys and values: keys()/values()/items() and iterkeys()/itervalues()/iteritems().

The former return lists while the latter return iterators.

Python 3 dropped the method which return lists, and renamed the methods
returning iterators to keys()/values()/items().

Using those names makes the scripts compatible with both Python 2 and 3.

Signed-off-by: Mathieu Bridon <bochecha@daitauha.fr>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
12 files changed:
src/amd/vulkan/radv_entrypoints_gen.py
src/compiler/nir/nir_algebraic.py
src/compiler/nir/nir_builder_opcodes_h.py
src/compiler/nir/nir_constant_expressions.py
src/compiler/nir/nir_intrinsics_c.py
src/compiler/nir/nir_opcodes_c.py
src/compiler/nir/nir_opcodes_h.py
src/intel/genxml/gen_bits_header.py
src/intel/vulkan/anv_entrypoints_gen.py
src/mapi/glapi/gen/gl_XML.py
src/mapi/glapi/gen/gl_gentable.py
src/mesa/drivers/dri/i965/brw_oa.py

index bef0c447f68d7f328fa3805c2e67ee98ab55eb29..9c4dfd02a0f9387323355de7101733257b7847fe 100644 (file)
@@ -433,7 +433,7 @@ def get_entrypoints(doc, entrypoints_to_defines, start_index):
             e_clone.name = e.name
             entrypoints[e.name] = e_clone
 
-    return [e for e in entrypoints.itervalues() if e.enabled]
+    return [e for e in entrypoints.values() if e.enabled]
 
 
 def get_entrypoints_defines(doc):
index 847c59dbd89bbc73fa082c641fb9673a1e2c0bfd..8c0b530f69853a37de2f0aae8f8d5ac85f53559d 100644 (file)
@@ -512,7 +512,7 @@ struct transform {
 
 #endif
 
-% for (opcode, xform_list) in xform_dict.iteritems():
+% for (opcode, xform_list) in xform_dict.items():
 % for xform in xform_list:
    ${xform.search.render()}
    ${xform.replace.render()}
index 72cf5b4549da6d1d127d146377e9024b90b33a8e..e600093e9f6375d0ccb58a4147ae33e1c1db1692 100644 (file)
@@ -34,7 +34,7 @@ def src_list(num_srcs):
    return ', '.join('src' + str(i) if i < num_srcs else 'NULL' for i in range(4))
 %>
 
-% for name, opcode in sorted(opcodes.iteritems()):
+% for name, opcode in sorted(opcodes.items()):
 static inline nir_ssa_def *
 nir_${name}(nir_builder *build, ${src_decl_list(opcode.num_inputs)})
 {
@@ -55,7 +55,7 @@ nir_load_system_value(nir_builder *build, nir_intrinsic_op op, int index)
    return &load->dest.ssa;
 }
 
-% for name, opcode in filter(lambda v: v[1].sysval, sorted(INTR_OPCODES.iteritems())):
+% for name, opcode in filter(lambda v: v[1].sysval, sorted(INTR_OPCODES.items())):
 static inline nir_ssa_def *
 nir_${name}(nir_builder *build)
 {
index 35dffe70ce7017d11ff1ac295569f647137cc83a..118af9f7818accdfe26ca43247c9c31df11f1ddc 100644 (file)
@@ -387,7 +387,7 @@ struct bool32_vec {
    % endif
 </%def>
 
-% for name, op in sorted(opcodes.iteritems()):
+% for name, op in sorted(opcodes.items()):
 static nir_const_value
 evaluate_${name}(MAYBE_UNUSED unsigned num_components,
                  ${"UNUSED" if op_bit_sizes(op) is None else ""} unsigned bit_size,
@@ -420,7 +420,7 @@ nir_eval_const_opcode(nir_op op, unsigned num_components,
                       unsigned bit_width, nir_const_value *src)
 {
    switch (op) {
-% for name in sorted(opcodes.iterkeys()):
+% for name in sorted(opcodes.keys()):
    case nir_op_${name}:
       return evaluate_${name}(num_components, bit_width, src);
 % endfor
index 9604fcdf623e3ec89247cdeb486befe7d73ee34b..98af67c38aefe66b8bd6cfe4c342e091275b3475 100644 (file)
@@ -25,7 +25,7 @@ template = """\
 #include "nir.h"
 
 const nir_intrinsic_info nir_intrinsic_infos[nir_num_intrinsics] = {
-% for name, opcode in sorted(INTR_OPCODES.iteritems()):
+% for name, opcode in sorted(INTR_OPCODES.items()):
 {
    .name = "${name}",
    .num_srcs = ${opcode.num_srcs},
index 108e144b5f45ca4e9c712ba959542460c1897b7f..4603cd3d74fe2f7eae2307118a8a2ba7c805238c 100644 (file)
@@ -116,7 +116,7 @@ nir_type_conversion_op(nir_alu_type src, nir_alu_type dst, nir_rounding_mode rnd
 }
 
 const nir_op_info nir_op_infos[nir_num_opcodes] = {
-% for name, opcode in sorted(opcodes.iteritems()):
+% for name, opcode in sorted(opcodes.items()):
 {
    .name = "${name}",
    .num_inputs = ${opcode.num_inputs},
index 8ad17c84d498d31907b55958ada1b0c404f26449..6b4e2fe052e38f5f87f1819c477e289cf94060d3 100644 (file)
@@ -29,7 +29,7 @@ template = """\
 #ifndef _NIR_OPCODES_
 #define _NIR_OPCODES_
 
-<% opcode_names = sorted(opcodes.iterkeys()) %>
+<% opcode_names = sorted(opcodes.keys()) %>
 
 typedef enum {
 % for name in opcode_names:
index faba79dcd34663b1524db841e7771b6dad878055..e31e9ff1035ce862c55669aa05b0fb3f3b9b0052 100644 (file)
@@ -108,13 +108,13 @@ ${item.token_name}_${prop}(const struct gen_device_info *devinfo)
 #ifdef __cplusplus
 extern "C" {
 #endif
-% for _, container in sorted(containers.iteritems(), key=itemgetter(0)):
+% for _, container in sorted(containers.items(), key=itemgetter(0)):
 
 /* ${container.name} */
 
 ${emit_per_gen_prop_func(container, 'length')}
 
-% for _, field in sorted(container.fields.iteritems(), key=itemgetter(0)):
+% for _, field in sorted(container.fields.items(), key=itemgetter(0)):
 
 /* ${container.name}::${field.name} */
 
@@ -220,7 +220,7 @@ class Container(object):
 
     def iter_prop(self, prop):
         if prop == 'length':
-            return self.length_by_gen.iteritems()
+            return self.length_by_gen.items()
         else:
             raise ValueError('Invalid property: "{0}"'.format(prop))
 
@@ -253,9 +253,9 @@ class Field(object):
 
     def iter_prop(self, prop):
         if prop == 'bits':
-            return self.bits_by_gen.iteritems()
+            return self.bits_by_gen.items()
         elif prop == 'start':
-            return self.start_by_gen.iteritems()
+            return self.start_by_gen.items()
         else:
             raise ValueError('Invalid property: "{0}"'.format(prop))
 
index db35069850160f105e9455b3b333f51575039714..8a3733649618557a9246afda6db24d814a4fd8da 100644 (file)
@@ -504,7 +504,7 @@ def get_entrypoints(doc, entrypoints_to_defines, start_index):
             assert e.core_version is None
             e.extensions.append(ext)
 
-    return [e for e in entrypoints.itervalues() if e.enabled]
+    return [e for e in entrypoints.values() if e.enabled]
 
 
 def get_entrypoints_defines(doc):
index 9a3a0507b815c561c185d8103ea550580a930e36..20057cf9c4f5ca63eb51a9b7727da5643451596e 100644 (file)
@@ -834,7 +834,7 @@ class gl_function( gl_item ):
         versions.
         """
         result = []
-        for entry_point, api_to_ver in self.entry_point_api_map.iteritems():
+        for entry_point, api_to_ver in self.entry_point_api_map.items():
             if api not in api_to_ver:
                 continue
             if version is not None and version < api_to_ver[api]:
@@ -881,7 +881,7 @@ class gl_api(object):
     def filter_functions(self, entry_point_list):
         """Filter out entry points not in entry_point_list."""
         functions_by_name = {}
-        for func in self.functions_by_name.itervalues():
+        for func in self.functions_by_name.values():
             entry_points = [ent for ent in func.entry_points if ent in entry_point_list]
             if entry_points:
                 func.filter_entry_points(entry_points)
@@ -894,7 +894,7 @@ class gl_api(object):
         optionally, not in the given version of the given API).
         """
         functions_by_name = {}
-        for func in self.functions_by_name.itervalues():
+        for func in self.functions_by_name.values():
             entry_points = func.entry_points_for_api_version(api, version)
             if entry_points:
                 func.filter_entry_points(entry_points)
@@ -1003,13 +1003,13 @@ class gl_api(object):
 
     def functionIterateByOffset(self):
         max_offset = -1
-        for func in self.functions_by_name.itervalues():
+        for func in self.functions_by_name.values():
             if func.offset > max_offset:
                 max_offset = func.offset
 
 
         temp = [None for i in range(0, max_offset + 1)]
-        for func in self.functions_by_name.itervalues():
+        for func in self.functions_by_name.values():
             if func.offset != -1:
                 temp[ func.offset ] = func
 
@@ -1023,7 +1023,7 @@ class gl_api(object):
 
 
     def functionIterateAll(self):
-        return self.functions_by_name.itervalues()
+        return self.functions_by_name.values()
 
 
     def enumIterateByName(self):
@@ -1064,7 +1064,7 @@ class gl_api(object):
 
 
     def typeIterate(self):
-        return self.types_by_name.itervalues()
+        return self.types_by_name.values()
 
 
     def find_type( self, type_name ):
index 73fa6c6daac793a2815987703ca163507b4bd174..49206b11671f2d3370824b10f50e76cee16d1386 100644 (file)
@@ -202,13 +202,13 @@ class PrintCode(gl_XML.gl_print_base):
 
         # Determine how many functions have a defined offset.
         func_count = 0
-        for f in api.functions_by_name.itervalues():
+        for f in api.functions_by_name.values():
             if f.offset != -1:
                 func_count += 1
 
         # Build the mapping from offset to function name.
         funcnames = [None] * func_count
-        for f in api.functions_by_name.itervalues():
+        for f in api.functions_by_name.values():
             if f.offset != -1:
                 if not (funcnames[f.offset] is None):
                     raise Exception("Function table has more than one function with same offset (offset %d, func %s)" % (f.offset, f.name))
index 4c70f253d730560f4252d3cffd619e267ff825b8..75382558e6d71d98f2247dc6496af068b45e542d 100644 (file)
@@ -653,7 +653,7 @@ def main():
 
             c("\n")
             register_lengths = compute_register_lengths(set);
-            for reg_type, reg_length in register_lengths.iteritems():
+            for reg_type, reg_length in register_lengths.items():
                 c("static struct brw_perf_query_register_prog {0}_{1}_{2}[{3}];".format(gen.chipset,
                                                                                         set.underscore_name,
                                                                                         reg_type, reg_length))
@@ -692,7 +692,7 @@ def main():
                     .c_offset = 46,
                 """))
 
-            for reg_type, reg_length in register_lengths.iteritems():
+            for reg_type, reg_length in register_lengths.items():
                 c(".{0} = {1}_{2}_{3},".format(reg_type, gen.chipset, set.underscore_name, reg_type))
                 c(".n_{0} = 0, /* Determined at runtime */".format(reg_type))