python: Better use iterators
In Python 2, iterators had a .next() method. In Python 3, instead they have a .__next__() method, which is automatically called by the next() builtin. In addition, it is better to use the iter() builtin to create an iterator, rather than calling its __iter__() method. These were also introduced in Python 2.6, so using it makes the script compatible with 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>
This commit is contained in:

committed by
Dylan Baker

parent
01da2feb0e
commit
022d2a381d
@@ -62,7 +62,7 @@ class type_signature_iter(object):
|
|||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def next(self):
|
def __next__(self):
|
||||||
if self.i < len(self.source_types):
|
if self.i < len(self.source_types):
|
||||||
i = self.i
|
i = self.i
|
||||||
self.i += 1
|
self.i += 1
|
||||||
@@ -76,6 +76,8 @@ class type_signature_iter(object):
|
|||||||
else:
|
else:
|
||||||
raise StopIteration()
|
raise StopIteration()
|
||||||
|
|
||||||
|
next = __next__
|
||||||
|
|
||||||
|
|
||||||
uint_type = type("unsigned", "u", "GLSL_TYPE_UINT")
|
uint_type = type("unsigned", "u", "GLSL_TYPE_UINT")
|
||||||
int_type = type("int", "i", "GLSL_TYPE_INT")
|
int_type = type("int", "i", "GLSL_TYPE_INT")
|
||||||
|
@@ -56,7 +56,7 @@ class VarSet(object):
|
|||||||
def __getitem__(self, name):
|
def __getitem__(self, name):
|
||||||
if name not in self.names:
|
if name not in self.names:
|
||||||
assert not self.immutable, "Unknown replacement variable: " + name
|
assert not self.immutable, "Unknown replacement variable: " + name
|
||||||
self.names[name] = self.ids.next()
|
self.names[name] = next(self.ids)
|
||||||
|
|
||||||
return self.names[name]
|
return self.names[name]
|
||||||
|
|
||||||
@@ -468,7 +468,7 @@ condition_list = ['true']
|
|||||||
|
|
||||||
class SearchAndReplace(object):
|
class SearchAndReplace(object):
|
||||||
def __init__(self, transform):
|
def __init__(self, transform):
|
||||||
self.id = _optimization_ids.next()
|
self.id = next(_optimization_ids)
|
||||||
|
|
||||||
search = transform[0]
|
search = transform[0]
|
||||||
replace = transform[1]
|
replace = transform[1]
|
||||||
|
@@ -296,7 +296,7 @@ class glx_function(gl_XML.gl_function):
|
|||||||
parameters.extend( temp[1] )
|
parameters.extend( temp[1] )
|
||||||
if include_variable_parameters:
|
if include_variable_parameters:
|
||||||
parameters.extend( temp[2] )
|
parameters.extend( temp[2] )
|
||||||
return parameters.__iter__()
|
return iter(parameters)
|
||||||
|
|
||||||
|
|
||||||
def parameterIterateCounters(self):
|
def parameterIterateCounters(self):
|
||||||
@@ -304,7 +304,7 @@ class glx_function(gl_XML.gl_function):
|
|||||||
for name in self.counter_list:
|
for name in self.counter_list:
|
||||||
temp.append( self.parameters_by_name[ name ] )
|
temp.append( self.parameters_by_name[ name ] )
|
||||||
|
|
||||||
return temp.__iter__()
|
return iter(temp)
|
||||||
|
|
||||||
|
|
||||||
def parameterIterateOutputs(self):
|
def parameterIterateOutputs(self):
|
||||||
@@ -547,13 +547,14 @@ class glx_function_iterator(object):
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
||||||
def next(self):
|
def __next__(self):
|
||||||
f = self.iterator.next()
|
while True:
|
||||||
|
f = next(self.iterator)
|
||||||
|
|
||||||
if f.client_supported_for_indirect():
|
if f.client_supported_for_indirect():
|
||||||
return f
|
return f
|
||||||
else:
|
|
||||||
return self.next()
|
next = __next__
|
||||||
|
|
||||||
|
|
||||||
class glx_api(gl_XML.gl_api):
|
class glx_api(gl_XML.gl_api):
|
||||||
|
@@ -782,9 +782,9 @@ class gl_function( gl_item ):
|
|||||||
|
|
||||||
def parameterIterator(self, name = None):
|
def parameterIterator(self, name = None):
|
||||||
if name is not None:
|
if name is not None:
|
||||||
return self.entry_point_parameters[name].__iter__();
|
return iter(self.entry_point_parameters[name]);
|
||||||
else:
|
else:
|
||||||
return self.parameters.__iter__();
|
return iter(self.parameters);
|
||||||
|
|
||||||
|
|
||||||
def get_parameter_string(self, entrypoint = None):
|
def get_parameter_string(self, entrypoint = None):
|
||||||
@@ -996,7 +996,7 @@ class gl_api(object):
|
|||||||
for name in names:
|
for name in names:
|
||||||
functions.append(lists[func_cat_type][key][name])
|
functions.append(lists[func_cat_type][key][name])
|
||||||
|
|
||||||
return functions.__iter__()
|
return iter(functions)
|
||||||
|
|
||||||
|
|
||||||
def functionIterateByOffset(self):
|
def functionIterateByOffset(self):
|
||||||
@@ -1017,7 +1017,7 @@ class gl_api(object):
|
|||||||
if temp[i]:
|
if temp[i]:
|
||||||
list.append(temp[i])
|
list.append(temp[i])
|
||||||
|
|
||||||
return list.__iter__();
|
return iter(list);
|
||||||
|
|
||||||
|
|
||||||
def functionIterateAll(self):
|
def functionIterateAll(self):
|
||||||
@@ -1031,7 +1031,7 @@ class gl_api(object):
|
|||||||
for enum in keys:
|
for enum in keys:
|
||||||
list.append( self.enums_by_name[ enum ] )
|
list.append( self.enums_by_name[ enum ] )
|
||||||
|
|
||||||
return list.__iter__()
|
return iter(list)
|
||||||
|
|
||||||
|
|
||||||
def categoryIterate(self):
|
def categoryIterate(self):
|
||||||
@@ -1049,7 +1049,7 @@ class gl_api(object):
|
|||||||
for key in keys:
|
for key in keys:
|
||||||
list.append(self.categories[cat_type][key])
|
list.append(self.categories[cat_type][key])
|
||||||
|
|
||||||
return list.__iter__()
|
return iter(list)
|
||||||
|
|
||||||
|
|
||||||
def get_category_for_name( self, name ):
|
def get_category_for_name( self, name ):
|
||||||
|
Reference in New Issue
Block a user