Modernize use of range()

In Python 3, range() behaves like the old xrange().
The difference between range() and xrange() is usually not significant,
especially if the whole result is iterated over.

Convert xrange() usage to range() for small ranges.
Use modern idioms in a few other uses of range().

Reviewed-By: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
This commit is contained in:
Petr Viktorin
2015-09-01 11:42:01 +02:00
committed by Jan Cholasta
parent 9e917cae39
commit 5178e9a597
22 changed files with 45 additions and 46 deletions
+1 -1
View File
@@ -294,7 +294,7 @@ class NameSpace(ReadOnly):
... def __repr__(self): ... def __repr__(self):
... return 'Member(%d)' % self.i ... return 'Member(%d)' % self.i
... ...
>>> ns = NameSpace(Member(i) for i in xrange(3)) >>> ns = NameSpace(Member(i) for i in range(3))
>>> ns >>> ns
NameSpace(<3 members>, sort=True) NameSpace(<3 members>, sort=True)
+3 -3
View File
@@ -1475,12 +1475,12 @@ class IA5Str(Str):
def _convert_scalar(self, value, index=None): def _convert_scalar(self, value, index=None):
if isinstance(value, six.string_types): if isinstance(value, six.string_types):
for i in xrange(len(value)): for char in value:
if ord(value[i]) > 127: if ord(char) > 127:
raise ConversionError(name=self.get_param_name(), raise ConversionError(name=self.get_param_name(),
index=index, index=index,
error=_('The character %(char)r is not allowed.') % error=_('The character %(char)r is not allowed.') %
dict(char=value[i],) dict(char=char,)
) )
return super(IA5Str, self)._convert_scalar(value, index) return super(IA5Str, self)._convert_scalar(value, index)
+2 -4
View File
@@ -322,10 +322,8 @@ def _aci_to_kw(ldap, a, test=False, pkey_only=False):
return kw return kw
kw['permissions'] = tuple(a.permissions) kw['permissions'] = tuple(a.permissions)
if 'targetattr' in a.target: if 'targetattr' in a.target:
kw['attrs'] = list(a.target['targetattr']['expression']) kw['attrs'] = tuple(unicode(e)
for i in xrange(len(kw['attrs'])): for e in a.target['targetattr']['expression'])
kw['attrs'][i] = unicode(kw['attrs'][i])
kw['attrs'] = tuple(kw['attrs'])
if 'targetfilter' in a.target: if 'targetfilter' in a.target:
target = a.target['targetfilter']['expression'] target = a.target['targetfilter']['expression']
if target.startswith('(memberOf=') or target.startswith('memberOf='): if target.startswith('(memberOf=') or target.startswith('memberOf='):
+7 -7
View File
@@ -427,16 +427,16 @@ class baseuser(LDAPObject):
manager = [manager] manager = [manager]
try: try:
container_dn = DN(container, api.env.basedn) container_dn = DN(container, api.env.basedn)
for m in xrange(len(manager)): for i, mgr in enumerate(manager):
if isinstance(manager[m], DN) and manager[m].endswith(container_dn): if isinstance(mgr, DN) and mgr.endswith(container_dn):
continue continue
entry_attrs = self.backend.find_entry_by_attr( entry_attrs = self.backend.find_entry_by_attr(
self.primary_key.name, manager[m], self.object_class, [''], self.primary_key.name, mgr, self.object_class, [''],
container_dn container_dn
) )
manager[m] = entry_attrs.dn manager[i] = entry_attrs.dn
except errors.NotFound: except errors.NotFound:
raise errors.NotFound(reason=_('manager %(manager)s not found') % dict(manager=manager[m])) raise errors.NotFound(reason=_('manager %(manager)s not found') % dict(manager=mgr))
return manager return manager
@@ -448,8 +448,8 @@ class baseuser(LDAPObject):
return return
if 'manager' in entry_attrs: if 'manager' in entry_attrs:
for m in xrange(len(entry_attrs['manager'])): for i, mgr in enumerate(entry_attrs['manager']):
entry_attrs['manager'][m] = self.get_primary_key_from_dn(entry_attrs['manager'][m]) entry_attrs['manager'][i] = self.get_primary_key_from_dn(mgr)
def _user_status(self, user, container): def _user_status(self, user, container):
assert isinstance(user, DN) assert isinstance(user, DN)
+2 -2
View File
@@ -1751,7 +1751,7 @@ def _get_auth_zone_ldap(name):
# Create all possible parent zone names # Create all possible parent zone names
search_name = name.make_absolute() search_name = name.make_absolute()
zone_names = [] zone_names = []
for i in xrange(len(search_name)): for i, name in enumerate(search_name):
zone_name_abs = DNSName(search_name[i:]).ToASCII() zone_name_abs = DNSName(search_name[i:]).ToASCII()
zone_names.append(zone_name_abs) zone_names.append(zone_name_abs)
# compatibility with IPA < 4.0, zone name can be relative # compatibility with IPA < 4.0, zone name can be relative
@@ -1826,7 +1826,7 @@ def _get_longest_match_ns_delegation_ldap(zone, name):
# create list of possible record names # create list of possible record names
possible_record_names = [DNSName(relative_record_name[i:]).ToASCII() possible_record_names = [DNSName(relative_record_name[i:]).ToASCII()
for i in xrange(len(relative_record_name))] for i in range(len(relative_record_name))]
# search filters # search filters
name_filter = ldap.make_filter({'idnsname': [possible_record_names]}) name_filter = ldap.make_filter({'idnsname': [possible_record_names]})
+4 -4
View File
@@ -774,10 +774,10 @@ class host_del(LDAPDelete):
for t in _record_types] for t in _record_types]
for attr in _attribute_types: for attr in _attribute_types:
if attr not in ['arecord', 'aaaarecord'] and attr in record: if attr not in ['arecord', 'aaaarecord'] and attr in record:
for i in xrange(len(record[attr])): for val in record[attr]:
if (record[attr][i].endswith(parts[0]) or if (val.endswith(parts[0]) or
record[attr][i].endswith(fqdn+'.')): val.endswith(fqdn + '.')):
delkw = { unicode(attr) : record[attr][i] } delkw = {unicode(attr): val}
api.Command['dnsrecord_del'](domain, api.Command['dnsrecord_del'](domain,
record['idnsname'][0], record['idnsname'][0],
**delkw) **delkw)
+1 -1
View File
@@ -13,7 +13,7 @@ def generate_master_key(p11, keylabel=u"dnssec-master", key_length=16,
while True: while True:
# check if key with this ID exist in LDAP or softHSM # check if key with this ID exist in LDAP or softHSM
# id is 16 Bytes long # id is 16 Bytes long
key_id = "".join(chr(random.randint(0, 255)) for _ in xrange(0, 16)) key_id = "".join(chr(random.randint(0, 255)) for _ in range(0, 16))
keys = p11.find_keys(_ipap11helper.KEY_CLASS_SECRET_KEY, keys = p11.find_keys(_ipap11helper.KEY_CLASS_SECRET_KEY,
label=keylabel, label=keylabel,
id=key_id) id=key_id)
+2 -2
View File
@@ -806,8 +806,8 @@ class CAInstance(DogtagInstance):
chain = chain.split("\n") chain = chain.split("\n")
root_nickname=[] root_nickname=[]
for i in xrange(len(chain)): for part in chain:
m = re.match('\ *"(.*)" \[.*', chain[i]) m = re.match('\ *"(.*)" \[.*', part)
if m: if m:
nick = m.groups(0)[0] nick = m.groups(0)[0]
if nick != "ipa-ca-agent" and nick[:7] != "Builtin": if nick != "ipa-ca-agent" and nick[:7] != "Builtin":
+1 -1
View File
@@ -310,7 +310,7 @@ class DNSKeySyncInstance(service.Service):
# check if key with this ID exist in softHSM # check if key with this ID exist in softHSM
# id is 16 Bytes long # id is 16 Bytes long
key_id = "".join(chr(random.randint(0, 255)) key_id = "".join(chr(random.randint(0, 255))
for _ in xrange(0, 16)) for _ in range(0, 16))
replica_pubkey_dn = DN(('ipk11UniqueId', 'autogenerate'), dn_base) replica_pubkey_dn = DN(('ipk11UniqueId', 'autogenerate'), dn_base)
+3 -2
View File
@@ -31,6 +31,7 @@ import dateutil.parser
import dateutil.tz import dateutil.tz
import nss.nss as nss import nss.nss as nss
import gssapi import gssapi
from six.moves import xrange
from ipapython import admintool from ipapython import admintool
from ipalib import api, errors from ipalib import api, errors
@@ -190,7 +191,7 @@ class PBKDF2KeyDerivation(XMLKeyDerivation):
# Loop through each block adding it to the derived key. # Loop through each block adding it to the derived key.
dk = [] dk = []
for i in xrange(1, blocks + 1): for i in range(1, blocks + 1):
# Set initial values. # Set initial values.
last = self.salt + struct.pack('>I', i) last = self.salt + struct.pack('>I', i)
hash = [0] * mac.digest_size hash = [0] * mac.digest_size
@@ -202,7 +203,7 @@ class PBKDF2KeyDerivation(XMLKeyDerivation):
last = tmp.digest() last = tmp.digest()
# XOR the previous hash with the new hash. # XOR the previous hash with the new hash.
for k in xrange(mac.digest_size): for k in range(mac.digest_size):
hash[k] ^= ord(last[k]) hash[k] ^= ord(last[k])
# Add block to derived key. # Add block to derived key.
+2 -2
View File
@@ -33,8 +33,8 @@ def entry_to_update(entry):
update = [] update = []
for attr in entry.keys(): for attr in entry.keys():
if isinstance(entry[attr], list): if isinstance(entry[attr], list):
for i in xrange(len(entry[attr])): for item in entry[attr]:
update.append(dict(attr=str(attr), value=str(entry[attr][i]))) update.append(dict(attr=str(attr), value=str(item)))
else: else:
update.append(dict(attr=str(attr), value=str(entry[attr]))) update.append(dict(attr=str(attr), value=str(entry[attr])))
+1 -1
View File
@@ -25,7 +25,7 @@ import struct
# A string that should have bytes 'x\00' through '\xff': # A string that should have bytes 'x\00' through '\xff':
binary_bytes = ''.join(struct.pack('B', d) for d in xrange(256)) binary_bytes = ''.join(struct.pack('B', d) for d in range(256))
assert '\x00' in binary_bytes and '\xff' in binary_bytes assert '\x00' in binary_bytes and '\xff' in binary_bytes
assert type(binary_bytes) is str and len(binary_bytes) == 256 assert type(binary_bytes) is str and len(binary_bytes) == 256
+3 -3
View File
@@ -209,7 +209,7 @@ class test_NameSpace(ClassChecker):
_cls = base.NameSpace _cls = base.NameSpace
def new(self, count, sort=True): def new(self, count, sort=True):
members = tuple(DummyMember(i) for i in xrange(count, 0, -1)) members = tuple(DummyMember(i) for i in range(count, 0, -1))
assert len(members) == count assert len(members) == count
o = self.cls(members, sort=sort) o = self.cls(members, sort=sort)
return (o, members) return (o, members)
@@ -305,12 +305,12 @@ class test_NameSpace(ClassChecker):
e = raises(KeyError, o.__getitem__, 'nope') e = raises(KeyError, o.__getitem__, 'nope')
# Test int indexes: # Test int indexes:
for i in xrange(cnt): for i in range(cnt):
assert o[i] is members[i] assert o[i] is members[i]
e = raises(IndexError, o.__getitem__, cnt) e = raises(IndexError, o.__getitem__, cnt)
# Test negative int indexes: # Test negative int indexes:
for i in xrange(1, cnt + 1): for i in range(1, cnt + 1):
assert o[-i] is members[-i] assert o[-i] is members[-i]
e = raises(IndexError, o.__getitem__, -(cnt + 1)) e = raises(IndexError, o.__getitem__, -(cnt + 1))
+1 -1
View File
@@ -91,7 +91,7 @@ class DummyAPI(object):
Command = property(__get_cmd) Command = property(__get_cmd)
def __cmd_iter(self, cnt): def __cmd_iter(self, cnt):
for i in xrange(cnt): for i in range(cnt):
yield DummyCommand(get_cmd_name(i)) yield DummyCommand(get_cmd_name(i))
def finalize(self): def finalize(self):
+2 -2
View File
@@ -298,7 +298,7 @@ class test_Env(ClassChecker):
""" """
o = self.cls() o = self.cls()
assert len(o) == 0 assert len(o) == 0
for i in xrange(1, 11): for i in range(1, 11):
key = 'key%d' % i key = 'key%d' % i
value = u'value %d' % i value = u'value %d' % i
o[key] = value o[key] = value
@@ -390,7 +390,7 @@ class test_Env(ClassChecker):
for (k, v) in orig.items(): for (k, v) in orig.items():
assert o[k] is v assert o[k] is v
assert list(o) == sorted(keys + ('key0', 'key1', 'key2', 'key3', 'config_loaded')) assert list(o) == sorted(keys + ('key0', 'key1', 'key2', 'key3', 'config_loaded'))
for i in xrange(4): for i in range(4):
assert o['key%d' % i] == ('var%d' % i) assert o['key%d' % i] == ('var%d' % i)
keys = tuple(o) keys = tuple(o)
+1 -1
View File
@@ -369,7 +369,7 @@ class BaseMessagesTest(object):
class test_PublicErrors(object): class test_PublicErrors(object):
message_list = errors.public_errors message_list = errors.public_errors
errno_range = xrange(900, 5999) errno_range = list(range(900, 5999))
required_classes = (StandardError, errors.PublicError) required_classes = (StandardError, errors.PublicError)
texts = errors._texts texts = errors._texts
+2 -2
View File
@@ -940,7 +940,7 @@ class test_Object(ClassChecker):
def get_attributes(cnt, format): def get_attributes(cnt, format):
for name in ['other', 'user', 'another']: for name in ['other', 'user', 'another']:
for i in xrange(cnt): for i in range(cnt):
yield DummyAttribute(name, format % i) yield DummyAttribute(name, format % i)
cnt = 10 cnt = 10
@@ -970,7 +970,7 @@ class test_Object(ClassChecker):
assert isinstance(namespace, plugable.NameSpace) assert isinstance(namespace, plugable.NameSpace)
assert len(namespace) == cnt assert len(namespace) == cnt
f = methods_format f = methods_format
for i in xrange(cnt): for i in range(cnt):
attr_name = f % i attr_name = f % i
attr = namespace[attr_name] attr = namespace[attr_name]
assert isinstance(attr, DummyAttribute) assert isinstance(attr, DummyAttribute)
+1 -1
View File
@@ -41,7 +41,7 @@ class test_PublicMessage(test_errors.test_PublicError):
class test_PublicMessages(test_errors.BaseMessagesTest): class test_PublicMessages(test_errors.BaseMessagesTest):
message_list = messages.public_messages message_list = messages.public_messages
errno_range = xrange(10000, 19999) errno_range = list(range(10000, 19999))
required_classes = (UserWarning, messages.PublicMessage) required_classes = (UserWarning, messages.PublicMessage)
texts = messages._texts texts = messages._texts
+2 -2
View File
@@ -239,14 +239,14 @@ class test_API(ClassChecker):
def get_plugin_name(b, p): def get_plugin_name(b, p):
return 'base%d_plugin%d' % (b, p) return 'base%d_plugin%d' % (b, p)
for b in xrange(2): for b in range(2):
base_name = get_base_name(b) base_name = get_base_name(b)
base = locals()[base_name] base = locals()[base_name]
ns = getattr(api, base_name) ns = getattr(api, base_name)
assert isinstance(ns, plugable.NameSpace) assert isinstance(ns, plugable.NameSpace)
assert read_only(api, base_name) is ns assert read_only(api, base_name) is ns
assert len(ns) == 3 assert len(ns) == 3
for p in xrange(3): for p in range(3):
plugin_name = get_plugin_name(b, p) plugin_name = get_plugin_name(b, p)
plugin = locals()[plugin_name] plugin = locals()[plugin_name]
inst = ns[plugin_name] inst = ns[plugin_name]
+1 -1
View File
@@ -89,7 +89,7 @@ class test_keyring(object):
assert(result == UPDATE_VALUE) assert(result == UPDATE_VALUE)
# Now update it 10 times # Now update it 10 times
for i in xrange(10): for i in range(10):
kernel_keyring.update_key(TEST_KEY, 'test %d' % i) kernel_keyring.update_key(TEST_KEY, 'test %d' % i)
result = kernel_keyring.read_key(TEST_KEY) result = kernel_keyring.read_key(TEST_KEY)
assert(result == 'test %d' % i) assert(result == 'test %d' % i)
@@ -88,13 +88,13 @@ class CertManipCmdTestBase(XMLRPC_test):
# list of certificates to add to entry # list of certificates to add to entry
cls.certs = [ cls.certs = [
get_testcert(DN(('CN', cls.entity_subject)), cls.entity_principal) get_testcert(DN(('CN', cls.entity_subject)), cls.entity_principal)
for i in xrange(3) for i in range(3)
] ]
# list of certificates for testing of removal of non-existent certs # list of certificates for testing of removal of non-existent certs
cls.nonexistent_certs = [ cls.nonexistent_certs = [
get_testcert(DN(('CN', cls.entity_subject)), cls.entity_principal) get_testcert(DN(('CN', cls.entity_subject)), cls.entity_principal)
for j in xrange(2) for j in range(2)
] ]
# cert subset to remove from entry # cert subset to remove from entry
+1 -1
View File
@@ -34,7 +34,7 @@ symmetric_vault_name = u'symmetric_test_vault'
asymmetric_vault_name = u'asymmetric_test_vault' asymmetric_vault_name = u'asymmetric_test_vault'
# binary data from \x00 to \xff # binary data from \x00 to \xff
secret = ''.join(chr(c) for c in xrange(0, 256)) secret = ''.join(chr(c) for c in range(0, 256))
password = u'password' password = u'password'
other_password = u'other_password' other_password = u'other_password'