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-08-12 15:23:56 +02:00
committed by Jan Cholasta
parent 9e917cae39
commit 5178e9a597
22 changed files with 45 additions and 46 deletions

View File

@@ -294,7 +294,7 @@ class NameSpace(ReadOnly):
... def __repr__(self):
... return 'Member(%d)' % self.i
...
>>> ns = NameSpace(Member(i) for i in xrange(3))
>>> ns = NameSpace(Member(i) for i in range(3))
>>> ns
NameSpace(<3 members>, sort=True)

View File

@@ -1475,12 +1475,12 @@ class IA5Str(Str):
def _convert_scalar(self, value, index=None):
if isinstance(value, six.string_types):
for i in xrange(len(value)):
if ord(value[i]) > 127:
for char in value:
if ord(char) > 127:
raise ConversionError(name=self.get_param_name(),
index=index,
error=_('The character %(char)r is not allowed.') %
dict(char=value[i],)
dict(char=char,)
)
return super(IA5Str, self)._convert_scalar(value, index)

View File

@@ -322,10 +322,8 @@ def _aci_to_kw(ldap, a, test=False, pkey_only=False):
return kw
kw['permissions'] = tuple(a.permissions)
if 'targetattr' in a.target:
kw['attrs'] = list(a.target['targetattr']['expression'])
for i in xrange(len(kw['attrs'])):
kw['attrs'][i] = unicode(kw['attrs'][i])
kw['attrs'] = tuple(kw['attrs'])
kw['attrs'] = tuple(unicode(e)
for e in a.target['targetattr']['expression'])
if 'targetfilter' in a.target:
target = a.target['targetfilter']['expression']
if target.startswith('(memberOf=') or target.startswith('memberOf='):

View File

@@ -427,16 +427,16 @@ class baseuser(LDAPObject):
manager = [manager]
try:
container_dn = DN(container, api.env.basedn)
for m in xrange(len(manager)):
if isinstance(manager[m], DN) and manager[m].endswith(container_dn):
for i, mgr in enumerate(manager):
if isinstance(mgr, DN) and mgr.endswith(container_dn):
continue
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
)
manager[m] = entry_attrs.dn
manager[i] = entry_attrs.dn
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
@@ -448,8 +448,8 @@ class baseuser(LDAPObject):
return
if 'manager' in entry_attrs:
for m in xrange(len(entry_attrs['manager'])):
entry_attrs['manager'][m] = self.get_primary_key_from_dn(entry_attrs['manager'][m])
for i, mgr in enumerate(entry_attrs['manager']):
entry_attrs['manager'][i] = self.get_primary_key_from_dn(mgr)
def _user_status(self, user, container):
assert isinstance(user, DN)

View File

@@ -1751,7 +1751,7 @@ def _get_auth_zone_ldap(name):
# Create all possible parent zone names
search_name = name.make_absolute()
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_names.append(zone_name_abs)
# 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
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
name_filter = ldap.make_filter({'idnsname': [possible_record_names]})

View File

@@ -774,10 +774,10 @@ class host_del(LDAPDelete):
for t in _record_types]
for attr in _attribute_types:
if attr not in ['arecord', 'aaaarecord'] and attr in record:
for i in xrange(len(record[attr])):
if (record[attr][i].endswith(parts[0]) or
record[attr][i].endswith(fqdn+'.')):
delkw = { unicode(attr) : record[attr][i] }
for val in record[attr]:
if (val.endswith(parts[0]) or
val.endswith(fqdn + '.')):
delkw = {unicode(attr): val}
api.Command['dnsrecord_del'](domain,
record['idnsname'][0],
**delkw)

View File

@@ -13,7 +13,7 @@ def generate_master_key(p11, keylabel=u"dnssec-master", key_length=16,
while True:
# check if key with this ID exist in LDAP or softHSM
# 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,
label=keylabel,
id=key_id)

View File

@@ -806,8 +806,8 @@ class CAInstance(DogtagInstance):
chain = chain.split("\n")
root_nickname=[]
for i in xrange(len(chain)):
m = re.match('\ *"(.*)" \[.*', chain[i])
for part in chain:
m = re.match('\ *"(.*)" \[.*', part)
if m:
nick = m.groups(0)[0]
if nick != "ipa-ca-agent" and nick[:7] != "Builtin":

View File

@@ -310,7 +310,7 @@ class DNSKeySyncInstance(service.Service):
# check if key with this ID exist in softHSM
# id is 16 Bytes long
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)

View File

@@ -31,6 +31,7 @@ import dateutil.parser
import dateutil.tz
import nss.nss as nss
import gssapi
from six.moves import xrange
from ipapython import admintool
from ipalib import api, errors
@@ -190,7 +191,7 @@ class PBKDF2KeyDerivation(XMLKeyDerivation):
# Loop through each block adding it to the derived key.
dk = []
for i in xrange(1, blocks + 1):
for i in range(1, blocks + 1):
# Set initial values.
last = self.salt + struct.pack('>I', i)
hash = [0] * mac.digest_size
@@ -202,7 +203,7 @@ class PBKDF2KeyDerivation(XMLKeyDerivation):
last = tmp.digest()
# 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])
# Add block to derived key.

View File

@@ -33,8 +33,8 @@ def entry_to_update(entry):
update = []
for attr in entry.keys():
if isinstance(entry[attr], list):
for i in xrange(len(entry[attr])):
update.append(dict(attr=str(attr), value=str(entry[attr][i])))
for item in entry[attr]:
update.append(dict(attr=str(attr), value=str(item)))
else:
update.append(dict(attr=str(attr), value=str(entry[attr])))

View File

@@ -25,7 +25,7 @@ import struct
# 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 type(binary_bytes) is str and len(binary_bytes) == 256

View File

@@ -209,7 +209,7 @@ class test_NameSpace(ClassChecker):
_cls = base.NameSpace
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
o = self.cls(members, sort=sort)
return (o, members)
@@ -305,12 +305,12 @@ class test_NameSpace(ClassChecker):
e = raises(KeyError, o.__getitem__, 'nope')
# Test int indexes:
for i in xrange(cnt):
for i in range(cnt):
assert o[i] is members[i]
e = raises(IndexError, o.__getitem__, cnt)
# Test negative int indexes:
for i in xrange(1, cnt + 1):
for i in range(1, cnt + 1):
assert o[-i] is members[-i]
e = raises(IndexError, o.__getitem__, -(cnt + 1))

View File

@@ -91,7 +91,7 @@ class DummyAPI(object):
Command = property(__get_cmd)
def __cmd_iter(self, cnt):
for i in xrange(cnt):
for i in range(cnt):
yield DummyCommand(get_cmd_name(i))
def finalize(self):

View File

@@ -298,7 +298,7 @@ class test_Env(ClassChecker):
"""
o = self.cls()
assert len(o) == 0
for i in xrange(1, 11):
for i in range(1, 11):
key = 'key%d' % i
value = u'value %d' % i
o[key] = value
@@ -390,7 +390,7 @@ class test_Env(ClassChecker):
for (k, v) in orig.items():
assert o[k] is v
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)
keys = tuple(o)

View File

@@ -369,7 +369,7 @@ class BaseMessagesTest(object):
class test_PublicErrors(object):
message_list = errors.public_errors
errno_range = xrange(900, 5999)
errno_range = list(range(900, 5999))
required_classes = (StandardError, errors.PublicError)
texts = errors._texts

View File

@@ -940,7 +940,7 @@ class test_Object(ClassChecker):
def get_attributes(cnt, format):
for name in ['other', 'user', 'another']:
for i in xrange(cnt):
for i in range(cnt):
yield DummyAttribute(name, format % i)
cnt = 10
@@ -970,7 +970,7 @@ class test_Object(ClassChecker):
assert isinstance(namespace, plugable.NameSpace)
assert len(namespace) == cnt
f = methods_format
for i in xrange(cnt):
for i in range(cnt):
attr_name = f % i
attr = namespace[attr_name]
assert isinstance(attr, DummyAttribute)

View File

@@ -41,7 +41,7 @@ class test_PublicMessage(test_errors.test_PublicError):
class test_PublicMessages(test_errors.BaseMessagesTest):
message_list = messages.public_messages
errno_range = xrange(10000, 19999)
errno_range = list(range(10000, 19999))
required_classes = (UserWarning, messages.PublicMessage)
texts = messages._texts

View File

@@ -239,14 +239,14 @@ class test_API(ClassChecker):
def get_plugin_name(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 = locals()[base_name]
ns = getattr(api, base_name)
assert isinstance(ns, plugable.NameSpace)
assert read_only(api, base_name) is ns
assert len(ns) == 3
for p in xrange(3):
for p in range(3):
plugin_name = get_plugin_name(b, p)
plugin = locals()[plugin_name]
inst = ns[plugin_name]

View File

@@ -89,7 +89,7 @@ class test_keyring(object):
assert(result == UPDATE_VALUE)
# Now update it 10 times
for i in xrange(10):
for i in range(10):
kernel_keyring.update_key(TEST_KEY, 'test %d' % i)
result = kernel_keyring.read_key(TEST_KEY)
assert(result == 'test %d' % i)

View File

@@ -88,13 +88,13 @@ class CertManipCmdTestBase(XMLRPC_test):
# list of certificates to add to entry
cls.certs = [
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
cls.nonexistent_certs = [
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

View File

@@ -34,7 +34,7 @@ symmetric_vault_name = u'symmetric_test_vault'
asymmetric_vault_name = u'asymmetric_test_vault'
# 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'
other_password = u'other_password'