[Mesa-dev] [PATCH 07/26] python: Better sort dictionary keys/values
Eric Engestrom
eric.engestrom at intel.com
Thu Jul 5 14:34:03 UTC 2018
On Thursday, 2018-07-05 15:17:38 +0200, Mathieu Bridon wrote:
> In Python 2, dict.keys() and dict.values() both return a list, which can
> be sorted in two ways:
>
> * l.sort() modifies the list in-place;
> * sorted(l) returns a new, sorted list;
>
> In Python 3, dict.keys() and dict.values() do not return lists any more,
> but iterators. Iterators do not have a .sort() method.
>
> This commit moves the build scripts to using sorted() on dict keys and
> values, which makes them compatible with both Python 2 and Python 3.
>
> Signed-off-by: Mathieu Bridon <bochecha at daitauha.fr>
With the two hunks from patch 4 moved here,
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> ---
> src/mapi/glapi/gen/glX_proto_send.py | 3 +--
> src/mapi/glapi/gen/glX_proto_size.py | 6 ++----
> src/mapi/glapi/gen/gl_XML.py | 12 ++++--------
> src/mapi/glapi/gen/gl_procs.py | 3 +--
> 4 files changed, 8 insertions(+), 16 deletions(-)
>
> diff --git a/src/mapi/glapi/gen/glX_proto_send.py b/src/mapi/glapi/gen/glX_proto_send.py
> index c389872044..fba2f0cc1e 100644
> --- a/src/mapi/glapi/gen/glX_proto_send.py
> +++ b/src/mapi/glapi/gen/glX_proto_send.py
> @@ -391,8 +391,7 @@ static const struct proc_pair
> const char *name;
> _glapi_proc proc;
> } proc_pairs[%d] = {""" % len(procs))
> - names = procs.keys()
> - names.sort()
> + names = sorted(procs.keys())
> for i in xrange(len(names)):
> comma = ',' if i < len(names) - 1 else ''
> print(' { "%s", (_glapi_proc) gl%s }%s' % (names[i], procs[names[i]], comma))
> diff --git a/src/mapi/glapi/gen/glX_proto_size.py b/src/mapi/glapi/gen/glX_proto_size.py
> index 18a6f2e502..2a843c3e24 100644
> --- a/src/mapi/glapi/gen/glX_proto_size.py
> +++ b/src/mapi/glapi/gen/glX_proto_size.py
> @@ -208,8 +208,7 @@ class glx_enum_function(object):
> for enum_obj in self.enums[e]:
> list[ enum_obj.priority() ] = enum_obj.name
>
> - keys = list.keys()
> - keys.sort()
> + keys = sorted(list.keys())
> for k in keys:
> j = list[k]
> if first:
> @@ -275,8 +274,7 @@ class glx_server_enum_function(glx_enum_function):
> o = f.offset_of( param_name )
> foo[o] = param_name
>
> - keys = foo.keys()
> - keys.sort()
> + keys = sorted(foo.keys())
> for o in keys:
> p = f.parameters_by_name[ foo[o] ]
>
> diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py
> index fcf8e62d3f..3a4f59221e 100644
> --- a/src/mapi/glapi/gen/gl_XML.py
> +++ b/src/mapi/glapi/gen/gl_XML.py
> @@ -988,12 +988,10 @@ class gl_api(object):
>
> functions = []
> for func_cat_type in range(0,4):
> - keys = lists[func_cat_type].keys()
> - keys.sort()
> + keys = sorted(lists[func_cat_type].keys())
>
> for key in keys:
> - names = lists[func_cat_type][key].keys()
> - names.sort()
> + names = sorted(lists[func_cat_type][key].keys())
>
> for name in names:
> functions.append(lists[func_cat_type][key][name])
> @@ -1027,8 +1025,7 @@ class gl_api(object):
>
>
> def enumIterateByName(self):
> - keys = self.enums_by_name.keys()
> - keys.sort()
> + keys = sorted(self.enums_by_name.keys())
>
> list = []
> for enum in keys:
> @@ -1047,8 +1044,7 @@ class gl_api(object):
>
> list = []
> for cat_type in range(0,4):
> - keys = self.categories[cat_type].keys()
> - keys.sort()
> + keys = sorted(self.categories[cat_type].keys())
>
> for key in keys:
> list.append(self.categories[cat_type][key])
> diff --git a/src/mapi/glapi/gen/gl_procs.py b/src/mapi/glapi/gen/gl_procs.py
> index 5718f42ab6..4bd3321610 100644
> --- a/src/mapi/glapi/gen/gl_procs.py
> +++ b/src/mapi/glapi/gen/gl_procs.py
> @@ -144,8 +144,7 @@ typedef struct {
> print('')
> print('/* OpenGL ES specific prototypes */')
> print('')
> - keys = categories.keys()
> - keys.sort()
> + keys = sorted(categories.keys())
> for key in keys:
> print('/* category %s */' % key)
> print("\n".join(categories[key]))
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list