From python-3000-checkins at python.org Wed May 2 20:54:45 2007 From: python-3000-checkins at python.org (guido.van.rossum) Date: Wed, 2 May 2007 20:54:45 +0200 (CEST) Subject: [Python-3000-checkins] r55077 - python/branches/p3yk/Lib/test/bad_coding2.py Message-ID: <20070502185445.6A6871E4011@bag.python.org> Author: guido.van.rossum Date: Wed May 2 20:54:37 2007 New Revision: 55077 Modified: python/branches/p3yk/Lib/test/bad_coding2.py Log: Use the new print syntax, at least. Modified: python/branches/p3yk/Lib/test/bad_coding2.py ============================================================================== --- python/branches/p3yk/Lib/test/bad_coding2.py (original) +++ python/branches/p3yk/Lib/test/bad_coding2.py Wed May 2 20:54:37 2007 @@ -1,2 +1,2 @@ ?#coding: utf8 -print '?' +print('?') From python-3000-checkins at python.org Sat May 5 06:27:35 2007 From: python-3000-checkins at python.org (fred.drake) Date: Sat, 5 May 2007 06:27:35 +0200 (CEST) Subject: [Python-3000-checkins] r55142 - python/branches/p3yk/Doc/whatsnew/Makefile Message-ID: <20070505042735.CA39B1E4006@bag.python.org> Author: fred.drake Date: Sat May 5 06:27:30 2007 New Revision: 55142 Removed: python/branches/p3yk/Doc/whatsnew/Makefile Log: remove old cruftiness Deleted: /python/branches/p3yk/Doc/whatsnew/Makefile ============================================================================== --- /python/branches/p3yk/Doc/whatsnew/Makefile Sat May 5 06:27:30 2007 +++ (empty file) @@ -1,3 +0,0 @@ - -check: - ../../python.exe ../../Tools/scripts/texcheck.py whatsnew25.tex From python-3000-checkins at python.org Sat May 5 06:52:21 2007 From: python-3000-checkins at python.org (fred.drake) Date: Sat, 5 May 2007 06:52:21 +0200 (CEST) Subject: [Python-3000-checkins] r55143 - python/branches/p3yk/Parser/asdl.py python/branches/p3yk/Parser/asdl_c.py python/branches/p3yk/Parser/spark.py Message-ID: <20070505045221.7C7F91E4002@bag.python.org> Author: fred.drake Date: Sat May 5 06:52:16 2007 New Revision: 55143 Modified: python/branches/p3yk/Parser/asdl.py python/branches/p3yk/Parser/asdl_c.py python/branches/p3yk/Parser/spark.py Log: make this work with the new Python Modified: python/branches/p3yk/Parser/asdl.py ============================================================================== --- python/branches/p3yk/Parser/asdl.py (original) +++ python/branches/p3yk/Parser/asdl.py Sat May 5 06:52:16 2007 @@ -45,7 +45,7 @@ self.value = value self.lineno = lineno -class ASDLSyntaxError: +class ASDLSyntaxError(Exception): def __init__(self, lineno, token=None, msg=None): self.lineno = lineno @@ -128,7 +128,7 @@ "version ::= Id String" if version.value != "version": raise ASDLSyntaxError(version.lineno, - msg="expected 'version', found %" % version) + msg="expected 'version', found %" % version) return V def p_definition_0(self, (definition,)): @@ -306,9 +306,9 @@ return try: meth(object, *args) - except Exception, err: - print "Error visiting", repr(object) - print err + except Exception as err: + print("Error visiting", repr(object)) + print(err) traceback.print_exc() # XXX hack if hasattr(self, 'file'): @@ -353,8 +353,8 @@ if conflict is None: self.cons[key] = name else: - print "Redefinition of constructor %s" % key - print "Defined in %s and %s" % (conflict, name) + print("Redefinition of constructor %s" % key) + print("Defined in %s and %s" % (conflict, name)) self.errors += 1 for f in cons.fields: self.visit(f, key) @@ -376,7 +376,7 @@ if t not in mod.types and not t in builtin_types: v.errors += 1 uses = ", ".join(v.types[t]) - print "Undefined type %s, used in %s" % (t, uses) + print("Undefined type %s, used in %s" % (t, uses)) return not v.errors @@ -388,10 +388,10 @@ tokens = scanner.tokenize(buf) try: return parser.parse(tokens) - except ASDLSyntaxError, err: - print err + except ASDLSyntaxError as err: + print(err) lines = buf.split("\n") - print lines[err.lineno - 1] # lines starts at 0, files at 1 + print(lines[err.lineno - 1]) # lines starts at 0, files at 1 if __name__ == "__main__": import glob @@ -404,12 +404,12 @@ files = glob.glob(testdir + "/*.asdl") for file in files: - print file + print(file) mod = parse(file) - print "module", mod.name - print len(mod.dfns), "definitions" + print("module", mod.name) + print(len(mod.dfns), "definitions") if not check(mod): - print "Check failed" + print("Check failed") else: for dfn in mod.dfns: - print dfn.type + print(dfn.type) Modified: python/branches/p3yk/Parser/asdl_c.py ============================================================================== --- python/branches/p3yk/Parser/asdl_c.py (original) +++ python/branches/p3yk/Parser/asdl_c.py Sat May 5 06:52:16 2007 @@ -741,25 +741,25 @@ if INC_DIR: p = "%s/%s-ast.h" % (INC_DIR, mod.name) f = open(p, "wb") - print >> f, auto_gen_msg - print >> f, '#include "asdl.h"\n' + print(auto_gen_msg, file=f) + print('#include "asdl.h"\n', file=f) c = ChainOfVisitors(TypeDefVisitor(f), StructVisitor(f), PrototypeVisitor(f), ) c.visit(mod) - print >>f, "PyObject* PyAST_mod2obj(mod_ty t);" + print("PyObject* PyAST_mod2obj(mod_ty t);", file=f) f.close() if SRC_DIR: p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c") f = open(p, "wb") - print >> f, auto_gen_msg - print >> f, c_file_msg % parse_version(mod) - print >> f, '#include "Python.h"' - print >> f, '#include "%s-ast.h"' % mod.name - print >> f - print >>f, "static PyTypeObject* AST_type;" + print(auto_gen_msg, file=f) + print(c_file_msg % parse_version(mod), file=f) + print('#include "Python.h"', file=f) + print('#include "%s-ast.h"' % mod.name, file=f) + print(file=f) + print("static PyTypeObject* AST_type;", file=f) v = ChainOfVisitors( PyTypesDeclareVisitor(f), PyTypesVisitor(f), @@ -779,7 +779,7 @@ SRC_DIR = '' opts, args = getopt.getopt(sys.argv[1:], "h:c:") if len(opts) != 1: - print "Must specify exactly one output file" + print("Must specify exactly one output file") sys.exit(1) for o, v in opts: if o == '-h': @@ -787,6 +787,6 @@ if o == '-c': SRC_DIR = v if len(args) != 1: - print "Must specify single input file" + print("Must specify single input file") sys.exit(1) main(args[0]) Modified: python/branches/p3yk/Parser/spark.py ============================================================================== --- python/branches/p3yk/Parser/spark.py (original) +++ python/branches/p3yk/Parser/spark.py Sat May 5 06:52:16 2007 @@ -22,8 +22,6 @@ __version__ = 'SPARK-0.7 (pre-alpha-5)' import re -import sys -import string def _namelist(instance): namelist, namedict, classlist = [], {}, [instance.__class__] @@ -57,10 +55,10 @@ rv.append(self.makeRE(name)) rv.append(self.makeRE('t_default')) - return string.join(rv, '|') + return '|'.join(rv) def error(self, s, pos): - print "Lexical error at position %s" % pos + print("Lexical error at position %s" % pos) raise SystemExit def tokenize(self, s): @@ -79,7 +77,7 @@ def t_default(self, s): r'( . | \n )+' - print "Specification error: unmatched input" + print("Specification error: unmatched input") raise SystemExit # @@ -172,7 +170,7 @@ def addRule(self, doc, func, _preprocess=1): fn = func - rules = string.split(doc) + rules = doc.split() index = [] for i in range(len(rules)): @@ -296,7 +294,7 @@ return None def error(self, token): - print "Syntax error at or near `%s' token" % token + print("Syntax error at or near `%s' token" % token) raise SystemExit def parse(self, tokens): @@ -419,8 +417,7 @@ # need to know the entire set of predicted nonterminals # to do this without accidentally duplicating states. # - core = predicted.keys() - core.sort() + core = sorted(predicted.keys()) tcore = tuple(core) if tcore in self.cores: self.edges[(k, None)] = self.cores[tcore] @@ -605,7 +602,7 @@ rule = self.ambiguity(self.newrules[nt]) else: rule = self.newrules[nt][0] - #print rule + #print(rule) rhs = rule[1] attr = [None] * len(rhs) @@ -624,7 +621,7 @@ rule = choices[0] if len(choices) > 1: rule = self.ambiguity(choices) - #print rule + #print(rule) rhs = rule[1] attr = [None] * len(rhs) @@ -826,15 +823,15 @@ def _dump(tokens, sets, states): for i in range(len(sets)): - print 'set', i + print('set', i) for item in sets[i]: - print '\t', item + print('\t', item) for (lhs, rhs), pos in states[item[0]].items: - print '\t\t', lhs, '::=', - print string.join(rhs[:pos]), - print '.', - print string.join(rhs[pos:]) + print('\t\t', lhs, '::=', end='') + print(' '.join(rhs[:pos]), end='') + print('.', end='') + print(' '.join(rhs[pos:])) if i < len(tokens): - print - print 'token', str(tokens[i]) - print + print() + print('token', str(tokens[i])) + print() From python-3000-checkins at python.org Mon May 7 07:29:19 2007 From: python-3000-checkins at python.org (neal.norwitz) Date: Mon, 7 May 2007 07:29:19 +0200 (CEST) Subject: [Python-3000-checkins] r55162 - python/branches/p3yk/Parser/asdl.py python/branches/p3yk/Parser/asdl_c.py python/branches/p3yk/Parser/spark.py Message-ID: <20070507052919.B5CC31E4002@bag.python.org> Author: neal.norwitz Date: Mon May 7 07:29:18 2007 New Revision: 55162 Modified: python/branches/p3yk/Parser/asdl.py python/branches/p3yk/Parser/asdl_c.py python/branches/p3yk/Parser/spark.py Log: Get asdl code gen working with Python 2.3. Should continue to work with 3.0 Modified: python/branches/p3yk/Parser/asdl.py ============================================================================== --- python/branches/p3yk/Parser/asdl.py (original) +++ python/branches/p3yk/Parser/asdl.py Mon May 7 07:29:18 2007 @@ -13,10 +13,15 @@ #__metaclass__ = type import os +import sys import traceback import spark +def output(string): + sys.stdout.write(string + "\n") + + class Token: # spark seems to dispatch in the parser based on a token's # type attribute @@ -306,9 +311,9 @@ return try: meth(object, *args) - except Exception as err: - print("Error visiting", repr(object)) - print(err) + except Exception: + output("Error visiting", repr(object)) + output(sys.exc_info()[1]) traceback.print_exc() # XXX hack if hasattr(self, 'file'): @@ -353,8 +358,8 @@ if conflict is None: self.cons[key] = name else: - print("Redefinition of constructor %s" % key) - print("Defined in %s and %s" % (conflict, name)) + output("Redefinition of constructor %s" % key) + output("Defined in %s and %s" % (conflict, name)) self.errors += 1 for f in cons.fields: self.visit(f, key) @@ -376,7 +381,7 @@ if t not in mod.types and not t in builtin_types: v.errors += 1 uses = ", ".join(v.types[t]) - print("Undefined type %s, used in %s" % (t, uses)) + output("Undefined type %s, used in %s" % (t, uses)) return not v.errors @@ -388,10 +393,10 @@ tokens = scanner.tokenize(buf) try: return parser.parse(tokens) - except ASDLSyntaxError as err: - print(err) + except ASDLSyntaxError: + output(sys.exc_info()[1]) lines = buf.split("\n") - print(lines[err.lineno - 1]) # lines starts at 0, files at 1 + output(lines[err.lineno - 1]) # lines starts at 0, files at 1 if __name__ == "__main__": import glob @@ -404,12 +409,12 @@ files = glob.glob(testdir + "/*.asdl") for file in files: - print(file) + output(file) mod = parse(file) - print("module", mod.name) - print(len(mod.dfns), "definitions") + output("module", mod.name) + output(len(mod.dfns), "definitions") if not check(mod): - print("Check failed") + output("Check failed") else: for dfn in mod.dfns: - print(dfn.type) + output(dfn.type) Modified: python/branches/p3yk/Parser/asdl_c.py ============================================================================== --- python/branches/p3yk/Parser/asdl_c.py (original) +++ python/branches/p3yk/Parser/asdl_c.py Mon May 7 07:29:18 2007 @@ -718,7 +718,7 @@ v.visit(object) v.emit("", 0) -common_msg = "/* File automatically generated by %s. */\n" +common_msg = "/* File automatically generated by %s. */\n\n" c_file_msg = """ /* @@ -728,6 +728,7 @@ The __version__ number is set to the revision number of the commit containing the grammar change. */ + """ def main(srcfile): @@ -741,25 +742,25 @@ if INC_DIR: p = "%s/%s-ast.h" % (INC_DIR, mod.name) f = open(p, "wb") - print(auto_gen_msg, file=f) - print('#include "asdl.h"\n', file=f) + f.write(auto_gen_msg) + f.write('#include "asdl.h"\n\n') c = ChainOfVisitors(TypeDefVisitor(f), StructVisitor(f), PrototypeVisitor(f), ) c.visit(mod) - print("PyObject* PyAST_mod2obj(mod_ty t);", file=f) + f.write("PyObject* PyAST_mod2obj(mod_ty t);\n") f.close() if SRC_DIR: p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c") f = open(p, "wb") - print(auto_gen_msg, file=f) - print(c_file_msg % parse_version(mod), file=f) - print('#include "Python.h"', file=f) - print('#include "%s-ast.h"' % mod.name, file=f) - print(file=f) - print("static PyTypeObject* AST_type;", file=f) + f.write(auto_gen_msg) + f.write(c_file_msg % parse_version(mod)) + f.write('#include "Python.h"\n') + f.write('#include "%s-ast.h"\n' % mod.name) + f.write('\n') + f.write("static PyTypeObject* AST_type;\n") v = ChainOfVisitors( PyTypesDeclareVisitor(f), PyTypesVisitor(f), @@ -779,7 +780,7 @@ SRC_DIR = '' opts, args = getopt.getopt(sys.argv[1:], "h:c:") if len(opts) != 1: - print("Must specify exactly one output file") + sys.stdout.write("Must specify exactly one output file\n") sys.exit(1) for o, v in opts: if o == '-h': @@ -787,6 +788,6 @@ if o == '-c': SRC_DIR = v if len(args) != 1: - print("Must specify single input file") + sys.stdout.write("Must specify single input file\n") sys.exit(1) main(args[0]) Modified: python/branches/p3yk/Parser/spark.py ============================================================================== --- python/branches/p3yk/Parser/spark.py (original) +++ python/branches/p3yk/Parser/spark.py Mon May 7 07:29:18 2007 @@ -22,6 +22,19 @@ __version__ = 'SPARK-0.7 (pre-alpha-5)' import re +import sys + +# Compatability with older pythons. +def output(string='', end='\n'): + sys.stdout.write(string + end) + +try: + sorted +except NameError: + def sorted(seq): + seq2 = seq[:] + seq2.sort() + return seq2 def _namelist(instance): namelist, namedict, classlist = [], {}, [instance.__class__] @@ -58,7 +71,7 @@ return '|'.join(rv) def error(self, s, pos): - print("Lexical error at position %s" % pos) + output("Lexical error at position %s" % pos) raise SystemExit def tokenize(self, s): @@ -77,7 +90,7 @@ def t_default(self, s): r'( . | \n )+' - print("Specification error: unmatched input") + output("Specification error: unmatched input") raise SystemExit # @@ -294,7 +307,7 @@ return None def error(self, token): - print("Syntax error at or near `%s' token" % token) + output("Syntax error at or near `%s' token" % token) raise SystemExit def parse(self, tokens): @@ -602,7 +615,7 @@ rule = self.ambiguity(self.newrules[nt]) else: rule = self.newrules[nt][0] - #print(rule) + #output(rule) rhs = rule[1] attr = [None] * len(rhs) @@ -621,7 +634,7 @@ rule = choices[0] if len(choices) > 1: rule = self.ambiguity(choices) - #print(rule) + #output(rule) rhs = rule[1] attr = [None] * len(rhs) @@ -823,15 +836,15 @@ def _dump(tokens, sets, states): for i in range(len(sets)): - print('set', i) + output('set %d' % i) for item in sets[i]: - print('\t', item) + output('\t', item) for (lhs, rhs), pos in states[item[0]].items: - print('\t\t', lhs, '::=', end='') - print(' '.join(rhs[:pos]), end='') - print('.', end='') - print(' '.join(rhs[pos:])) + output('\t\t', lhs, '::=', end='') + output(' '.join(rhs[:pos]), end='') + output('.', end='') + output(' '.join(rhs[pos:])) if i < len(tokens): - print() - print('token', str(tokens[i])) - print() + output() + output('token %s' % str(tokens[i])) + output() From python-3000-checkins at python.org Mon May 7 08:59:23 2007 From: python-3000-checkins at python.org (neal.norwitz) Date: Mon, 7 May 2007 08:59:23 +0200 (CEST) Subject: [Python-3000-checkins] r55163 - python/branches/py3k-struni/Misc/NEWS Message-ID: <20070507065923.58FD81E4002@bag.python.org> Author: neal.norwitz Date: Mon May 7 08:59:22 2007 New Revision: 55163 Modified: python/branches/py3k-struni/Misc/NEWS Log: Verify checkins to py3k branches go to 3000 list. Modified: python/branches/py3k-struni/Misc/NEWS ============================================================================== --- python/branches/py3k-struni/Misc/NEWS (original) +++ python/branches/py3k-struni/Misc/NEWS Mon May 7 08:59:22 2007 @@ -205,3 +205,4 @@ ----------- **(For information about older versions, consult the HISTORY file.)** + From python-3000-checkins at python.org Mon May 7 09:00:38 2007 From: python-3000-checkins at python.org (neal.norwitz) Date: Mon, 7 May 2007 09:00:38 +0200 (CEST) Subject: [Python-3000-checkins] r55164 - python/branches/p3yk/Misc/NEWS Message-ID: <20070507070038.D5A0B1E4002@bag.python.org> Author: neal.norwitz Date: Mon May 7 09:00:38 2007 New Revision: 55164 Modified: python/branches/p3yk/Misc/NEWS Log: Verify checkins to p3yk (sic) branch go to 3000 list. Modified: python/branches/p3yk/Misc/NEWS ============================================================================== --- python/branches/p3yk/Misc/NEWS (original) +++ python/branches/p3yk/Misc/NEWS Mon May 7 09:00:38 2007 @@ -205,3 +205,4 @@ ----------- **(For information about older versions, consult the HISTORY file.)** + From python-3000-checkins at python.org Mon May 7 09:12:36 2007 From: python-3000-checkins at python.org (neal.norwitz) Date: Mon, 7 May 2007 09:12:36 +0200 (CEST) Subject: [Python-3000-checkins] r55166 - python/branches/p3yk/Lib/test/test_warnings.py Message-ID: <20070507071236.B0F411E4002@bag.python.org> Author: neal.norwitz Date: Mon May 7 09:12:35 2007 New Revision: 55166 Modified: python/branches/p3yk/Lib/test/test_warnings.py Log: Fix this test so it runs again by importing warnings_test properly. Modified: python/branches/p3yk/Lib/test/test_warnings.py ============================================================================== --- python/branches/p3yk/Lib/test/test_warnings.py (original) +++ python/branches/p3yk/Lib/test/test_warnings.py Mon May 7 09:12:35 2007 @@ -3,7 +3,7 @@ import unittest from test import test_support -import warning_tests +from test import warning_tests class TestModule(unittest.TestCase): def setUp(self): From python-3000-checkins at python.org Mon May 7 10:03:40 2007 From: python-3000-checkins at python.org (neal.norwitz) Date: Mon, 7 May 2007 10:03:40 +0200 (CEST) Subject: [Python-3000-checkins] r55167 - in python/branches/p3yk: Demo/tix/grid.py Doc/lib/libdbhash.tex Doc/lib/libfuncs.tex Doc/lib/libitertools.tex Doc/lib/librandom.tex Doc/lib/libstdtypes.tex Doc/lib/libtimeit.tex Doc/lib/libtypes.tex Doc/tut/tut.tex Lib/Cookie.py Lib/bsddb/test/test_thread.py Lib/calendar.py Lib/copy.py Lib/ctypes/test/test_arrays.py Lib/ctypes/test/test_slicing.py Lib/difflib.py Lib/distutils/command/install.py Lib/doctest.py Lib/genericpath.py Lib/gettext.py Lib/heapq.py Lib/hmac.py Lib/idlelib/CodeContext.py Lib/mhlib.py Lib/pickle.py Lib/plat-mac/EasyDialogs.py Lib/plat-mac/applesingle.py Lib/plat-riscos/riscospath.py Lib/popen2.py Lib/pydoc.py Lib/random.py Lib/sqlite3/test/regression.py Lib/sre_compile.py Lib/string.py Lib/stringprep.py Lib/subprocess.py Lib/tarfile.py Lib/tempfile.py Lib/test/fork_wait.py Lib/test/list_tests.py Lib/test/output/test_cProfile Lib/test/output/test_profile Lib/test/pickletester.py Lib/test/seq_tests.py Lib/test/sortperf.py Lib/test/string_tests.py Lib/test/test_array.py Lib/test/test_binascii.py Lib/test/test_bisect.py Lib/test/test_bsddb.py Lib/test/test_bufio.py Lib/test/test_builtin.py Lib/test/test_bz2.py Lib/test/test_calendar.py Lib/test/test_codeccallbacks.py Lib/test/test_codecs.py Lib/test/test_compile.py Lib/test/test_complex.py Lib/test/test_contains.py Lib/test/test_copy.py Lib/test/test_csv.py Lib/test/test_datetime.py Lib/test/test_decimal.py Lib/test/test_deque.py Lib/test/test_descr.py Lib/test/test_dis.py Lib/test/test_doctest.py Lib/test/test_dummy_thread.py Lib/test/test_enumerate.py Lib/test/test_functools.py Lib/test/test_gc.py Lib/test/test_generators.py Lib/test/test_genexps.py Lib/test/test_grp.py Lib/test/test_heapq.py Lib/test/test_index.py Lib/test/test_io.py Lib/test/test_isinstance.py Lib/test/test_iter.py Lib/test/test_iterlen.py Lib/test/test_itertools.py Lib/test/test_list.py Lib/test/test_listcomps.py Lib/test/test_logging.py Lib/test/test_long.py Lib/test/test_mailbox.py Lib/test/test_mhlib.py Lib/test/test_mimetools.py Lib/test/test_mmap.py Lib/test/test_multibytecodec.py Lib/test/test_multibytecodec_support.py Lib/test/test_mutants.py Lib/test/test_operator.py Lib/test/test_peepholer.py Lib/test/test_pep352.py Lib/test/test_pow.py Lib/test/test_pprint.py Lib/test/test_pwd.py Lib/test/test_queue.py Lib/test/test_random.py Lib/test/test_repr.py Lib/test/test_richcmp.py Lib/test/test_set.py Lib/test/test_setcomps.py Lib/test/test_slice.py Lib/test/test_sort.py Lib/test/test_struct.py Lib/test/test_structseq.py Lib/test/test_tempfile.py Lib/test/test_trace.py Lib/test/test_tuple.py Lib/test/test_ucn.py Lib/test/test_unicode.py Lib/test/test_unicodedata.py Lib/test/test_userdict.py Lib/test/test_userlist.py Lib/test/test_winsound.py Lib/test/test_xdrlib.py Lib/test/test_xrange.py Lib/test/test_zipfile.py Lib/test/test_zipfile64.py Lib/test/time_hashlib.py Lib/types.py Lib/urllib.py Misc/NEWS Objects/rangeobject.c Parser/spark.py Python/bltinmodule.c Tools/pybench/Arithmetic.py Tools/pybench/Calls.py Tools/pybench/Constructs.py Tools/pybench/Dict.py Tools/pybench/Exceptions.py Tools/pybench/Imports.py Tools/pybench/Instances.py Tools/pybench/Lists.py Tools/pybench/Lookups.py Tools/pybench/NewInstances.py Tools/pybench/Numbers.py Tools/pybench/Strings.py Tools/pybench/Tuples.py Tools/pybench/Unicode.py Tools/pybench/systimes.py Tools/scripts/reindent.py Tools/unicode/makeunicodedata.py Tools/unicode/mkstringprep.py Message-ID: <20070507080340.86D301E4002@bag.python.org> Author: neal.norwitz Date: Mon May 7 10:03:22 2007 New Revision: 55167 Modified: python/branches/p3yk/Demo/tix/grid.py python/branches/p3yk/Doc/lib/libdbhash.tex python/branches/p3yk/Doc/lib/libfuncs.tex python/branches/p3yk/Doc/lib/libitertools.tex python/branches/p3yk/Doc/lib/librandom.tex python/branches/p3yk/Doc/lib/libstdtypes.tex python/branches/p3yk/Doc/lib/libtimeit.tex python/branches/p3yk/Doc/lib/libtypes.tex python/branches/p3yk/Doc/tut/tut.tex python/branches/p3yk/Lib/Cookie.py python/branches/p3yk/Lib/bsddb/test/test_thread.py python/branches/p3yk/Lib/calendar.py python/branches/p3yk/Lib/copy.py python/branches/p3yk/Lib/ctypes/test/test_arrays.py python/branches/p3yk/Lib/ctypes/test/test_slicing.py python/branches/p3yk/Lib/difflib.py python/branches/p3yk/Lib/distutils/command/install.py python/branches/p3yk/Lib/doctest.py python/branches/p3yk/Lib/genericpath.py python/branches/p3yk/Lib/gettext.py python/branches/p3yk/Lib/heapq.py python/branches/p3yk/Lib/hmac.py python/branches/p3yk/Lib/idlelib/CodeContext.py python/branches/p3yk/Lib/mhlib.py python/branches/p3yk/Lib/pickle.py python/branches/p3yk/Lib/plat-mac/EasyDialogs.py python/branches/p3yk/Lib/plat-mac/applesingle.py python/branches/p3yk/Lib/plat-riscos/riscospath.py python/branches/p3yk/Lib/popen2.py python/branches/p3yk/Lib/pydoc.py python/branches/p3yk/Lib/random.py python/branches/p3yk/Lib/sqlite3/test/regression.py python/branches/p3yk/Lib/sre_compile.py python/branches/p3yk/Lib/string.py python/branches/p3yk/Lib/stringprep.py python/branches/p3yk/Lib/subprocess.py python/branches/p3yk/Lib/tarfile.py python/branches/p3yk/Lib/tempfile.py python/branches/p3yk/Lib/test/fork_wait.py python/branches/p3yk/Lib/test/list_tests.py python/branches/p3yk/Lib/test/output/test_cProfile python/branches/p3yk/Lib/test/output/test_profile python/branches/p3yk/Lib/test/pickletester.py python/branches/p3yk/Lib/test/seq_tests.py python/branches/p3yk/Lib/test/sortperf.py python/branches/p3yk/Lib/test/string_tests.py python/branches/p3yk/Lib/test/test_array.py python/branches/p3yk/Lib/test/test_binascii.py python/branches/p3yk/Lib/test/test_bisect.py python/branches/p3yk/Lib/test/test_bsddb.py python/branches/p3yk/Lib/test/test_bufio.py python/branches/p3yk/Lib/test/test_builtin.py python/branches/p3yk/Lib/test/test_bz2.py python/branches/p3yk/Lib/test/test_calendar.py python/branches/p3yk/Lib/test/test_codeccallbacks.py python/branches/p3yk/Lib/test/test_codecs.py python/branches/p3yk/Lib/test/test_compile.py python/branches/p3yk/Lib/test/test_complex.py python/branches/p3yk/Lib/test/test_contains.py python/branches/p3yk/Lib/test/test_copy.py python/branches/p3yk/Lib/test/test_csv.py python/branches/p3yk/Lib/test/test_datetime.py python/branches/p3yk/Lib/test/test_decimal.py python/branches/p3yk/Lib/test/test_deque.py python/branches/p3yk/Lib/test/test_descr.py python/branches/p3yk/Lib/test/test_dis.py python/branches/p3yk/Lib/test/test_doctest.py python/branches/p3yk/Lib/test/test_dummy_thread.py python/branches/p3yk/Lib/test/test_enumerate.py python/branches/p3yk/Lib/test/test_functools.py python/branches/p3yk/Lib/test/test_gc.py python/branches/p3yk/Lib/test/test_generators.py python/branches/p3yk/Lib/test/test_genexps.py python/branches/p3yk/Lib/test/test_grp.py python/branches/p3yk/Lib/test/test_heapq.py python/branches/p3yk/Lib/test/test_index.py python/branches/p3yk/Lib/test/test_io.py python/branches/p3yk/Lib/test/test_isinstance.py python/branches/p3yk/Lib/test/test_iter.py python/branches/p3yk/Lib/test/test_iterlen.py python/branches/p3yk/Lib/test/test_itertools.py python/branches/p3yk/Lib/test/test_list.py python/branches/p3yk/Lib/test/test_listcomps.py python/branches/p3yk/Lib/test/test_logging.py python/branches/p3yk/Lib/test/test_long.py python/branches/p3yk/Lib/test/test_mailbox.py python/branches/p3yk/Lib/test/test_mhlib.py python/branches/p3yk/Lib/test/test_mimetools.py python/branches/p3yk/Lib/test/test_mmap.py python/branches/p3yk/Lib/test/test_multibytecodec.py python/branches/p3yk/Lib/test/test_multibytecodec_support.py python/branches/p3yk/Lib/test/test_mutants.py python/branches/p3yk/Lib/test/test_operator.py python/branches/p3yk/Lib/test/test_peepholer.py python/branches/p3yk/Lib/test/test_pep352.py python/branches/p3yk/Lib/test/test_pow.py python/branches/p3yk/Lib/test/test_pprint.py python/branches/p3yk/Lib/test/test_pwd.py python/branches/p3yk/Lib/test/test_queue.py python/branches/p3yk/Lib/test/test_random.py python/branches/p3yk/Lib/test/test_repr.py python/branches/p3yk/Lib/test/test_richcmp.py python/branches/p3yk/Lib/test/test_set.py python/branches/p3yk/Lib/test/test_setcomps.py python/branches/p3yk/Lib/test/test_slice.py python/branches/p3yk/Lib/test/test_sort.py python/branches/p3yk/Lib/test/test_struct.py python/branches/p3yk/Lib/test/test_structseq.py python/branches/p3yk/Lib/test/test_tempfile.py python/branches/p3yk/Lib/test/test_trace.py python/branches/p3yk/Lib/test/test_tuple.py python/branches/p3yk/Lib/test/test_ucn.py python/branches/p3yk/Lib/test/test_unicode.py python/branches/p3yk/Lib/test/test_unicodedata.py python/branches/p3yk/Lib/test/test_userdict.py python/branches/p3yk/Lib/test/test_userlist.py python/branches/p3yk/Lib/test/test_winsound.py python/branches/p3yk/Lib/test/test_xdrlib.py python/branches/p3yk/Lib/test/test_xrange.py python/branches/p3yk/Lib/test/test_zipfile.py python/branches/p3yk/Lib/test/test_zipfile64.py python/branches/p3yk/Lib/test/time_hashlib.py python/branches/p3yk/Lib/types.py python/branches/p3yk/Lib/urllib.py python/branches/p3yk/Misc/NEWS python/branches/p3yk/Objects/rangeobject.c python/branches/p3yk/Parser/spark.py python/branches/p3yk/Python/bltinmodule.c python/branches/p3yk/Tools/pybench/Arithmetic.py python/branches/p3yk/Tools/pybench/Calls.py python/branches/p3yk/Tools/pybench/Constructs.py python/branches/p3yk/Tools/pybench/Dict.py python/branches/p3yk/Tools/pybench/Exceptions.py python/branches/p3yk/Tools/pybench/Imports.py python/branches/p3yk/Tools/pybench/Instances.py python/branches/p3yk/Tools/pybench/Lists.py python/branches/p3yk/Tools/pybench/Lookups.py python/branches/p3yk/Tools/pybench/NewInstances.py python/branches/p3yk/Tools/pybench/Numbers.py python/branches/p3yk/Tools/pybench/Strings.py python/branches/p3yk/Tools/pybench/Tuples.py python/branches/p3yk/Tools/pybench/Unicode.py python/branches/p3yk/Tools/pybench/systimes.py python/branches/p3yk/Tools/scripts/reindent.py python/branches/p3yk/Tools/unicode/makeunicodedata.py python/branches/p3yk/Tools/unicode/mkstringprep.py Log: So long xrange. range() now supports values that are outside -sys.maxint to sys.maxint. floats raise a TypeError. This has been sitting for a long time. It probably has some problems and needs cleanup. Objects/rangeobject.c now uses 4-space indents since it is almost completely new. Modified: python/branches/p3yk/Demo/tix/grid.py ============================================================================== --- python/branches/p3yk/Demo/tix/grid.py (original) +++ python/branches/p3yk/Demo/tix/grid.py Mon May 7 10:03:22 2007 @@ -18,8 +18,8 @@ g = MyGrid(r, name="a_grid", selectunit="cell") g.pack(fill=tk.BOTH) -for x in xrange(5): - for y in xrange(5): +for x in range(5): + for y in range(5): g.set(x,y,text=str((x,y))) c = tk.Button(r, text="Close", command=r.destroy) Modified: python/branches/p3yk/Doc/lib/libdbhash.tex ============================================================================== --- python/branches/p3yk/Doc/lib/libdbhash.tex (original) +++ python/branches/p3yk/Doc/lib/libdbhash.tex Mon May 7 10:03:22 2007 @@ -72,7 +72,7 @@ \begin{verbatim} print db.first() -for i in xrange(1, len(db)): +for i in range(1, len(db)): print db.next() \end{verbatim} \end{methoddesc} Modified: python/branches/p3yk/Doc/lib/libfuncs.tex ============================================================================== --- python/branches/p3yk/Doc/lib/libfuncs.tex (original) +++ python/branches/p3yk/Doc/lib/libfuncs.tex Mon May 7 10:03:22 2007 @@ -868,7 +868,7 @@ \end{funcdesc} \begin{funcdesc}{range}{\optional{start,} stop\optional{, step}} - This is a versatile function to create lists containing arithmetic + This is a versatile function to create sequences containing arithmetic progressions. It is most often used in \keyword{for} loops. The arguments must be plain integers. If the \var{step} argument is omitted, it defaults to \code{1}. If the \var{start} argument is @@ -882,19 +882,19 @@ \exception{ValueError} is raised). Example: \begin{verbatim} ->>> range(10) +>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ->>> range(1, 11) +>>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ->>> range(0, 30, 5) +>>> list(range(0, 30, 5)) [0, 5, 10, 15, 20, 25] ->>> range(0, 10, 3) +>>> list(range(0, 10, 3)) [0, 3, 6, 9] ->>> range(0, -10, -1) +>>> list(range(0, -10, -1)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] ->>> range(0) +>>> list(range(0)) [] ->>> range(1, 0) +>>> list(range(1, 0)) [] \end{verbatim} \end{funcdesc} @@ -1230,24 +1230,6 @@ other scopes (such as modules) can be. This may change.} \end{funcdesc} -\begin{funcdesc}{xrange}{\optional{start,} stop\optional{, step}} - This function is very similar to \function{range()}, but returns an - ``xrange object'' instead of a list. This is an opaque sequence - type which yields the same values as the corresponding list, without - actually storing them all simultaneously. The advantage of - \function{xrange()} over \function{range()} is minimal (since - \function{xrange()} still has to create the values when asked for - them) except when a very large range is used on a memory-starved - machine or when all of the range's elements are never used (such as - when the loop is usually terminated with \keyword{break}). - - \note{\function{xrange()} is intended to be simple and fast. - Implementations may impose restrictions to achieve this. - The C implementation of Python restricts all arguments to - native C longs ("short" Python integers), and also requires - that the number of elements fit in a native C long.} -\end{funcdesc} - \begin{funcdesc}{zip}{\optional{iterable, \moreargs}} This function returns a list of tuples, where the \var{i}-th tuple contains the \var{i}-th element from each of the argument sequences or iterables. Modified: python/branches/p3yk/Doc/lib/libitertools.tex ============================================================================== --- python/branches/p3yk/Doc/lib/libitertools.tex (original) +++ python/branches/p3yk/Doc/lib/libitertools.tex Mon May 7 10:03:22 2007 @@ -161,7 +161,7 @@ key = lambda x: x self.keyfunc = key self.it = iter(iterable) - self.tgtkey = self.currkey = self.currvalue = xrange(0) + self.tgtkey = self.currkey = self.currvalue = [] def __iter__(self): return self def __next__(self): @@ -252,7 +252,7 @@ \begin{verbatim} def islice(iterable, *args): s = slice(*args) - it = iter(xrange(s.start or 0, s.stop or sys.maxint, s.step or 1)) + it = iter(range(s.start or 0, s.stop or sys.maxint, s.step or 1)) nexti = next(it) for i, element in enumerate(iterable): if i == nexti: @@ -342,7 +342,7 @@ while True: yield object else: - for i in xrange(times): + for i in range(times): yield object \end{verbatim} \end{funcdesc} @@ -425,7 +425,7 @@ Check 1202 is for $823.14 >>> import operator ->>> for cube in imap(operator.pow, xrange(1,5), repeat(3)): +>>> for cube in imap(operator.pow, range(1,5), repeat(3)): ... print cube ... 1 Modified: python/branches/p3yk/Doc/lib/librandom.tex ============================================================================== --- python/branches/p3yk/Doc/lib/librandom.tex (original) +++ python/branches/p3yk/Doc/lib/librandom.tex Mon May 7 10:03:22 2007 @@ -163,9 +163,9 @@ population contains repeats, then each occurrence is a possible selection in the sample. - To choose a sample from a range of integers, use an \function{xrange()} + To choose a sample from a range of integers, use an \function{range()} object as an argument. This is especially fast and space efficient for - sampling from a large population: \code{sample(xrange(10000000), 60)}. + sampling from a large population: \code{sample(range(10000000), 60)}. \end{funcdesc} Modified: python/branches/p3yk/Doc/lib/libstdtypes.tex ============================================================================== --- python/branches/p3yk/Doc/lib/libstdtypes.tex (original) +++ python/branches/p3yk/Doc/lib/libstdtypes.tex Mon May 7 10:03:22 2007 @@ -403,11 +403,11 @@ \section{Sequence Types --- \class{str}, \class{unicode}, \class{list}, - \class{tuple}, \class{buffer}, \class{xrange} + \class{tuple}, \class{buffer}, \class{range} \label{typesseq}} There are six sequence types: strings, Unicode strings, lists, -tuples, buffers, and xrange objects. +tuples, buffers, and range objects. String literals are written in single or double quotes: \code{'xyzzy'}, \code{"frobozz"}. See chapter 2 of the @@ -433,11 +433,11 @@ \obindex{buffer} Xrange objects are similar to buffers in that there is no specific -syntax to create them, but they are created using the \function{xrange()} -function.\bifuncindex{xrange} They don't support slicing, +syntax to create them, but they are created using the \function{range()} +function.\bifuncindex{range} They don't support slicing, concatenation or repetition, and using \code{in}, \code{not in}, \function{min()} or \function{max()} on them is inefficient. -\obindex{xrange} +\obindex{range} Most sequence types support the following operations. The \samp{in} and \samp{not in} operations have the same priorities as the comparison @@ -1069,11 +1069,11 @@ \refmodule{re}.\refstmodindex{re} -\subsection{XRange Type \label{typesseq-xrange}} +\subsection{XRange Type \label{typesseq-range}} -The \class{xrange}\obindex{xrange} type is an immutable sequence which -is commonly used for looping. The advantage of the \class{xrange} -type is that an \class{xrange} object will always take the same amount +The \class{range}\obindex{range} type is an immutable sequence which +is commonly used for looping. The advantage of the \class{range} +type is that an \class{range} object will always take the same amount of memory, no matter the size of the range it represents. There are no consistent performance advantages. Modified: python/branches/p3yk/Doc/lib/libtimeit.tex ============================================================================== --- python/branches/p3yk/Doc/lib/libtimeit.tex (original) +++ python/branches/p3yk/Doc/lib/libtimeit.tex Mon May 7 10:03:22 2007 @@ -98,7 +98,7 @@ measured. If so, GC can be re-enabled as the first statement in the \var{setup} string. For example: \begin{verbatim} - timeit.Timer('for i in xrange(10): oct(i)', 'gc.enable()').timeit() + timeit.Timer('for i in range(10): oct(i)', 'gc.enable()').timeit() \end{verbatim} \end{notice} \end{methoddesc} Modified: python/branches/p3yk/Doc/lib/libtypes.tex ============================================================================== --- python/branches/p3yk/Doc/lib/libtypes.tex (original) +++ python/branches/p3yk/Doc/lib/libtypes.tex Mon May 7 10:03:22 2007 @@ -147,9 +147,9 @@ The type of open file objects such as \code{sys.stdout}. \end{datadesc} -\begin{datadesc}{XRangeType} +\begin{datadesc}{RangeType} The type of range objects returned by -\function{xrange()}\bifuncindex{xrange}. +\function{range()}\bifuncindex{range}. \end{datadesc} \begin{datadesc}{SliceType} Modified: python/branches/p3yk/Doc/tut/tut.tex ============================================================================== --- python/branches/p3yk/Doc/tut/tut.tex (original) +++ python/branches/p3yk/Doc/tut/tut.tex Mon May 7 10:03:22 2007 @@ -2260,7 +2260,7 @@ function. \begin{verbatim} ->>> for i in reversed(xrange(1,10,2)): +>>> for i in reversed(range(1,10,2)): ... print i ... 9 @@ -2700,12 +2700,12 @@ 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'execfile', 'exit', 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', - 'id', 'int', 'isinstance', 'issubclass', 'iter', + 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'quit', 'range', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', - 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip'] + 'tuple', 'type', 'unichr', 'unicode', 'vars', 'zip'] \end{verbatim} @@ -4762,7 +4762,7 @@ >>> import random >>> random.choice(['apple', 'pear', 'banana']) 'apple' ->>> random.sample(xrange(100), 10) # sampling without replacement +>>> random.sample(range(100), 10) # sampling without replacement [30, 83, 16, 4, 8, 81, 41, 50, 18, 33] >>> random.random() # random float 0.17970987693706186 Modified: python/branches/p3yk/Lib/Cookie.py ============================================================================== --- python/branches/p3yk/Lib/Cookie.py (original) +++ python/branches/p3yk/Lib/Cookie.py Mon May 7 10:03:22 2007 @@ -305,7 +305,7 @@ '\375' : '\\375', '\376' : '\\376', '\377' : '\\377' } -_idmap = ''.join(chr(x) for x in xrange(256)) +_idmap = ''.join(chr(x) for x in range(256)) def _quote(str, LegalChars=_LegalChars, idmap=_idmap): # Modified: python/branches/p3yk/Lib/bsddb/test/test_thread.py ============================================================================== --- python/branches/p3yk/Lib/bsddb/test/test_thread.py (original) +++ python/branches/p3yk/Lib/bsddb/test/test_thread.py Mon May 7 10:03:22 2007 @@ -229,7 +229,7 @@ print("%s: creating records %d - %d" % (name, start, stop)) # create a bunch of records - for x in xrange(start, stop): + for x in range(start, stop): key = '%04d' % x dbutils.DeadlockWrap(d.put, key, self.makeData(key), max_retries=12) @@ -239,7 +239,7 @@ # do a bit or reading too if random() <= 0.05: - for y in xrange(start, x): + for y in range(start, x): key = '%04d' % x data = dbutils.DeadlockWrap(d.get, key, max_retries=12) self.assertEqual(data, self.makeData(key)) @@ -252,7 +252,7 @@ print("could not complete sync()...") # read them back, deleting a few - for x in xrange(start, stop): + for x in range(start, stop): key = '%04d' % x data = dbutils.DeadlockWrap(d.get, key, max_retries=12) if verbose and x % 100 == 0: Modified: python/branches/p3yk/Lib/calendar.py ============================================================================== --- python/branches/p3yk/Lib/calendar.py (original) +++ python/branches/p3yk/Lib/calendar.py Mon May 7 10:03:22 2007 @@ -45,7 +45,7 @@ class _localized_month: - _months = [datetime.date(2001, i+1, 1).strftime for i in xrange(12)] + _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)] _months.insert(0, lambda x: "") def __init__(self, format): @@ -65,7 +65,7 @@ class _localized_day: # January 1, 2001, was a Monday. - _days = [datetime.date(2001, 1, i+1).strftime for i in xrange(7)] + _days = [datetime.date(2001, 1, i+1).strftime for i in range(7)] def __init__(self, format): self.format = format @@ -144,7 +144,7 @@ Return a iterator for one week of weekday numbers starting with the configured first one. """ - for i in xrange(self.firstweekday, self.firstweekday + 7): + for i in range(self.firstweekday, self.firstweekday + 7): yield i%7 def itermonthdates(self, year, month): @@ -192,7 +192,7 @@ Each row represents a week; week entries are datetime.date values. """ dates = list(self.itermonthdates(year, month)) - return [ dates[i:i+7] for i in xrange(0, len(dates), 7) ] + return [ dates[i:i+7] for i in range(0, len(dates), 7) ] def monthdays2calendar(self, year, month): """ @@ -202,7 +202,7 @@ are zero. """ days = list(self.itermonthdays2(year, month)) - return [ days[i:i+7] for i in xrange(0, len(days), 7) ] + return [ days[i:i+7] for i in range(0, len(days), 7) ] def monthdayscalendar(self, year, month): """ @@ -210,7 +210,7 @@ Each row represents a week; days outside this month are zero. """ days = list(self.itermonthdays(year, month)) - return [ days[i:i+7] for i in xrange(0, len(days), 7) ] + return [ days[i:i+7] for i in range(0, len(days), 7) ] def yeardatescalendar(self, year, width=3): """ @@ -221,9 +221,9 @@ """ months = [ self.monthdatescalendar(year, i) - for i in xrange(January, January+12) + for i in range(January, January+12) ] - return [months[i:i+width] for i in xrange(0, len(months), width) ] + return [months[i:i+width] for i in range(0, len(months), width) ] def yeardays2calendar(self, year, width=3): """ @@ -234,9 +234,9 @@ """ months = [ self.monthdays2calendar(year, i) - for i in xrange(January, January+12) + for i in range(January, January+12) ] - return [months[i:i+width] for i in xrange(0, len(months), width) ] + return [months[i:i+width] for i in range(0, len(months), width) ] def yeardayscalendar(self, year, width=3): """ @@ -246,9 +246,9 @@ """ months = [ self.monthdayscalendar(year, i) - for i in xrange(January, January+12) + for i in range(January, January+12) ] - return [months[i:i+width] for i in xrange(0, len(months), width) ] + return [months[i:i+width] for i in range(0, len(months), width) ] class TextCalendar(Calendar): @@ -341,7 +341,7 @@ header = self.formatweekheader(w) for (i, row) in enumerate(self.yeardays2calendar(theyear, m)): # months in this row - months = xrange(m*i+1, min(m*(i+1)+1, 13)) + months = range(m*i+1, min(m*(i+1)+1, 13)) a('\n'*l) names = (self.formatmonthname(theyear, k, colwidth, False) for k in months) @@ -352,7 +352,7 @@ a('\n'*l) # max number of weeks for this row height = max(len(cal) for cal in row) - for j in xrange(height): + for j in range(height): weeks = [] for cal in row: if j >= len(cal): @@ -444,9 +444,9 @@ a('') a('\n') a('' % (width, theyear)) - for i in xrange(January, January+12, width): + for i in range(January, January+12, width): # months in this row - months = xrange(i, min(i+width, 13)) + months = range(i, min(i+width, 13)) a('') for m in months: a('
%s
') Modified: python/branches/p3yk/Lib/copy.py ============================================================================== --- python/branches/p3yk/Lib/copy.py (original) +++ python/branches/p3yk/Lib/copy.py Mon May 7 10:03:22 2007 @@ -100,7 +100,7 @@ def _copy_immutable(x): return x for t in (type(None), int, float, bool, str, tuple, - frozenset, type, xrange, types.ClassType, + frozenset, type, range, types.ClassType, types.BuiltinFunctionType, types.FunctionType): d[t] = _copy_immutable @@ -194,7 +194,7 @@ except AttributeError: pass d[type] = _deepcopy_atomic -d[xrange] = _deepcopy_atomic +d[range] = _deepcopy_atomic d[types.ClassType] = _deepcopy_atomic d[types.BuiltinFunctionType] = _deepcopy_atomic d[types.FunctionType] = _deepcopy_atomic Modified: python/branches/p3yk/Lib/ctypes/test/test_arrays.py ============================================================================== --- python/branches/p3yk/Lib/ctypes/test/test_arrays.py (original) +++ python/branches/p3yk/Lib/ctypes/test/test_arrays.py Mon May 7 10:03:22 2007 @@ -11,7 +11,7 @@ # create classes holding simple numeric types, and check # various properties. - init = range(15, 25) + init = list(range(15, 25)) for fmt in formats: alen = len(init) @@ -27,7 +27,7 @@ # change the items from operator import setitem - new_values = range(42, 42+alen) + new_values = list(range(42, 42+alen)) [setitem(ia, n, new_values[n]) for n in range(alen)] values = [ia[i] for i in range(len(init))] self.failUnlessEqual(values, new_values) Modified: python/branches/p3yk/Lib/ctypes/test/test_slicing.py ============================================================================== --- python/branches/p3yk/Lib/ctypes/test/test_slicing.py (original) +++ python/branches/p3yk/Lib/ctypes/test/test_slicing.py Mon May 7 10:03:22 2007 @@ -5,8 +5,8 @@ class SlicesTestCase(unittest.TestCase): def test_getslice_cint(self): - a = (c_int * 100)(*xrange(1100, 1200)) - b = range(1100, 1200) + a = (c_int * 100)(*range(1100, 1200)) + b = list(range(1100, 1200)) self.failUnlessEqual(a[0:2], b[0:2]) self.failUnlessEqual(len(a), len(b)) self.failUnlessEqual(a[5:7], b[5:7]) @@ -14,14 +14,14 @@ self.failUnlessEqual(a[:], b[:]) a[0:5] = range(5, 10) - self.failUnlessEqual(a[0:5], range(5, 10)) + self.failUnlessEqual(a[0:5], list(range(5, 10))) def test_setslice_cint(self): - a = (c_int * 100)(*xrange(1100, 1200)) - b = range(1100, 1200) + a = (c_int * 100)(*range(1100, 1200)) + b = list(range(1100, 1200)) - a[32:47] = range(32, 47) - self.failUnlessEqual(a[32:47], range(32, 47)) + a[32:47] = list(range(32, 47)) + self.failUnlessEqual(a[32:47], list(range(32, 47))) from operator import setslice @@ -50,7 +50,7 @@ dll.my_strdup.restype = POINTER(c_byte) res = dll.my_strdup(s) - self.failUnlessEqual(res[:len(s)], range(ord("a"), ord("z")+1)) + self.failUnlessEqual(res[:len(s)], list(range(ord("a"), ord("z")+1))) dll.my_free(res) def test_char_ptr_with_free(self): @@ -111,7 +111,8 @@ else: return res = dll.my_wcsdup(s) - self.failUnlessEqual(res[:len(s)-1], range(ord("a"), ord("z")+1)) + self.failUnlessEqual(res[:len(s)-1], + list(range(ord("a"), ord("z")+1))) dll.my_free(res) ################################################################ Modified: python/branches/p3yk/Lib/difflib.py ============================================================================== --- python/branches/p3yk/Lib/difflib.py (original) +++ python/branches/p3yk/Lib/difflib.py Mon May 7 10:03:22 2007 @@ -407,7 +407,7 @@ # junk-free match ending with a[i-1] and b[j] j2len = {} nothing = [] - for i in xrange(alo, ahi): + for i in range(alo, ahi): # look at all instances of a[i] in b; note that because # b2j has no junk keys, the loop is skipped if a[i] is junk j2lenget = j2len.get @@ -921,7 +921,7 @@ def _dump(self, tag, x, lo, hi): """Generate comparison results for a same-tagged range.""" - for i in xrange(lo, hi): + for i in range(lo, hi): yield '%s %s' % (tag, x[i]) def _plain_replace(self, a, alo, ahi, b, blo, bhi): @@ -967,10 +967,10 @@ # search for the pair that matches best without being identical # (identical lines must be junk lines, & we don't want to synch up # on junk -- unless we have to) - for j in xrange(blo, bhi): + for j in range(blo, bhi): bj = b[j] cruncher.set_seq2(bj) - for i in xrange(alo, ahi): + for i in range(alo, ahi): ai = a[i] if ai == bj: if eqi is None: Modified: python/branches/p3yk/Lib/distutils/command/install.py ============================================================================== --- python/branches/p3yk/Lib/distutils/command/install.py (original) +++ python/branches/p3yk/Lib/distutils/command/install.py Mon May 7 10:03:22 2007 @@ -517,7 +517,7 @@ outputs = self.get_outputs() if self.root: # strip any package prefix root_len = len(self.root) - for counter in xrange(len(outputs)): + for counter in range(len(outputs)): outputs[counter] = outputs[counter][root_len:] self.execute(write_file, (self.record, outputs), Modified: python/branches/p3yk/Lib/doctest.py ============================================================================== --- python/branches/p3yk/Lib/doctest.py (original) +++ python/branches/p3yk/Lib/doctest.py Mon May 7 10:03:22 2007 @@ -2610,14 +2610,14 @@ "ellipsis": r""" If the ellipsis flag is used, then '...' can be used to elide substrings in the desired output: - >>> print(range(1000)) #doctest: +ELLIPSIS + >>> print(list(range(1000))) #doctest: +ELLIPSIS [0, 1, 2, ..., 999] """, "whitespace normalization": r""" If the whitespace normalization flag is used, then differences in whitespace are ignored. - >>> print(range(30)) #doctest: +NORMALIZE_WHITESPACE + >>> print(list(range(30))) #doctest: +NORMALIZE_WHITESPACE [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29] Modified: python/branches/p3yk/Lib/genericpath.py ============================================================================== --- python/branches/p3yk/Lib/genericpath.py (original) +++ python/branches/p3yk/Lib/genericpath.py Mon May 7 10:03:22 2007 @@ -71,7 +71,7 @@ s1 = min(m) s2 = max(m) n = min(len(s1), len(s2)) - for i in xrange(n): + for i in range(n): if s1[i] != s2[i]: return s1[:i] return s1[:n] Modified: python/branches/p3yk/Lib/gettext.py ============================================================================== --- python/branches/p3yk/Lib/gettext.py (original) +++ python/branches/p3yk/Lib/gettext.py Mon May 7 10:03:22 2007 @@ -281,7 +281,7 @@ raise IOError(0, 'Bad magic number', filename) # Now put all messages from the .mo file buffer into the catalog # dictionary. - for i in xrange(0, msgcount): + for i in range(0, msgcount): mlen, moff = unpack(ii, buf[masteridx:masteridx+8]) mend = moff + mlen tlen, toff = unpack(ii, buf[transidx:transidx+8]) Modified: python/branches/p3yk/Lib/heapq.py ============================================================================== --- python/branches/p3yk/Lib/heapq.py (original) +++ python/branches/p3yk/Lib/heapq.py Mon May 7 10:03:22 2007 @@ -173,7 +173,7 @@ # or i < (n-1)/2. If n is even = 2*j, this is (2*j-1)/2 = j-1/2 so # j-1 is the largest, which is n//2 - 1. If n is odd = 2*j+1, this is # (2*j+1-1)/2 = j so j-1 is the largest, and that's again n//2-1. - for i in reversed(xrange(n//2)): + for i in reversed(range(n//2)): _siftup(x, i) def nlargest(n, iterable): Modified: python/branches/p3yk/Lib/hmac.py ============================================================================== --- python/branches/p3yk/Lib/hmac.py (original) +++ python/branches/p3yk/Lib/hmac.py Mon May 7 10:03:22 2007 @@ -3,8 +3,8 @@ Implements the HMAC algorithm as described by RFC 2104. """ -trans_5C = "".join ([chr (x ^ 0x5C) for x in xrange(256)]) -trans_36 = "".join ([chr (x ^ 0x36) for x in xrange(256)]) +trans_5C = "".join ([chr (x ^ 0x5C) for x in range(256)]) +trans_36 = "".join ([chr (x ^ 0x36) for x in range(256)]) # The size of the digests returned by HMAC depends on the underlying # hashing module used. Use digest_size from the instance of HMAC instead. Modified: python/branches/p3yk/Lib/idlelib/CodeContext.py ============================================================================== --- python/branches/p3yk/Lib/idlelib/CodeContext.py (original) +++ python/branches/p3yk/Lib/idlelib/CodeContext.py Mon May 7 10:03:22 2007 @@ -117,7 +117,7 @@ lastindent = INFINITY # For a line to be interesting, it must begin with a block opening # keyword, and have less indentation than lastindent. - for linenum in xrange(new_topvisible, stopline-1, -1): + for linenum in range(new_topvisible, stopline-1, -1): indent, text, opener = self.get_line_info(linenum) if indent < lastindent: lastindent = indent Modified: python/branches/p3yk/Lib/mhlib.py ============================================================================== --- python/branches/p3yk/Lib/mhlib.py (original) +++ python/branches/p3yk/Lib/mhlib.py Mon May 7 10:03:22 2007 @@ -828,7 +828,7 @@ def tolist(self): l = [] for lo, hi in self.pairs: - m = range(lo, hi+1) + m = list(range(lo, hi+1)) l = l + m return l Modified: python/branches/p3yk/Lib/pickle.py ============================================================================== --- python/branches/p3yk/Lib/pickle.py (original) +++ python/branches/p3yk/Lib/pickle.py Mon May 7 10:03:22 2007 @@ -635,7 +635,7 @@ write(APPEND) return - r = xrange(self._BATCHSIZE) + r = range(self._BATCHSIZE) while items is not None: tmp = [] for i in r: @@ -683,7 +683,7 @@ write(SETITEM) return - r = xrange(self._BATCHSIZE) + r = range(self._BATCHSIZE) while items is not None: tmp = [] for i in r: Modified: python/branches/p3yk/Lib/plat-mac/EasyDialogs.py ============================================================================== --- python/branches/p3yk/Lib/plat-mac/EasyDialogs.py (original) +++ python/branches/p3yk/Lib/plat-mac/EasyDialogs.py Mon May 7 10:03:22 2007 @@ -814,11 +814,11 @@ try: if hasattr(MacOS, 'SchedParams'): appsw = MacOS.SchedParams(1, 0) - for i in xrange(20): + for i in range(20): bar.inc() time.sleep(0.05) bar.set(0,100) - for i in xrange(100): + for i in range(100): bar.set(i) time.sleep(0.05) if i % 10 == 0: Modified: python/branches/p3yk/Lib/plat-mac/applesingle.py ============================================================================== --- python/branches/p3yk/Lib/plat-mac/applesingle.py (original) +++ python/branches/p3yk/Lib/plat-mac/applesingle.py Mon May 7 10:03:22 2007 @@ -60,7 +60,7 @@ raise Error, "Unknown AppleSingle version number 0x%8.8x" % (version,) if nentry <= 0: raise Error, "AppleSingle file contains no forks" - headers = [fileobj.read(AS_ENTRY_LENGTH) for i in xrange(nentry)] + headers = [fileobj.read(AS_ENTRY_LENGTH) for i in range(nentry)] self.forks = [] for hdr in headers: try: Modified: python/branches/p3yk/Lib/plat-riscos/riscospath.py ============================================================================== --- python/branches/p3yk/Lib/plat-riscos/riscospath.py (original) +++ python/branches/p3yk/Lib/plat-riscos/riscospath.py Mon May 7 10:03:22 2007 @@ -174,7 +174,7 @@ s1 = min(m) s2 = max(m) n = min(len(s1), len(s2)) - for i in xrange(n): + for i in range(n): if s1[i] != s2[i]: return s1[:i] return s1[:n] Modified: python/branches/p3yk/Lib/popen2.py ============================================================================== --- python/branches/p3yk/Lib/popen2.py (original) +++ python/branches/p3yk/Lib/popen2.py Mon May 7 10:03:22 2007 @@ -79,7 +79,7 @@ def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] - for i in xrange(3, MAXFD): + for i in range(3, MAXFD): try: os.close(i) except OSError: Modified: python/branches/p3yk/Lib/pydoc.py ============================================================================== --- python/branches/p3yk/Lib/pydoc.py (original) +++ python/branches/p3yk/Lib/pydoc.py Mon May 7 10:03:22 2007 @@ -1582,7 +1582,7 @@ 'INTEGER': ('ref/integers', 'int range'), 'FLOAT': ('ref/floating', 'float math'), 'COMPLEX': ('ref/imaginary', 'complex cmath'), - 'SEQUENCES': ('lib/typesseq', 'STRINGMETHODS FORMATTING xrange LISTS'), + 'SEQUENCES': ('lib/typesseq', 'STRINGMETHODS FORMATTING range LISTS'), 'MAPPINGS': 'DICTIONARIES', 'FUNCTIONS': ('lib/typesfunctions', 'def TYPES'), 'METHODS': ('lib/typesmethods', 'class def CLASSES TYPES'), Modified: python/branches/p3yk/Lib/random.py ============================================================================== --- python/branches/p3yk/Lib/random.py (original) +++ python/branches/p3yk/Lib/random.py Mon May 7 10:03:22 2007 @@ -256,7 +256,7 @@ if random is None: random = self.random - for i in reversed(xrange(1, len(x))): + for i in reversed(range(1, len(x))): # pick an element in x[:i+1] with which to exchange x[i] j = int(random() * (i+1)) x[i], x[j] = x[j], x[i] @@ -274,9 +274,9 @@ population contains repeats, then each occurrence is a possible selection in the sample. - To choose a sample in a range of integers, use xrange as an argument. + To choose a sample in a range of integers, use range as an argument. This is especially fast and space efficient for sampling from a - large population: sample(xrange(10000000), 60) + large population: sample(range(10000000), 60) """ # XXX Although the documentation says `population` is "a sequence", @@ -311,7 +311,7 @@ # An n-length list is smaller than a k-length set, or this is a # mapping type so the other algorithm wouldn't work. pool = list(population) - for i in xrange(k): # invariant: non-selected at [0,n-i) + for i in range(k): # invariant: non-selected at [0,n-i) j = _int(random() * (n-i)) result[i] = pool[j] pool[j] = pool[n-i-1] # move non-selected item into vacancy @@ -319,7 +319,7 @@ try: selected = set() selected_add = selected.add - for i in xrange(k): + for i in range(k): j = _int(random() * n) while j in selected: j = _int(random() * n) Modified: python/branches/p3yk/Lib/sqlite3/test/regression.py ============================================================================== --- python/branches/p3yk/Lib/sqlite3/test/regression.py (original) +++ python/branches/p3yk/Lib/sqlite3/test/regression.py Mon May 7 10:03:22 2007 @@ -51,10 +51,10 @@ # reset before a rollback, but only those that are still in the # statement cache. The others are not accessible from the connection object. con = sqlite.connect(":memory:", cached_statements=5) - cursors = [con.cursor() for x in xrange(5)] + cursors = [con.cursor() for x in range(5)] cursors[0].execute("create table test(x)") for i in range(10): - cursors[0].executemany("insert into test(x) values (?)", [(x,) for x in xrange(10)]) + cursors[0].executemany("insert into test(x) values (?)", [(x,) for x in range(10)]) for i in range(5): cursors[i].execute(" " * i + "select x from test") Modified: python/branches/p3yk/Lib/sre_compile.py ============================================================================== --- python/branches/p3yk/Lib/sre_compile.py (original) +++ python/branches/p3yk/Lib/sre_compile.py Mon May 7 10:03:22 2007 @@ -318,7 +318,7 @@ elif op is LITERAL: charmap[fixup(av)] = 1 elif op is RANGE: - for i in xrange(fixup(av[0]), fixup(av[1])+1): + for i in range(fixup(av[0]), fixup(av[1])+1): charmap[i] = 1 elif op is CATEGORY: # XXX: could expand category @@ -330,13 +330,13 @@ if sys.maxunicode != 65535: # XXX: negation does not work with big charsets return charset - for i in xrange(65536): + for i in range(65536): charmap[i] = not charmap[i] comps = {} mapping = [0]*256 block = 0 data = [] - for i in xrange(256): + for i in range(256): chunk = tuple(charmap[i*256:(i+1)*256]) new = comps.setdefault(chunk, block) mapping[i] = new @@ -461,7 +461,7 @@ code.extend(prefix) # generate overlap table table = [-1] + ([0]*len(prefix)) - for i in xrange(len(prefix)): + for i in range(len(prefix)): table[i+1] = table[i]+1 while table[i+1] > 0 and prefix[i] != prefix[table[i+1]-1]: table[i+1] = table[table[i+1]-1]+1 Modified: python/branches/p3yk/Lib/string.py ============================================================================== --- python/branches/p3yk/Lib/string.py (original) +++ python/branches/p3yk/Lib/string.py Mon May 7 10:03:22 2007 @@ -30,7 +30,7 @@ # Case conversion helpers # Use str to convert Unicode literal in case of -U -l = map(chr, xrange(256)) +l = map(chr, range(256)) _idmap = str('').join(l) del l Modified: python/branches/p3yk/Lib/stringprep.py ============================================================================== --- python/branches/p3yk/Lib/stringprep.py (original) +++ python/branches/p3yk/Lib/stringprep.py Mon May 7 10:03:22 2007 @@ -16,7 +16,7 @@ return (c & 0xFFFF) not in (0xFFFE, 0xFFFF) -b1_set = set([173, 847, 6150, 6155, 6156, 6157, 8203, 8204, 8205, 8288, 65279] + range(65024,65040)) +b1_set = set([173, 847, 6150, 6155, 6156, 6157, 8203, 8204, 8205, 8288, 65279] + list(range(65024,65040))) def in_table_b1(code): return ord(code) in b1_set @@ -217,7 +217,7 @@ def in_table_c21(code): return ord(code) < 128 and unicodedata.category(code) == "Cc" -c22_specials = set([1757, 1807, 6158, 8204, 8205, 8232, 8233, 65279] + range(8288,8292) + range(8298,8304) + range(65529,65533) + range(119155,119163)) +c22_specials = set([1757, 1807, 6158, 8204, 8205, 8232, 8233, 65279] + list(range(8288,8292)) + list(range(8298,8304)) + list(range(65529,65533)) + list(range(119155,119163))) def in_table_c22(code): c = ord(code) if c < 128: return False @@ -254,12 +254,12 @@ return ord(code) in c7_set -c8_set = set([832, 833, 8206, 8207] + range(8234,8239) + range(8298,8304)) +c8_set = set([832, 833, 8206, 8207] + list(range(8234,8239)) + list(range(8298,8304))) def in_table_c8(code): return ord(code) in c8_set -c9_set = set([917505] + range(917536,917632)) +c9_set = set([917505] + list(range(917536,917632))) def in_table_c9(code): return ord(code) in c9_set Modified: python/branches/p3yk/Lib/subprocess.py ============================================================================== --- python/branches/p3yk/Lib/subprocess.py (original) +++ python/branches/p3yk/Lib/subprocess.py Mon May 7 10:03:22 2007 @@ -969,7 +969,7 @@ def _close_fds(self, but): - for i in xrange(3, MAXFD): + for i in range(3, MAXFD): if i == but: continue try: Modified: python/branches/p3yk/Lib/tarfile.py ============================================================================== --- python/branches/p3yk/Lib/tarfile.py (original) +++ python/branches/p3yk/Lib/tarfile.py Mon May 7 10:03:22 2007 @@ -188,7 +188,7 @@ raise HeaderError("invalid header") else: n = 0 - for i in xrange(len(s) - 1): + for i in range(len(s) - 1): n <<= 8 n += ord(s[i + 1]) return n @@ -214,7 +214,7 @@ n = struct.unpack("L", struct.pack("l", n))[0] s = "" - for i in xrange(digits - 1): + for i in range(digits - 1): s = chr(n & 0377) + s n >>= 8 s = chr(0200) + s @@ -245,7 +245,7 @@ BUFSIZE = 16 * 1024 blocks, remainder = divmod(length, BUFSIZE) - for b in xrange(blocks): + for b in range(blocks): buf = src.read(BUFSIZE) if len(buf) < BUFSIZE: raise IOError("end of file reached") @@ -514,7 +514,7 @@ """ if pos - self.pos >= 0: blocks, remainder = divmod(pos - self.pos, self.bufsize) - for i in xrange(blocks): + for i in range(blocks): self.read(self.bufsize) self.read(remainder) else: @@ -1297,7 +1297,7 @@ realpos = 0 # There are 4 possible sparse structs in the # first header. - for i in xrange(4): + for i in range(4): try: offset = nti(buf[pos:pos + 12]) numbytes = nti(buf[pos + 12:pos + 24]) @@ -1318,7 +1318,7 @@ while isextended == 1: buf = tarfile.fileobj.read(BLOCKSIZE) pos = 0 - for i in xrange(21): + for i in range(21): try: offset = nti(buf[pos:pos + 12]) numbytes = nti(buf[pos + 12:pos + 24]) @@ -2304,7 +2304,7 @@ else: end = members.index(tarinfo) - for i in xrange(end - 1, -1, -1): + for i in range(end - 1, -1, -1): if name == members[i].name: return members[i] Modified: python/branches/p3yk/Lib/tempfile.py ============================================================================== --- python/branches/p3yk/Lib/tempfile.py (original) +++ python/branches/p3yk/Lib/tempfile.py Mon May 7 10:03:22 2007 @@ -196,7 +196,7 @@ if dir != _os.curdir: dir = _os.path.normcase(_os.path.abspath(dir)) # Try only a few names per directory. - for seq in xrange(100): + for seq in range(100): name = next(namer) filename = _os.path.join(dir, name) try: @@ -235,7 +235,7 @@ names = _get_candidate_names() - for seq in xrange(TMP_MAX): + for seq in range(TMP_MAX): name = next(names) file = _os.path.join(dir, pre + name + suf) try: @@ -327,7 +327,7 @@ names = _get_candidate_names() - for seq in xrange(TMP_MAX): + for seq in range(TMP_MAX): name = next(names) file = _os.path.join(dir, prefix + name + suffix) try: @@ -362,7 +362,7 @@ dir = gettempdir() names = _get_candidate_names() - for seq in xrange(TMP_MAX): + for seq in range(TMP_MAX): name = next(names) file = _os.path.join(dir, prefix + name + suffix) if not _exists(file): Modified: python/branches/p3yk/Lib/test/fork_wait.py ============================================================================== --- python/branches/p3yk/Lib/test/fork_wait.py (original) +++ python/branches/p3yk/Lib/test/fork_wait.py Mon May 7 10:03:22 2007 @@ -52,7 +52,7 @@ time.sleep(LONGSLEEP) a = sorted(self.alive.keys()) - self.assertEquals(a, range(NUM_THREADS)) + self.assertEquals(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() Modified: python/branches/p3yk/Lib/test/list_tests.py ============================================================================== --- python/branches/p3yk/Lib/test/list_tests.py (original) +++ python/branches/p3yk/Lib/test/list_tests.py Mon May 7 10:03:22 2007 @@ -47,9 +47,9 @@ self.assertEqual(repr(a2), "[0, 1, 2, [...], 3]") def test_print(self): - d = self.type2test(xrange(200)) + d = self.type2test(range(200)) d.append(d) - d.extend(xrange(200,400)) + d.extend(range(200,400)) d.append(d) d.append(400) try: @@ -398,7 +398,7 @@ del self.victim[:] return False a = self.type2test() - a[:] = [EvilCmp(a) for _ in xrange(100)] + a[:] = [EvilCmp(a) for _ in range(100)] # This used to seg fault before patch #1005778 self.assertRaises(ValueError, a.index, None) Modified: python/branches/p3yk/Lib/test/output/test_cProfile ============================================================================== --- python/branches/p3yk/Lib/test/output/test_cProfile (original) +++ python/branches/p3yk/Lib/test/output/test_cProfile Mon May 7 10:03:22 2007 @@ -1,5 +1,5 @@ test_cProfile - 127 function calls (107 primitive calls) in 1.000 CPU seconds + 119 function calls (99 primitive calls) in 1.000 CPU seconds Ordered by: standard name @@ -18,7 +18,6 @@ 12 0.000 0.000 0.012 0.001 {hasattr} 4 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} - 8 0.000 0.000 0.000 0.000 {range} 4 0.000 0.000 0.000 0.000 {sys.exc_info} @@ -28,7 +27,6 @@ ncalls tottime cumtime :1() -> 1 0.270 1.000 test_cProfile.py:30(testfunc) test_cProfile.py:103(subhelper) -> 16 0.016 0.016 test_cProfile.py:115(__getattr__) - 8 0.000 0.000 {range} test_cProfile.py:115(__getattr__) -> test_cProfile.py:30(testfunc) -> 1 0.014 0.130 test_cProfile.py:40(factorial) 2 0.040 0.600 test_cProfile.py:60(helper) @@ -49,7 +47,6 @@ {hasattr} -> 12 0.012 0.012 test_cProfile.py:115(__getattr__) {method 'append' of 'list' objects} -> {method 'disable' of '_lsprof.Profiler' objects} -> -{range} -> {sys.exc_info} -> @@ -76,7 +73,6 @@ 8 0.000 0.008 test_cProfile.py:93(helper2) {method 'append' of 'list' objects} <- 4 0.000 0.000 test_cProfile.py:78(helper1) {method 'disable' of '_lsprof.Profiler' objects} <- -{range} <- 8 0.000 0.000 test_cProfile.py:103(subhelper) {sys.exc_info} <- 4 0.000 0.000 test_cProfile.py:78(helper1) Modified: python/branches/p3yk/Lib/test/output/test_profile ============================================================================== --- python/branches/p3yk/Lib/test/output/test_profile (original) +++ python/branches/p3yk/Lib/test/output/test_profile Mon May 7 10:03:22 2007 @@ -1,5 +1,5 @@ test_profile - 128 function calls (108 primitive calls) in 1.000 CPU seconds + 120 function calls (100 primitive calls) in 1.000 CPU seconds Ordered by: standard name @@ -8,7 +8,6 @@ 4 0.000 0.000 0.000 0.000 :0(exc_info) 1 0.000 0.000 1.000 1.000 :0(exec) 12 0.000 0.000 0.012 0.001 :0(hasattr) - 8 0.000 0.000 0.000 0.000 :0(range) 1 0.000 0.000 0.000 0.000 :0(setprofile) 1 0.000 0.000 1.000 1.000 :1() 0 0.000 0.000 profile:0(profiler) @@ -31,14 +30,12 @@ :0(exc_info) -> :0(exec) -> :1()(1) 1.000 :0(hasattr) -> test_profile.py:115(__getattr__)(12) 0.028 -:0(range) -> :0(setprofile) -> :1() -> test_profile.py:30(testfunc)(1) 1.000 profile:0(profiler) -> profile:0(testfunc())(1) 1.000 profile:0(testfunc()) -> :0(exec)(1) 1.000 :0(setprofile)(1) 0.000 -test_profile.py:103(subhelper) -> :0(range)(8) 0.000 - test_profile.py:115(__getattr__)(16) 0.028 +test_profile.py:103(subhelper) -> test_profile.py:115(__getattr__)(16) 0.028 test_profile.py:115(__getattr__) -> test_profile.py:30(testfunc) -> test_profile.py:40(factorial)(1) 0.170 test_profile.py:60(helper)(2) 0.600 @@ -65,7 +62,6 @@ :0(exec) <- profile:0(testfunc())(1) 1.000 :0(hasattr) <- test_profile.py:78(helper1)(4) 0.120 test_profile.py:93(helper2)(8) 0.400 -:0(range) <- test_profile.py:103(subhelper)(8) 0.080 :0(setprofile) <- profile:0(testfunc())(1) 1.000 :1() <- :0(exec)(1) 1.000 profile:0(profiler) <- Modified: python/branches/p3yk/Lib/test/pickletester.py ============================================================================== --- python/branches/p3yk/Lib/test/pickletester.py (original) +++ python/branches/p3yk/Lib/test/pickletester.py Mon May 7 10:03:22 2007 @@ -745,7 +745,7 @@ def test_list_chunking(self): n = 10 # too small to chunk - x = range(n) + x = list(range(n)) for proto in protocols: s = self.dumps(x, proto) y = self.loads(s) @@ -754,7 +754,7 @@ self.assertEqual(num_appends, proto > 0) n = 2500 # expect at least two chunks when proto > 0 - x = range(n) + x = list(range(n)) for proto in protocols: s = self.dumps(x, proto) y = self.loads(s) @@ -991,7 +991,7 @@ def test_persistence(self): self.id_count = 0 self.load_count = 0 - L = range(10) + L = list(range(10)) self.assertEqual(self.loads(self.dumps(L)), L) self.assertEqual(self.id_count, 5) self.assertEqual(self.load_count, 5) @@ -999,7 +999,7 @@ def test_bin_persistence(self): self.id_count = 0 self.load_count = 0 - L = range(10) + L = list(range(10)) self.assertEqual(self.loads(self.dumps(L, 1)), L) self.assertEqual(self.id_count, 5) self.assertEqual(self.load_count, 5) Modified: python/branches/p3yk/Lib/test/seq_tests.py ============================================================================== --- python/branches/p3yk/Lib/test/seq_tests.py (original) +++ python/branches/p3yk/Lib/test/seq_tests.py Mon May 7 10:03:22 2007 @@ -120,7 +120,7 @@ self.assertEqual(len(vv), len(s)) # Create from various iteratables - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (Sequence, IterFunc, IterGen, itermulti, iterfunc): self.assertEqual(self.type2test(g(s)), self.type2test(s)) @@ -136,10 +136,10 @@ def test_getitem(self): u = self.type2test([0, 1, 2, 3, 4]) - for i in xrange(len(u)): + for i in range(len(u)): self.assertEqual(u[i], i) self.assertEqual(u[int(i)], i) - for i in xrange(-len(u), -1): + for i in range(-len(u), -1): self.assertEqual(u[i], len(u)+i) self.assertEqual(u[int(i)], len(u)+i) self.assertRaises(IndexError, u.__getitem__, -len(u)-1) @@ -299,9 +299,9 @@ self.assertEqual(next(iter(T((1,2)))), 1) def test_repeat(self): - for m in xrange(4): + for m in range(4): s = tuple(range(m)) - for n in xrange(-3, 5): + for n in range(-3, 5): self.assertEqual(self.type2test(s*n), self.type2test(s)*n) self.assertEqual(self.type2test(s)*(-4), self.type2test([])) self.assertEqual(id(s), id(s*1)) Modified: python/branches/p3yk/Lib/test/sortperf.py ============================================================================== --- python/branches/p3yk/Lib/test/sortperf.py (original) +++ python/branches/p3yk/Lib/test/sortperf.py Mon May 7 10:03:22 2007 @@ -24,7 +24,7 @@ fp = open(fn, "rb") except IOError: r = random.random - result = [r() for i in xrange(n)] + result = [r() for i in range(n)] try: try: fp = open(fn, "wb") @@ -108,7 +108,7 @@ doit(L) # +sort # Replace 1% of the elements at random. - for dummy in xrange(n // 100): + for dummy in range(n // 100): L[random.randrange(n)] = random.random() doit(L) # %sort Modified: python/branches/p3yk/Lib/test/string_tests.py ============================================================================== --- python/branches/p3yk/Lib/test/string_tests.py (original) +++ python/branches/p3yk/Lib/test/string_tests.py Mon May 7 10:03:22 2007 @@ -112,9 +112,9 @@ digits = 7 base = len(charset) teststrings = set() - for i in xrange(base ** digits): + for i in range(base ** digits): entry = [] - for j in xrange(digits): + for j in range(digits): i, m = divmod(i, base) entry.append(charset[m]) teststrings.add(''.join(entry)) @@ -151,9 +151,9 @@ digits = 5 base = len(charset) teststrings = set() - for i in xrange(base ** digits): + for i in range(base ** digits): entry = [] - for j in xrange(digits): + for j in range(digits): i, m = divmod(i, base) entry.append(charset[m]) teststrings.add(''.join(entry)) @@ -1021,10 +1021,10 @@ def test_floatformatting(self): # float formatting - for prec in xrange(100): + for prec in range(100): format = '%%.%if' % prec value = 0.01 - for x in xrange(60): + for x in range(60): value = value * 3.141592655 / 3.0 * 10.0 # The formatfloat() code in stringobject.c and # unicodeobject.c uses a 120 byte buffer and switches from @@ -1091,7 +1091,7 @@ def test_maketrans(self): self.assertEqual( - ''.join(map(chr, xrange(256))).replace('abc', 'xyz'), + ''.join(map(chr, range(256))).replace('abc', 'xyz'), string.maketrans('abc', 'xyz') ) self.assertRaises(ValueError, string.maketrans, 'abc', 'xyzw') Modified: python/branches/p3yk/Lib/test/test_array.py ============================================================================== --- python/branches/p3yk/Lib/test/test_array.py (original) +++ python/branches/p3yk/Lib/test/test_array.py Mon May 7 10:03:22 2007 @@ -836,7 +836,7 @@ def test_iterationcontains(self): a = array.array(self.typecode, range(10)) - self.assertEqual(list(a), range(10)) + self.assertEqual(list(a), list(range(10))) b = array.array(self.typecode, [20]) self.assertEqual(a[-1] in a, True) self.assertEqual(b[0] not in a, True) @@ -985,7 +985,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*tests) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_binascii.py ============================================================================== --- python/branches/p3yk/Lib/test/test_binascii.py (original) +++ python/branches/p3yk/Lib/test/test_binascii.py Mon May 7 10:03:22 2007 @@ -9,7 +9,7 @@ # Create binary test data data = "The quick brown fox jumps over the lazy dog.\r\n" # Be slow so we don't depend on other modules - data += "".join(map(chr, xrange(256))) + data += "".join(map(chr, range(256))) data += "\r\nHello world.\n" def test_exceptions(self): @@ -58,7 +58,7 @@ fillers = "" valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/" - for i in xrange(256): + for i in range(256): c = chr(i) if c not in valid: fillers += c Modified: python/branches/p3yk/Lib/test/test_bisect.py ============================================================================== --- python/branches/p3yk/Lib/test/test_bisect.py (original) +++ python/branches/p3yk/Lib/test/test_bisect.py Mon May 7 10:03:22 2007 @@ -94,8 +94,8 @@ def test_random(self, n=25): from random import randrange - for i in xrange(n): - data = [randrange(0, n, 2) for j in xrange(i)] + for i in range(n): + data = [randrange(0, n, 2) for j in range(i)] data.sort() elem = randrange(-1, n+1) ip = bisect_left(data, elem) @@ -111,9 +111,9 @@ def test_optionalSlicing(self): for func, data, elem, expected in self.precomputedCases: - for lo in xrange(4): + for lo in range(4): lo = min(len(data), lo) - for hi in xrange(3,8): + for hi in range(3,8): hi = min(len(data), hi) ip = func(data, elem, lo, hi) self.failUnless(lo <= ip <= hi) @@ -147,7 +147,7 @@ def test_vsBuiltinSort(self, n=500): from random import choice for insorted in (list(), UserList()): - for i in xrange(n): + for i in range(n): digit = choice("0123456789") if digit in "02468": f = insort_left @@ -248,7 +248,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*test_classes) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_bsddb.py ============================================================================== --- python/branches/p3yk/Lib/test/test_bsddb.py (original) +++ python/branches/p3yk/Lib/test/test_bsddb.py Mon May 7 10:03:22 2007 @@ -117,13 +117,13 @@ def test_first_next_looping(self): items = [self.f.first()] - for i in xrange(1, len(self.f)): + for i in range(1, len(self.f)): items.append(self.f.next()) self.assertSetEquals(items, self.d.items()) def test_previous_last_looping(self): items = [self.f.last()] - for i in xrange(1, len(self.f)): + for i in range(1, len(self.f)): items.append(self.f.previous()) self.assertSetEquals(items, self.d.items()) Modified: python/branches/p3yk/Lib/test/test_bufio.py ============================================================================== --- python/branches/p3yk/Lib/test/test_bufio.py (original) +++ python/branches/p3yk/Lib/test/test_bufio.py Mon May 7 10:03:22 2007 @@ -5,8 +5,8 @@ # the expected results. For best testing, run this under a debug-build # Python too (to exercise asserts in the C code). -lengths = range(1, 257) + [512, 1000, 1024, 2048, 4096, 8192, 10000, - 16384, 32768, 65536, 1000000] +lengths = list(range(1, 257)) + [512, 1000, 1024, 2048, 4096, 8192, 10000, + 16384, 32768, 65536, 1000000] class BufferSizeTest(unittest.TestCase): def try_one(self, s): Modified: python/branches/p3yk/Lib/test/test_builtin.py ============================================================================== --- python/branches/p3yk/Lib/test/test_builtin.py (original) +++ python/branches/p3yk/Lib/test/test_builtin.py Mon May 7 10:03:22 2007 @@ -993,7 +993,7 @@ # thread for the details: # http://sources.redhat.com/ml/newlib/2002/msg00369.html - self.assertRaises(MemoryError, list, xrange(sys.maxint // 2)) + self.assertRaises(MemoryError, list, range(sys.maxint // 2)) # This code used to segfault in Py2.4a3 x = [] @@ -1457,38 +1457,39 @@ self.assertRaises(TypeError, pow) def test_range(self): - self.assertEqual(range(3), [0, 1, 2]) - self.assertEqual(range(1, 5), [1, 2, 3, 4]) - self.assertEqual(range(0), []) - self.assertEqual(range(-3), []) - self.assertEqual(range(1, 10, 3), [1, 4, 7]) - self.assertEqual(range(5, -5, -3), [5, 2, -1, -4]) + self.assertEqual(list(range(3)), [0, 1, 2]) + self.assertEqual(list(range(1, 5)), [1, 2, 3, 4]) + self.assertEqual(list(range(0)), []) + self.assertEqual(list(range(-3)), []) + self.assertEqual(list(range(1, 10, 3)), [1, 4, 7]) + #self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4]) + """ XXX(nnorwitz): # Now test range() with longs - self.assertEqual(range(-2**100), []) - self.assertEqual(range(0, -2**100), []) - self.assertEqual(range(0, 2**100, -1), []) - self.assertEqual(range(0, 2**100, -1), []) + self.assertEqual(list(range(-2**100)), []) + self.assertEqual(list(range(0, -2**100)), []) + self.assertEqual(list(range(0, 2**100, -1)), []) + self.assertEqual(list(range(0, 2**100, -1)), []) a = int(10 * sys.maxint) b = int(100 * sys.maxint) c = int(50 * sys.maxint) - self.assertEqual(range(a, a+2), [a, a+1]) - self.assertEqual(range(a+2, a, -1), [a+2, a+1]) - self.assertEqual(range(a+4, a, -2), [a+4, a+2]) + self.assertEqual(list(range(a, a+2)), [a, a+1]) + self.assertEqual(list(range(a+2, a, -1)), [a+2, a+1]) + self.assertEqual(list(range(a+4, a, -2)), [a+4, a+2]) - seq = range(a, b, c) + seq = list(range(a, b, c)) self.assert_(a in seq) self.assert_(b not in seq) self.assertEqual(len(seq), 2) - seq = range(b, a, -c) + seq = list(range(b, a, -c)) self.assert_(b in seq) self.assert_(a not in seq) self.assertEqual(len(seq), 2) - seq = range(-a, -b, -c) + seq = list(range(-a, -b, -c)) self.assert_(-a in seq) self.assert_(-b not in seq) self.assertEqual(len(seq), 2) @@ -1505,6 +1506,7 @@ # XXX This won't (but should!) raise RuntimeError if a is an int... self.assertRaises(RuntimeError, range, a, a + 1, badzero(1)) + """ # Reject floats when it would require PyLongs to represent. # (smaller floats still accepted, but deprecated) @@ -1513,8 +1515,10 @@ self.assertRaises(TypeError, range, 0, "spam") self.assertRaises(TypeError, range, 0, 42, "spam") - self.assertRaises(OverflowError, range, -sys.maxint, sys.maxint) - self.assertRaises(OverflowError, range, 0, 2*sys.maxint) + #NEAL self.assertRaises(OverflowError, range, -sys.maxint, sys.maxint) + #NEAL self.assertRaises(OverflowError, range, 0, 2*sys.maxint) + + self.assertRaises(OverflowError, len, range(0, sys.maxint**10)) def test_input(self): self.write_testfile() @@ -1633,8 +1637,8 @@ def test_sum(self): self.assertEqual(sum([]), 0) - self.assertEqual(sum(range(2,8)), 27) - self.assertEqual(sum(iter(range(2,8))), 27) + self.assertEqual(sum(list(range(2,8))), 27) + self.assertEqual(sum(iter(list(range(2,8)))), 27) self.assertEqual(sum(Squares(10)), 285) self.assertEqual(sum(iter(Squares(10))), 285) self.assertEqual(sum([[1], [2], [3]], []), [1, 2, 3]) @@ -1731,7 +1735,7 @@ else: return i self.assertEqual( - list(zip(SequenceWithoutALength(), xrange(2**30))), + list(zip(SequenceWithoutALength(), range(2**30))), list(enumerate(range(5))) ) @@ -1746,7 +1750,7 @@ class TestSorted(unittest.TestCase): def test_basic(self): - data = range(100) + data = list(range(100)) copy = data[:] random.shuffle(copy) self.assertEqual(data, sorted(copy)) @@ -1791,7 +1795,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): run_unittest(*test_classes) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_bz2.py ============================================================================== --- python/branches/p3yk/Lib/test/test_bz2.py (original) +++ python/branches/p3yk/Lib/test/test_bz2.py Mon May 7 10:03:22 2007 @@ -230,7 +230,7 @@ def testOpenDel(self): # "Test opening and deleting a file many times" self.createTempFile() - for i in xrange(10000): + for i in range(10000): o = BZ2File(self.filename) del o Modified: python/branches/p3yk/Lib/test/test_calendar.py ============================================================================== --- python/branches/p3yk/Lib/test/test_calendar.py (original) +++ python/branches/p3yk/Lib/test/test_calendar.py Mon May 7 10:03:22 2007 @@ -260,7 +260,7 @@ def check_weeks(self, year, month, weeks): cal = calendar.monthcalendar(year, month) self.assertEqual(len(cal), len(weeks)) - for i in xrange(len(weeks)): + for i in range(len(weeks)): self.assertEqual(weeks[i], sum(day != 0 for day in cal[i])) Modified: python/branches/p3yk/Lib/test/test_codeccallbacks.py ============================================================================== --- python/branches/p3yk/Lib/test/test_codeccallbacks.py (original) +++ python/branches/p3yk/Lib/test/test_codeccallbacks.py Mon May 7 10:03:22 2007 @@ -234,7 +234,7 @@ if not isinstance(exc, UnicodeEncodeError) \ and not isinstance(exc, UnicodeDecodeError): raise TypeError("don't know how to handle %r" % exc) - l = [u"<%d>" % ord(exc.object[pos]) for pos in xrange(exc.start, exc.end)] + l = [u"<%d>" % ord(exc.object[pos]) for pos in range(exc.start, exc.end)] return (u"[%s]" % u"".join(l), exc.end) codecs.register_error("test.handler1", handler1) @@ -242,7 +242,7 @@ def handler2(exc): if not isinstance(exc, UnicodeDecodeError): raise TypeError("don't know how to handle %r" % exc) - l = [u"<%d>" % ord(exc.object[pos]) for pos in xrange(exc.start, exc.end)] + l = [u"<%d>" % ord(exc.object[pos]) for pos in range(exc.start, exc.end)] return (u"[%s]" % u"".join(l), exc.end+1) # skip one character codecs.register_error("test.handler2", handler2) @@ -308,13 +308,13 @@ self.assertRaises(TypeError, exctype, *(args + ["too much"])) # check with one argument of the wrong type wrongargs = [ "spam", u"eggs", 42, 1.0, None ] - for i in xrange(len(args)): + for i in range(len(args)): for wrongarg in wrongargs: if type(wrongarg) is type(args[i]): continue # build argument array callargs = [] - for j in xrange(len(args)): + for j in range(len(args)): if i==j: callargs.append(wrongarg) else: Modified: python/branches/p3yk/Lib/test/test_codecs.py ============================================================================== --- python/branches/p3yk/Lib/test/test_codecs.py (original) +++ python/branches/p3yk/Lib/test/test_codecs.py Mon May 7 10:03:22 2007 @@ -25,7 +25,7 @@ class MixInCheckStateHandling: def check_state_handling_decode(self, encoding, u, s): - for i in xrange(len(s)+1): + for i in range(len(s)+1): d = codecs.getincrementaldecoder(encoding)() part1 = d.decode(s[:i]) state = d.getstate() @@ -47,7 +47,7 @@ self.assertEqual(u, part1+part2) def check_state_handling_encode(self, encoding, u, s): - for i in xrange(len(u)+1): + for i in range(len(u)+1): d = codecs.getincrementalencoder(encoding)() part1 = d.encode(u[:i]) state = d.getstate() @@ -135,17 +135,17 @@ # Test lines where the first read might end with \r, so the # reader has to look ahead whether this is a lone \r or a \r\n - for size in xrange(80): + for size in range(80): for lineend in u"\n \r\n \r \u2028".split(): s = 10*(size*u"a" + lineend + u"xxx\n") reader = getreader(s) - for i in xrange(10): + for i in range(10): self.assertEqual( reader.readline(keepends=True), size*u"a" + lineend, ) reader = getreader(s) - for i in xrange(10): + for i in range(10): self.assertEqual( reader.readline(keepends=False), size*u"a", @@ -1252,7 +1252,7 @@ if encoding in broken_unicode_with_streams: continue reader = codecs.getreader(encoding)(StringIO.StringIO(s.encode(encoding))) - for t in xrange(5): + for t in range(5): # Test that calling seek resets the internal codec state and buffers reader.seek(0, 0) line = reader.readline() @@ -1320,7 +1320,7 @@ (u"ab", 3) ) - allbytes = "".join(chr(i) for i in xrange(256)) + allbytes = "".join(chr(i) for i in range(256)) self.assertEquals( codecs.charmap_decode(allbytes, "ignore", u""), (u"", len(allbytes)) Modified: python/branches/p3yk/Lib/test/test_compile.py ============================================================================== --- python/branches/p3yk/Lib/test/test_compile.py (original) +++ python/branches/p3yk/Lib/test/test_compile.py Mon May 7 10:03:22 2007 @@ -399,11 +399,11 @@ # is the max. Ensure the result of too many annotations is a # SyntaxError. s = "def f((%s)): pass" - s %= ', '.join('a%d:%d' % (i,i) for i in xrange(65535)) + s %= ', '.join('a%d:%d' % (i,i) for i in range(65535)) self.assertRaises(SyntaxError, compile, s, '?', 'exec') # Test that the max # of annotations compiles. s = "def f((%s)): pass" - s %= ', '.join('a%d:%d' % (i,i) for i in xrange(65534)) + s %= ', '.join('a%d:%d' % (i,i) for i in range(65534)) compile(s, '?', 'exec') def test_mangling(self): Modified: python/branches/p3yk/Lib/test/test_complex.py ============================================================================== --- python/branches/p3yk/Lib/test/test_complex.py (original) +++ python/branches/p3yk/Lib/test/test_complex.py Mon May 7 10:03:22 2007 @@ -64,7 +64,7 @@ self.assertClose(q, x) def test_truediv(self): - simple_real = [float(i) for i in xrange(-5, 6)] + simple_real = [float(i) for i in range(-5, 6)] simple_complex = [complex(x, y) for x in simple_real for y in simple_real] for x in simple_complex: for y in simple_complex: @@ -76,7 +76,7 @@ self.check_div(complex(1e-200, 1e-200), 1+0j) # Just for fun. - for i in xrange(100): + for i in range(100): self.check_div(complex(random(), random()), complex(random(), random())) @@ -158,7 +158,7 @@ self.assertRaises(ValueError, pow, a, b, 0) def test_boolcontext(self): - for i in xrange(100): + for i in range(100): self.assert_(complex(random() + 1e-6, random() + 1e-6)) self.assert_(not complex(0.0, 0.0)) @@ -296,13 +296,13 @@ self.assertRaises(TypeError, complex, complex2(1j)) def test_hash(self): - for x in xrange(-30, 30): + for x in range(-30, 30): self.assertEqual(hash(x), hash(complex(x, 0))) x /= 3.0 # now check against floating point self.assertEqual(hash(x), hash(complex(x, 0.))) def test_abs(self): - nums = [complex(x/3., y/7.) for x in xrange(-9,9) for y in xrange(-9,9)] + nums = [complex(x/3., y/7.) for x in range(-9,9) for y in range(-9,9)] for num in nums: self.assertAlmostEqual((num.real**2 + num.imag**2) ** 0.5, abs(num)) Modified: python/branches/p3yk/Lib/test/test_contains.py ============================================================================== --- python/branches/p3yk/Lib/test/test_contains.py (original) +++ python/branches/p3yk/Lib/test/test_contains.py Mon May 7 10:03:22 2007 @@ -86,7 +86,7 @@ check(unicode('d') not in 'abc', "u'd' in 'abc'") # A collection of tests on builtin sequence types -a = range(10) +a = list(range(10)) for i in a: check(i in a, "%r not in %r" % (i, a)) check(16 not in a, "16 not in %r" % (a,)) @@ -105,7 +105,7 @@ works when the list is modified during the check. """ - aList = range(15) + aList = list(range(15)) def __cmp__(self, other): if other == 12: Modified: python/branches/p3yk/Lib/test/test_copy.py ============================================================================== --- python/branches/p3yk/Lib/test/test_copy.py (original) +++ python/branches/p3yk/Lib/test/test_copy.py Mon May 7 10:03:22 2007 @@ -84,7 +84,7 @@ pass tests = [None, 42, 2**100, 3.14, True, False, 1j, "hello", u"hello\u1234", f.__code__, - NewStyle, xrange(10), Classic, max] + NewStyle, range(10), Classic, max] for x in tests: self.assert_(copy.copy(x) is x, repr(x)) @@ -257,7 +257,7 @@ pass tests = [None, 42, 2**100, 3.14, True, False, 1j, "hello", u"hello\u1234", f.__code__, - NewStyle, xrange(10), Classic, max] + NewStyle, range(10), Classic, max] for x in tests: self.assert_(copy.deepcopy(x) is x, repr(x)) Modified: python/branches/p3yk/Lib/test/test_csv.py ============================================================================== --- python/branches/p3yk/Lib/test/test_csv.py (original) +++ python/branches/p3yk/Lib/test/test_csv.py Mon May 7 10:03:22 2007 @@ -909,7 +909,7 @@ def test_create_read(self): delta = 0 lastrc = sys.gettotalrefcount() - for i in xrange(20): + for i in range(20): gc.collect() self.assertEqual(gc.garbage, []) rc = sys.gettotalrefcount() @@ -925,7 +925,7 @@ delta = 0 lastrc = sys.gettotalrefcount() s = NUL() - for i in xrange(20): + for i in range(20): gc.collect() self.assertEqual(gc.garbage, []) rc = sys.gettotalrefcount() @@ -941,7 +941,7 @@ delta = 0 rows = ["a,b,c\r\n"]*5 lastrc = sys.gettotalrefcount() - for i in xrange(20): + for i in range(20): gc.collect() self.assertEqual(gc.garbage, []) rc = sys.gettotalrefcount() @@ -958,7 +958,7 @@ rows = [[1,2,3]]*5 s = NUL() lastrc = sys.gettotalrefcount() - for i in xrange(20): + for i in range(20): gc.collect() self.assertEqual(gc.garbage, []) rc = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_datetime.py ============================================================================== --- python/branches/p3yk/Lib/test/test_datetime.py (original) +++ python/branches/p3yk/Lib/test/test_datetime.py Mon May 7 10:03:22 2007 @@ -569,7 +569,7 @@ # Check first and last days of year spottily across the whole # range of years supported. - for year in xrange(MINYEAR, MAXYEAR+1, 7): + for year in range(MINYEAR, MAXYEAR+1, 7): # Verify (year, 1, 1) -> ordinal -> y, m, d is identity. d = self.theclass(year, 1, 1) n = d.toordinal() Modified: python/branches/p3yk/Lib/test/test_decimal.py ============================================================================== --- python/branches/p3yk/Lib/test/test_decimal.py (original) +++ python/branches/p3yk/Lib/test/test_decimal.py Mon May 7 10:03:22 2007 @@ -842,7 +842,7 @@ self.assertNotEqual(da, object) # sortable - a = map(Decimal, xrange(100)) + a = map(Decimal, range(100)) b = a[:] random.shuffle(a) a.sort() Modified: python/branches/p3yk/Lib/test/test_deque.py ============================================================================== --- python/branches/p3yk/Lib/test/test_deque.py (original) +++ python/branches/p3yk/Lib/test/test_deque.py Mon May 7 10:03:22 2007 @@ -29,23 +29,23 @@ class TestBasic(unittest.TestCase): def test_basics(self): - d = deque(xrange(100)) - d.__init__(xrange(100, 200)) - for i in xrange(200, 400): + d = deque(range(100)) + d.__init__(range(100, 200)) + for i in range(200, 400): d.append(i) - for i in reversed(xrange(-200, 0)): + for i in reversed(range(-200, 0)): d.appendleft(i) - self.assertEqual(list(d), range(-200, 400)) + self.assertEqual(list(d), list(range(-200, 400))) self.assertEqual(len(d), 600) - left = [d.popleft() for i in xrange(250)] - self.assertEqual(left, range(-200, 50)) - self.assertEqual(list(d), range(50, 400)) + left = [d.popleft() for i in range(250)] + self.assertEqual(left, list(range(-200, 50))) + self.assertEqual(list(d), list(range(50, 400))) - right = [d.pop() for i in xrange(250)] + right = [d.pop() for i in range(250)] right.reverse() - self.assertEqual(right, range(150, 400)) - self.assertEqual(list(d), range(50, 150)) + self.assertEqual(right, list(range(150, 400))) + self.assertEqual(list(d), list(range(50, 150))) def test_comparisons(self): d = deque('xabc'); d.popleft() @@ -82,15 +82,15 @@ def test_getitem(self): n = 200 - d = deque(xrange(n)) - l = range(n) - for i in xrange(n): + d = deque(range(n)) + l = list(range(n)) + for i in range(n): d.popleft() l.pop(0) if random.random() < 0.5: d.append(i) l.append(i) - for j in xrange(1-len(l), len(l)): + for j in range(1-len(l), len(l)): assert d[j] == l[j] d = deque('superman') @@ -102,22 +102,22 @@ def test_setitem(self): n = 200 - d = deque(xrange(n)) - for i in xrange(n): + d = deque(range(n)) + for i in range(n): d[i] = 10 * i - self.assertEqual(list(d), [10*i for i in xrange(n)]) + self.assertEqual(list(d), [10*i for i in range(n)]) l = list(d) - for i in xrange(1-n, 0, -1): + for i in range(1-n, 0, -1): d[i] = 7*i l[i] = 7*i self.assertEqual(list(d), l) def test_delitem(self): n = 500 # O(n**2) test, don't make this too big - d = deque(xrange(n)) + d = deque(range(n)) self.assertRaises(IndexError, d.__delitem__, -n-1) self.assertRaises(IndexError, d.__delitem__, n) - for i in xrange(n): + for i in range(n): self.assertEqual(len(d), n-i) j = random.randrange(-len(d), len(d)) val = d[j] @@ -140,11 +140,11 @@ d.rotate() # check default to 1 self.assertEqual(tuple(d), s) - for i in xrange(n*3): + for i in range(n*3): d = deque(s) e = deque(d) d.rotate(i) # check vs. rot(1) n times - for j in xrange(i): + for j in range(i): e.rotate(1) self.assertEqual(tuple(d), tuple(e)) d.rotate(-i) # check that it works in reverse @@ -152,11 +152,11 @@ e.rotate(n-i) # check that it wraps forward self.assertEqual(tuple(e), s) - for i in xrange(n*3): + for i in range(n*3): d = deque(s) e = deque(d) d.rotate(-i) - for j in xrange(i): + for j in range(i): e.rotate(-1) # check vs. rot(-1) n times self.assertEqual(tuple(d), tuple(e)) d.rotate(i) # check that it works in reverse @@ -168,7 +168,7 @@ e = deque(s) e.rotate(BIG+17) # verify on long series of rotates dr = d.rotate - for i in xrange(BIG+17): + for i in range(BIG+17): dr() self.assertEqual(tuple(d), tuple(e)) @@ -201,7 +201,7 @@ self.assertRaises(IndexError, d.popleft) def test_clear(self): - d = deque(xrange(100)) + d = deque(range(100)) self.assertEqual(len(d), 100) d.clear() self.assertEqual(len(d), 0) @@ -234,14 +234,14 @@ self.assertEqual(d, deque()) def test_repr(self): - d = deque(xrange(200)) + d = deque(range(200)) e = eval(repr(d)) self.assertEqual(list(d), list(e)) d.append(d) self.assert_('...' in repr(d)) def test_print(self): - d = deque(xrange(200)) + d = deque(range(200)) d.append(d) try: fo = open(test_support.TESTFN, "wb") @@ -262,33 +262,34 @@ def test_long_steadystate_queue_popleft(self): for size in (0, 1, 2, 100, 1000): - d = deque(xrange(size)) + d = deque(range(size)) append, pop = d.append, d.popleft - for i in xrange(size, BIG): + for i in range(size, BIG): append(i) x = pop() if x != i - size: self.assertEqual(x, i-size) - self.assertEqual(list(d), range(BIG-size, BIG)) + self.assertEqual(list(d), list(range(BIG-size, BIG))) def test_long_steadystate_queue_popright(self): for size in (0, 1, 2, 100, 1000): - d = deque(reversed(xrange(size))) + d = deque(reversed(range(size))) append, pop = d.appendleft, d.pop - for i in xrange(size, BIG): + for i in range(size, BIG): append(i) x = pop() if x != i - size: self.assertEqual(x, i-size) - self.assertEqual(list(reversed(list(d))), range(BIG-size, BIG)) + self.assertEqual(list(reversed(list(d))), + list(range(BIG-size, BIG))) def test_big_queue_popleft(self): pass d = deque() append, pop = d.append, d.popleft - for i in xrange(BIG): + for i in range(BIG): append(i) - for i in xrange(BIG): + for i in range(BIG): x = pop() if x != i: self.assertEqual(x, i) @@ -296,9 +297,9 @@ def test_big_queue_popright(self): d = deque() append, pop = d.appendleft, d.pop - for i in xrange(BIG): + for i in range(BIG): append(i) - for i in xrange(BIG): + for i in range(BIG): x = pop() if x != i: self.assertEqual(x, i) @@ -306,9 +307,9 @@ def test_big_stack_right(self): d = deque() append, pop = d.append, d.pop - for i in xrange(BIG): + for i in range(BIG): append(i) - for i in reversed(xrange(BIG)): + for i in reversed(range(BIG)): x = pop() if x != i: self.assertEqual(x, i) @@ -317,22 +318,22 @@ def test_big_stack_left(self): d = deque() append, pop = d.appendleft, d.popleft - for i in xrange(BIG): + for i in range(BIG): append(i) - for i in reversed(xrange(BIG)): + for i in reversed(range(BIG)): x = pop() if x != i: self.assertEqual(x, i) self.assertEqual(len(d), 0) def test_roundtrip_iter_init(self): - d = deque(xrange(200)) + d = deque(range(200)) e = deque(d) self.assertNotEqual(id(d), id(e)) self.assertEqual(list(d), list(e)) def test_pickle(self): - d = deque(xrange(200)) + d = deque(range(200)) for i in (0, 1, 2): s = pickle.dumps(d, i) e = pickle.loads(s) @@ -366,7 +367,7 @@ self.assertEqual(list(d), list(e)) def test_reversed(self): - for s in ('abcd', xrange(2000)): + for s in ('abcd', range(2000)): self.assertEqual(list(reversed(deque(s))), list(reversed(s))) def test_gc_doesnt_blowup(self): @@ -374,14 +375,14 @@ # This used to assert-fail in deque_traverse() under a debug # build, or run wild with a NULL pointer in a release build. d = deque() - for i in xrange(100): + for i in range(100): d.append(1) gc.collect() class TestVariousIteratorArgs(unittest.TestCase): def test_constructor(self): - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (seq_tests.Sequence, seq_tests.IterFunc, seq_tests.IterGen, seq_tests.IterFuncStop, seq_tests.itermulti, seq_tests.iterfunc): @@ -412,23 +413,23 @@ class TestSubclass(unittest.TestCase): def test_basics(self): - d = Deque(xrange(100)) - d.__init__(xrange(100, 200)) - for i in xrange(200, 400): + d = Deque(range(100)) + d.__init__(range(100, 200)) + for i in range(200, 400): d.append(i) - for i in reversed(xrange(-200, 0)): + for i in reversed(range(-200, 0)): d.appendleft(i) - self.assertEqual(list(d), range(-200, 400)) + self.assertEqual(list(d), list(range(-200, 400))) self.assertEqual(len(d), 600) - left = [d.popleft() for i in xrange(250)] - self.assertEqual(left, range(-200, 50)) - self.assertEqual(list(d), range(50, 400)) + left = [d.popleft() for i in range(250)] + self.assertEqual(left, list(range(-200, 50))) + self.assertEqual(list(d), list(range(50, 400))) - right = [d.pop() for i in xrange(250)] + right = [d.pop() for i in range(250)] right.reverse() - self.assertEqual(right, range(150, 400)) - self.assertEqual(list(d), range(50, 150)) + self.assertEqual(right, list(range(150, 400))) + self.assertEqual(list(d), list(range(50, 150))) d.clear() self.assertEqual(len(d), 0) @@ -618,7 +619,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*test_classes) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_descr.py ============================================================================== --- python/branches/p3yk/Lib/test/test_descr.py (original) +++ python/branches/p3yk/Lib/test/test_descr.py Mon May 7 10:03:22 2007 @@ -1181,7 +1181,7 @@ return 0 g = G() orig_objects = len(gc.get_objects()) - for i in xrange(10): + for i in range(10): g==g new_objects = len(gc.get_objects()) vereq(orig_objects, new_objects) @@ -2363,24 +2363,24 @@ class sublist(list): pass a = sublist(range(5)) - vereq(a, range(5)) + vereq(a, list(range(5))) a.append("hello") - vereq(a, range(5) + ["hello"]) + vereq(a, list(range(5)) + ["hello"]) a[5] = 5 - vereq(a, range(6)) + vereq(a, list(range(6))) a.extend(range(6, 20)) - vereq(a, range(20)) + vereq(a, list(range(20))) a[-5:] = [] - vereq(a, range(15)) + vereq(a, list(range(15))) del a[10:15] vereq(len(a), 10) - vereq(a, range(10)) - vereq(list(a), range(10)) + vereq(a, list(range(10))) + vereq(list(a), list(range(10))) vereq(a[0], 0) vereq(a[9], 9) vereq(a[-10], 0) vereq(a[-1], 9) - vereq(a[:5], range(5)) + vereq(a[:5], list(range(5))) class CountedInput(file): """Counts lines read by self.readline(). @@ -2412,7 +2412,7 @@ f.writelines(lines) f.close() f = CountedInput(TESTFN) - for (i, expected) in zip(range(1, 5) + [4], lines + 2 * [""]): + for (i, expected) in zip(list(range(1, 5)) + [4], lines + 2 * [""]): got = f.readline() vereq(expected, got) vereq(f.lineno, i) @@ -2439,7 +2439,7 @@ vereq(str(object=500), '500') vereq(unicode(string='abc', errors='strict'), u'abc') vereq(tuple(sequence=range(3)), (0, 1, 2)) - vereq(list(sequence=(0, 1, 2)), range(3)) + vereq(list(sequence=(0, 1, 2)), list(range(3))) # note: as of Python 2.3, dict() no longer has an "items" keyword arg for constructor in (int, float, int, complex, str, unicode, @@ -3502,7 +3502,7 @@ def __init__(self, x): self.x = x o = None - for i in xrange(50000): + for i in range(50000): o = trash(o) del o @@ -3959,7 +3959,7 @@ def wrapper_segfault(): # SF 927248: deeply nested wrappers could cause stack overflow f = lambda:None - for i in xrange(1000000): + for i in range(1000000): f = f.__call__ f = None Modified: python/branches/p3yk/Lib/test/test_dis.py ============================================================================== --- python/branches/p3yk/Lib/test/test_dis.py (original) +++ python/branches/p3yk/Lib/test/test_dis.py Mon May 7 10:03:22 2007 @@ -144,12 +144,12 @@ return namespace['foo'] # Test all small ranges - for i in xrange(1, 300): + for i in range(1, 300): expected = _BIG_LINENO_FORMAT % (i + 2) self.do_disassembly_test(func(i), expected) # Test some larger ranges too - for i in xrange(300, 5000, 10): + for i in range(300, 5000, 10): expected = _BIG_LINENO_FORMAT % (i + 2) self.do_disassembly_test(func(i), expected) Modified: python/branches/p3yk/Lib/test/test_doctest.py ============================================================================== --- python/branches/p3yk/Lib/test/test_doctest.py (original) +++ python/branches/p3yk/Lib/test/test_doctest.py Mon May 7 10:03:22 2007 @@ -996,7 +996,7 @@ (0, 1) An example from the docs: - >>> print(range(20)) #doctest: +NORMALIZE_WHITESPACE + >>> print(list(range(20))) #doctest: +NORMALIZE_WHITESPACE [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] @@ -1004,7 +1004,7 @@ output to match any substring in the actual output: >>> def f(x): - ... '>>> print(range(15))\n[0, 1, 2, ..., 14]\n' + ... '>>> print(list(range(15)))\n[0, 1, 2, ..., 14]\n' >>> # Without the flag: >>> test = doctest.DocTestFinder().find(f)[0] @@ -1013,7 +1013,7 @@ ********************************************************************** File ..., line 2, in f Failed example: - print(range(15)) + print(list(range(15))) Expected: [0, 1, 2, ..., 14] Got: @@ -1044,10 +1044,10 @@ Examples from the docs: - >>> print(range(20)) # doctest:+ELLIPSIS + >>> print(list(range(20))) # doctest:+ELLIPSIS [0, 1, ..., 18, 19] - >>> print(range(20)) # doctest: +ELLIPSIS + >>> print(list(range(20))) # doctest: +ELLIPSIS ... # doctest: +NORMALIZE_WHITESPACE [0, 1, ..., 18, 19] @@ -1302,10 +1302,10 @@ example with a comment of the form ``# doctest: +OPTION``: >>> def f(x): r''' - ... >>> print(range(10)) # should fail: no ellipsis + ... >>> print(list(range(10))) # should fail: no ellipsis ... [0, 1, ..., 9] ... - ... >>> print(range(10)) # doctest: +ELLIPSIS + ... >>> print(list(range(10))) # doctest: +ELLIPSIS ... [0, 1, ..., 9] ... ''' >>> test = doctest.DocTestFinder().find(f)[0] @@ -1314,7 +1314,7 @@ ********************************************************************** File ..., line 2, in f Failed example: - print(range(10)) # should fail: no ellipsis + print(list(range(10))) # should fail: no ellipsis Expected: [0, 1, ..., 9] Got: @@ -1325,11 +1325,11 @@ comment of the form ``# doctest: -OPTION``: >>> def f(x): r''' - ... >>> print(range(10)) + ... >>> print(list(range(10))) ... [0, 1, ..., 9] ... ... >>> # should fail: no ellipsis - ... >>> print(range(10)) # doctest: -ELLIPSIS + ... >>> print(list(range(10))) # doctest: -ELLIPSIS ... [0, 1, ..., 9] ... ''' >>> test = doctest.DocTestFinder().find(f)[0] @@ -1339,7 +1339,7 @@ ********************************************************************** File ..., line 6, in f Failed example: - print(range(10)) # doctest: -ELLIPSIS + print(list(range(10))) # doctest: -ELLIPSIS Expected: [0, 1, ..., 9] Got: @@ -1350,13 +1350,13 @@ do not change the options for surrounding examples: >>> def f(x): r''' - ... >>> print(range(10)) # Should fail: no ellipsis + ... >>> print(list(range(10))) # Should fail: no ellipsis ... [0, 1, ..., 9] ... - ... >>> print(range(10)) # doctest: +ELLIPSIS + ... >>> print(list(range(10))) # doctest: +ELLIPSIS ... [0, 1, ..., 9] ... - ... >>> print(range(10)) # Should fail: no ellipsis + ... >>> print(list(range(10))) # Should fail: no ellipsis ... [0, 1, ..., 9] ... ''' >>> test = doctest.DocTestFinder().find(f)[0] @@ -1365,7 +1365,7 @@ ********************************************************************** File ..., line 2, in f Failed example: - print(range(10)) # Should fail: no ellipsis + print(list(range(10))) # Should fail: no ellipsis Expected: [0, 1, ..., 9] Got: @@ -1373,7 +1373,7 @@ ********************************************************************** File ..., line 8, in f Failed example: - print(range(10)) # Should fail: no ellipsis + print(list(range(10))) # Should fail: no ellipsis Expected: [0, 1, ..., 9] Got: @@ -1384,9 +1384,9 @@ may be separated by whitespace, commas, or both: >>> def f(x): r''' - ... >>> print(range(10)) # Should fail + ... >>> print(list(range(10))) # Should fail ... [0, 1, ..., 9] - ... >>> print(range(10)) # Should succeed + ... >>> print(list(range(10))) # Should succeed ... ... # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE ... [0, 1, ..., 9] ... ''' @@ -1396,7 +1396,7 @@ ********************************************************************** File ..., line 2, in f Failed example: - print(range(10)) # Should fail + print(list(range(10))) # Should fail Expected: [0, 1, ..., 9] Got: @@ -1404,9 +1404,9 @@ (1, 2) >>> def f(x): r''' - ... >>> print(range(10)) # Should fail + ... >>> print(list(range(10))) # Should fail ... [0, 1, ..., 9] - ... >>> print(range(10)) # Should succeed + ... >>> print(list(range(10))) # Should succeed ... ... # doctest: +ELLIPSIS,+NORMALIZE_WHITESPACE ... [0, 1, ..., 9] ... ''' @@ -1416,7 +1416,7 @@ ********************************************************************** File ..., line 2, in f Failed example: - print(range(10)) # Should fail + print(list(range(10))) # Should fail Expected: [0, 1, ..., 9] Got: @@ -1424,9 +1424,9 @@ (1, 2) >>> def f(x): r''' - ... >>> print(range(10)) # Should fail + ... >>> print(list(range(10))) # Should fail ... [0, 1, ..., 9] - ... >>> print(range(10)) # Should succeed + ... >>> print(list(range(10))) # Should succeed ... ... # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE ... [0, 1, ..., 9] ... ''' @@ -1436,7 +1436,7 @@ ********************************************************************** File ..., line 2, in f Failed example: - print(range(10)) # Should fail + print(list(range(10))) # Should fail Expected: [0, 1, ..., 9] Got: @@ -1447,7 +1447,7 @@ long as a continuation prompt is used: >>> def f(x): r''' - ... >>> print(range(10)) + ... >>> print(list(range(10))) ... ... # doctest: +ELLIPSIS ... [0, 1, ..., 9] ... ''' Modified: python/branches/p3yk/Lib/test/test_dummy_thread.py ============================================================================== --- python/branches/p3yk/Lib/test/test_dummy_thread.py (original) +++ python/branches/p3yk/Lib/test/test_dummy_thread.py Mon May 7 10:03:22 2007 @@ -153,7 +153,7 @@ print() print("*** Testing multiple thread creation "\ "(will take approx. %s to %s sec.) ***" % (DELAY, thread_count)) - for count in xrange(thread_count): + for count in range(thread_count): if DELAY: local_delay = round(random.random(), 1) else: Modified: python/branches/p3yk/Lib/test/test_enumerate.py ============================================================================== --- python/branches/p3yk/Lib/test/test_enumerate.py (original) +++ python/branches/p3yk/Lib/test/test_enumerate.py Mon May 7 10:03:22 2007 @@ -134,18 +134,18 @@ raise StopIteration def __len__(self): return 5 - for data in 'abc', range(5), tuple(enumerate('abc')), A(), xrange(1,17,5): + for data in 'abc', range(5), tuple(enumerate('abc')), A(), range(1,17,5): self.assertEqual(list(data)[::-1], list(reversed(data))) self.assertRaises(TypeError, reversed, {}) - def test_xrange_optimization(self): - x = xrange(1) + def test_range_optimization(self): + x = range(1) self.assertEqual(type(reversed(x)), type(iter(x))) def test_len(self): # This is an implementation detail, not an interface requirement from test.test_iterlen import len - for s in ('hello', tuple('hello'), list('hello'), xrange(5)): + for s in ('hello', tuple('hello'), list('hello'), range(5)): self.assertEqual(len(reversed(s)), len(s)) r = reversed(s) list(r) @@ -205,7 +205,7 @@ import sys if verbose and hasattr(sys, "gettotalrefcount"): counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*testclasses) counts[i] = sys.gettotalrefcount() print(counts) Modified: python/branches/p3yk/Lib/test/test_functools.py ============================================================================== --- python/branches/p3yk/Lib/test/test_functools.py (original) +++ python/branches/p3yk/Lib/test/test_functools.py Mon May 7 10:03:22 2007 @@ -352,7 +352,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*test_classes) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_gc.py ============================================================================== --- python/branches/p3yk/Lib/test/test_gc.py (original) +++ python/branches/p3yk/Lib/test/test_gc.py Mon May 7 10:03:22 2007 @@ -399,7 +399,7 @@ got = gc.get_referents([1, 2], {3: 4}, (0, 0, 0)) got.sort() - self.assertEqual(got, [0, 0] + range(5)) + self.assertEqual(got, [0, 0] + list(range(5))) self.assertEqual(gc.get_referents(1, 'a', 4j), []) Modified: python/branches/p3yk/Lib/test/test_generators.py ============================================================================== --- python/branches/p3yk/Lib/test/test_generators.py (original) +++ python/branches/p3yk/Lib/test/test_generators.py Mon May 7 10:03:22 2007 @@ -343,7 +343,7 @@ ... for c in gcomb(rest, k): ... yield c ->>> seq = range(1, 5) +>>> seq = list(range(1, 5)) >>> for k in range(len(seq) + 2): ... print("%d-combs of %s:" % (k, seq)) ... for c in gcomb(seq, k): Modified: python/branches/p3yk/Lib/test/test_genexps.py ============================================================================== --- python/branches/p3yk/Lib/test/test_genexps.py (original) +++ python/branches/p3yk/Lib/test/test_genexps.py Mon May 7 10:03:22 2007 @@ -59,16 +59,16 @@ Test running gen when defining function is out of scope >>> def f(n): - ... return (i*i for i in xrange(n)) + ... return (i*i for i in range(n)) >>> list(f(10)) [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> def f(n): - ... return ((i,j) for i in xrange(3) for j in xrange(n)) + ... return ((i,j) for i in range(3) for j in range(n)) >>> list(f(4)) [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)] >>> def f(n): - ... return ((i,j) for i in xrange(3) for j in xrange(4) if j in xrange(n)) + ... return ((i,j) for i in range(3) for j in range(4) if j in range(n)) >>> list(f(4)) [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)] >>> list(f(2)) @@ -77,21 +77,21 @@ Verify that parenthesis are required in a statement >>> def f(n): - ... return i*i for i in xrange(n) + ... return i*i for i in range(n) Traceback (most recent call last): ... SyntaxError: invalid syntax Verify that parenthesis are required when used as a keyword argument value - >>> dict(a = i for i in xrange(10)) + >>> dict(a = i for i in range(10)) Traceback (most recent call last): ... SyntaxError: invalid syntax Verify that parenthesis are required when used as a keyword argument value - >>> dict(a = (i for i in xrange(10))) #doctest: +ELLIPSIS + >>> dict(a = (i for i in range(10))) #doctest: +ELLIPSIS {'a': } Verify early binding for the outermost for-expression @@ -128,7 +128,7 @@ Verify re-use of tuples (a side benefit of using genexps over listcomps) - >>> tupleids = map(id, ((i,i) for i in xrange(10))) + >>> tupleids = map(id, ((i,i) for i in range(10))) >>> int(max(tupleids) - min(tupleids)) 0 @@ -149,7 +149,7 @@ Make a generator that acts like range() - >>> yrange = lambda n: (i for i in xrange(n)) + >>> yrange = lambda n: (i for i in range(n)) >>> list(yrange(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] @@ -181,14 +181,14 @@ Verify that a gen exp cannot be resumed while it is actively running: - >>> g = (next(me) for i in xrange(10)) + >>> g = (next(me) for i in range(10)) >>> me = g >>> next(me) Traceback (most recent call last): File "", line 1, in -toplevel- next(me) File "", line 1, in - g = (next(me) for i in xrange(10)) + g = (next(me) for i in range(10)) ValueError: generator already executing Verify exception propagation @@ -211,7 +211,7 @@ Make sure that None is a valid return value - >>> list(None for i in xrange(10)) + >>> list(None for i in range(10)) [None, None, None, None, None, None, None, None, None, None] Check that generator attributes are present @@ -270,7 +270,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_doctest(test_genexps, verbose) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_grp.py ============================================================================== --- python/branches/p3yk/Lib/test/test_grp.py (original) +++ python/branches/p3yk/Lib/test/test_grp.py Mon May 7 10:03:22 2007 @@ -55,7 +55,7 @@ fakename = allnames[namei] while fakename in bynames: chars = map(None, fakename) - for i in xrange(len(chars)): + for i in range(len(chars)): if chars[i] == 'z': chars[i] = 'A' break Modified: python/branches/p3yk/Lib/test/test_heapq.py ============================================================================== --- python/branches/p3yk/Lib/test/test_heapq.py (original) +++ python/branches/p3yk/Lib/test/test_heapq.py Mon May 7 10:03:22 2007 @@ -90,7 +90,7 @@ def test_heapsort(self): # Exercise everything with repeated heapsort checks - for trial in xrange(100): + for trial in range(100): size = random.randrange(50) data = [random.randrange(25) for i in range(size)] if trial & 1: # Half of the time, use heapify @@ -105,7 +105,7 @@ def test_merge(self): inputs = [] - for i in xrange(random.randrange(5)): + for i in range(random.randrange(5)): row = sorted(random.randrange(1000) for j in range(random.randrange(10))) inputs.append(row) self.assertEqual(sorted(chain(*inputs)), list(merge(*inputs))) @@ -277,7 +277,7 @@ def test_iterable_args(self): for f in (nlargest, nsmallest): - for s in ("123", "", range(1000), (1, 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), (1, 1.2), range(2000,2200,5)): for g in (G, I, Ig, L, R): self.assertEqual(f(2, g(s)), f(2,s)) self.assertEqual(f(2, S(s)), []) @@ -300,7 +300,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*test_classes) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_index.py ============================================================================== --- python/branches/p3yk/Lib/test/test_index.py (original) +++ python/branches/p3yk/Lib/test/test_index.py Mon May 7 10:03:22 2007 @@ -49,7 +49,7 @@ self.assertEqual(self.n.__index__(), 5) def test_subclasses(self): - r = range(10) + r = list(range(10)) self.assertEqual(r[TrapInt(5):TrapInt(10)], r[5:10]) self.assertEqual(r[TrapLong(5):TrapLong(10)], r[5:10]) self.assertEqual(slice(TrapInt()).indices(0), (0,0,1)) @@ -164,14 +164,6 @@ seq = u"this is a test" -class XRangeTestCase(unittest.TestCase): - - def test_xrange(self): - n = newstyle() - n.ind = 5 - self.assertEqual(xrange(1, 20)[n], 6) - self.assertEqual(xrange(1, 20).__getitem__(n), 6) - class OverflowTestCase(unittest.TestCase): def setUp(self): @@ -215,7 +207,6 @@ TupleTestCase, StringTestCase, UnicodeTestCase, - XRangeTestCase, OverflowTestCase, ) Modified: python/branches/p3yk/Lib/test/test_io.py ============================================================================== --- python/branches/p3yk/Lib/test/test_io.py (original) +++ python/branches/p3yk/Lib/test/test_io.py Mon May 7 10:03:22 2007 @@ -546,7 +546,7 @@ wlines = [] for size in (0, 1, 2, 3, 4, 5, 30, 31, 32, 33, 62, 63, 64, 65, 1000): chars = [] - for i in xrange(size): + for i in range(size): chars.append(sample[i % len(sample)]) line = u"".join(chars) + "\n" wlines.append((f.tell(), line)) Modified: python/branches/p3yk/Lib/test/test_isinstance.py ============================================================================== --- python/branches/p3yk/Lib/test/test_isinstance.py (original) +++ python/branches/p3yk/Lib/test/test_isinstance.py Mon May 7 10:03:22 2007 @@ -259,7 +259,7 @@ # Make sure that calling isinstance with a deeply nested tuple for its # argument will raise RuntimeError eventually. tuple_arg = (compare_to,) - for cnt in xrange(sys.getrecursionlimit()+5): + for cnt in range(sys.getrecursionlimit()+5): tuple_arg = (tuple_arg,) fxn(arg, tuple_arg) Modified: python/branches/p3yk/Lib/test/test_iter.py ============================================================================== --- python/branches/p3yk/Lib/test/test_iter.py (original) +++ python/branches/p3yk/Lib/test/test_iter.py Mon May 7 10:03:22 2007 @@ -68,18 +68,18 @@ # Test basic use of iter() function def test_iter_basic(self): - self.check_iterator(iter(range(10)), range(10)) + self.check_iterator(iter(range(10)), list(range(10))) # Test that iter(iter(x)) is the same as iter(x) def test_iter_idempotency(self): - seq = range(10) + seq = list(range(10)) it = iter(seq) it2 = iter(it) self.assert_(it is it2) # Test that for loops over iterators work def test_iter_for_loop(self): - self.check_for_loop(iter(range(10)), range(10)) + self.check_for_loop(iter(range(10)), list(range(10))) # Test several independent iterators over the same list def test_iter_independence(self): @@ -106,19 +106,19 @@ # Test a class with __iter__ in a for loop def test_iter_class_for(self): - self.check_for_loop(IteratingSequenceClass(10), range(10)) + self.check_for_loop(IteratingSequenceClass(10), list(range(10))) # Test a class with __iter__ with explicit iter() def test_iter_class_iter(self): - self.check_iterator(iter(IteratingSequenceClass(10)), range(10)) + self.check_iterator(iter(IteratingSequenceClass(10)), list(range(10))) # Test for loop on a sequence class without __iter__ def test_seq_class_for(self): - self.check_for_loop(SequenceClass(10), range(10)) + self.check_for_loop(SequenceClass(10), list(range(10))) # Test iter() on a sequence class without __iter__ def test_seq_class_iter(self): - self.check_iterator(iter(SequenceClass(10)), range(10)) + self.check_iterator(iter(SequenceClass(10)), list(range(10))) # Test two-argument iter() with callable instance def test_iter_callable(self): @@ -131,7 +131,7 @@ if i > 100: raise IndexError # Emergency stop return i - self.check_iterator(iter(C(), 10), range(10)) + self.check_iterator(iter(C(), 10), list(range(10))) # Test two-argument iter() with function def test_iter_function(self): @@ -139,7 +139,7 @@ i = state[0] state[0] = i+1 return i - self.check_iterator(iter(spam, 10), range(10)) + self.check_iterator(iter(spam, 10), list(range(10))) # Test two-argument iter() with function that raises StopIteration def test_iter_function_stop(self): @@ -149,7 +149,7 @@ raise StopIteration state[0] = i+1 return i - self.check_iterator(iter(spam, 20), range(10)) + self.check_iterator(iter(spam, 20), list(range(10))) # Test exception propagation through function iterator def test_exception_function(self): @@ -164,7 +164,7 @@ for x in iter(spam, 20): res.append(x) except RuntimeError: - self.assertEqual(res, range(10)) + self.assertEqual(res, list(range(10))) else: self.fail("should have raised RuntimeError") @@ -180,7 +180,7 @@ for x in MySequenceClass(20): res.append(x) except RuntimeError: - self.assertEqual(res, range(10)) + self.assertEqual(res, list(range(10))) else: self.fail("should have raised RuntimeError") @@ -191,11 +191,11 @@ if i == 10: raise StopIteration return SequenceClass.__getitem__(self, i) - self.check_for_loop(MySequenceClass(20), range(10)) + self.check_for_loop(MySequenceClass(20), list(range(10))) # Test a big range def test_iter_big_range(self): - self.check_for_loop(iter(range(10000)), range(10000)) + self.check_for_loop(iter(range(10000)), list(range(10000))) # Test an empty list def test_iter_empty(self): @@ -203,11 +203,11 @@ # Test a tuple def test_iter_tuple(self): - self.check_for_loop(iter((0,1,2,3,4,5,6,7,8,9)), range(10)) + self.check_for_loop(iter((0,1,2,3,4,5,6,7,8,9)), list(range(10))) - # Test an xrange - def test_iter_xrange(self): - self.check_for_loop(iter(xrange(10)), range(10)) + # Test a range + def test_iter_range(self): + self.check_for_loop(iter(range(10)), list(range(10))) # Test a string def test_iter_string(self): @@ -248,10 +248,9 @@ # Test list()'s use of iterators. def test_builtin_list(self): - self.assertEqual(list(SequenceClass(5)), range(5)) + self.assertEqual(list(SequenceClass(5)), list(range(5))) self.assertEqual(list(SequenceClass(0)), []) self.assertEqual(list(()), []) - self.assertEqual(list(range(10, -1, -1)), range(10, -1, -1)) d = {"one": 1, "two": 2, "three": 3} self.assertEqual(list(d), list(d.keys())) @@ -313,7 +312,7 @@ # Test filter()'s use of iterators. def test_builtin_filter(self): - self.assertEqual(filter(None, SequenceClass(5)), range(1, 5)) + self.assertEqual(filter(None, SequenceClass(5)), list(range(1, 5))) self.assertEqual(filter(None, SequenceClass(0)), []) self.assertEqual(filter(None, ()), ()) self.assertEqual(filter(None, "abc"), "abc") @@ -389,8 +388,8 @@ # Test map()'s use of iterators. def test_builtin_map(self): - self.assertEqual(map(None, SequenceClass(5)), range(5)) - self.assertEqual(map(lambda x: x+1, SequenceClass(5)), range(1, 6)) + self.assertEqual(map(None, SequenceClass(5)), list(range(5))) + self.assertEqual(map(lambda x: x+1, SequenceClass(5)), list(range(1, 6))) d = {"one": 1, "two": 2, "three": 3} self.assertEqual(map(None, d), list(d.keys())) @@ -413,7 +412,7 @@ f.close() f = open(TESTFN, "r") try: - self.assertEqual(map(len, f), range(1, 21, 2)) + self.assertEqual(map(len, f), list(range(1, 21, 2))) finally: f.close() try: @@ -470,7 +469,7 @@ except OSError: pass - self.assertEqual(list(zip(xrange(5))), [(i,) for i in range(5)]) + self.assertEqual(list(zip(range(5))), [(i,) for i in range(5)]) # Classes that lie about their lengths. class NoGuessLen5: @@ -799,16 +798,16 @@ def test_sinkstate_list(self): # This used to fail - a = range(5) + a = list(range(5)) b = iter(a) - self.assertEqual(list(b), range(5)) + self.assertEqual(list(b), list(range(5))) a.extend(range(5, 10)) self.assertEqual(list(b), []) def test_sinkstate_tuple(self): a = (0, 1, 2, 3, 4) b = iter(a) - self.assertEqual(list(b), range(5)) + self.assertEqual(list(b), list(range(5))) self.assertEqual(list(b), []) def test_sinkstate_string(self): @@ -821,7 +820,7 @@ # This used to fail a = SequenceClass(5) b = iter(a) - self.assertEqual(list(b), range(5)) + self.assertEqual(list(b), list(range(5))) a.n = 10 self.assertEqual(list(b), []) @@ -834,7 +833,7 @@ raise AssertionError, "shouldn't have gotten this far" return i b = iter(spam, 5) - self.assertEqual(list(b), range(5)) + self.assertEqual(list(b), list(range(5))) self.assertEqual(list(b), []) def test_sinkstate_dict(self): @@ -851,13 +850,13 @@ for i in range(5): yield i b = gen() - self.assertEqual(list(b), range(5)) + self.assertEqual(list(b), list(range(5))) self.assertEqual(list(b), []) def test_sinkstate_range(self): - a = xrange(5) + a = range(5) b = iter(a) - self.assertEqual(list(b), range(5)) + self.assertEqual(list(b), list(range(5))) self.assertEqual(list(b), []) def test_sinkstate_enumerate(self): Modified: python/branches/p3yk/Lib/test/test_iterlen.py ============================================================================== --- python/branches/p3yk/Lib/test/test_iterlen.py (original) +++ python/branches/p3yk/Lib/test/test_iterlen.py Mon May 7 10:03:22 2007 @@ -9,14 +9,14 @@ A complication is that an iterable and iterator can be the same object. To maintain the invariant, an iterator needs to dynamically update its length. -For instance, an iterable such as xrange(10) always reports its length as ten, -but it=iter(xrange(10)) starts at ten, and then goes to nine after next(it). +For instance, an iterable such as range(10) always reports its length as ten, +but it=iter(range(10)) starts at ten, and then goes to nine after next(it). Having this capability means that map() can ignore the distinction between map(func, iterable) and map(func, iter(iterable)). When the iterable is immutable, the implementation can straight-forwardly report the original length minus the cumulative number of calls to next(). -This is the case for tuples, xrange objects, and itertools.repeat(). +This is the case for tuples, range objects, and itertools.repeat(). Some containers become temporarily immutable during iteration. This includes dicts, sets, and collections.deque. Their implementation is equally simple @@ -65,7 +65,7 @@ def test_invariant(self): it = self.it - for i in reversed(xrange(1, n+1)): + for i in reversed(range(1, n+1)): self.assertEqual(len(it), i) next(it) self.assertEqual(len(it), 0) @@ -100,59 +100,59 @@ class TestXrange(TestInvariantWithoutMutations): def setUp(self): - self.it = iter(xrange(n)) + self.it = iter(range(n)) class TestXrangeCustomReversed(TestInvariantWithoutMutations): def setUp(self): - self.it = reversed(xrange(n)) + self.it = reversed(range(n)) class TestTuple(TestInvariantWithoutMutations): def setUp(self): - self.it = iter(tuple(xrange(n))) + self.it = iter(tuple(range(n))) ## ------- Types that should not be mutated during iteration ------- class TestDeque(TestTemporarilyImmutable): def setUp(self): - d = deque(xrange(n)) + d = deque(range(n)) self.it = iter(d) self.mutate = d.pop class TestDequeReversed(TestTemporarilyImmutable): def setUp(self): - d = deque(xrange(n)) + d = deque(range(n)) self.it = reversed(d) self.mutate = d.pop class TestDictKeys(TestTemporarilyImmutable): def setUp(self): - d = dict.fromkeys(xrange(n)) + d = dict.fromkeys(range(n)) self.it = iter(d) self.mutate = d.popitem class TestDictItems(TestTemporarilyImmutable): def setUp(self): - d = dict.fromkeys(xrange(n)) + d = dict.fromkeys(range(n)) self.it = iter(d.items()) self.mutate = d.popitem class TestDictValues(TestTemporarilyImmutable): def setUp(self): - d = dict.fromkeys(xrange(n)) + d = dict.fromkeys(range(n)) self.it = iter(d.values()) self.mutate = d.popitem class TestSet(TestTemporarilyImmutable): def setUp(self): - d = set(xrange(n)) + d = set(range(n)) self.it = iter(d) self.mutate = d.pop @@ -164,7 +164,7 @@ self.it = iter(range(n)) def test_mutation(self): - d = range(n) + d = list(range(n)) it = iter(d) next(it) next(it) @@ -174,7 +174,7 @@ d[1:] = [] self.assertEqual(len(it), 0) self.assertEqual(list(it), []) - d.extend(xrange(20)) + d.extend(range(20)) self.assertEqual(len(it), 0) class TestListReversed(TestInvariantWithoutMutations): @@ -183,7 +183,7 @@ self.it = reversed(range(n)) def test_mutation(self): - d = range(n) + d = list(range(n)) it = reversed(d) next(it) next(it) @@ -193,7 +193,7 @@ d[1:] = [] self.assertEqual(len(it), 0) self.assertEqual(list(it), []) # confirm invariant - d.extend(xrange(20)) + d.extend(range(20)) self.assertEqual(len(it), 0) class TestSeqIter(TestInvariantWithoutMutations): @@ -212,7 +212,7 @@ d[1:] = [] self.assertEqual(len(it), 0) self.assertEqual(list(it), []) - d.extend(xrange(20)) + d.extend(range(20)) self.assertEqual(len(it), 0) class TestSeqIterReversed(TestInvariantWithoutMutations): @@ -231,7 +231,7 @@ d[1:] = [] self.assertEqual(len(it), 0) self.assertEqual(list(it), []) # confirm invariant - d.extend(xrange(20)) + d.extend(range(20)) self.assertEqual(len(it), 0) Modified: python/branches/p3yk/Lib/test/test_itertools.py ============================================================================== --- python/branches/p3yk/Lib/test/test_itertools.py (original) +++ python/branches/p3yk/Lib/test/test_itertools.py Mon May 7 10:03:22 2007 @@ -248,7 +248,7 @@ self.assertEqual(len(dict.fromkeys(ids)), len(ids)) def test_repeat(self): - self.assertEqual(lzip(xrange(3),repeat('a')), + self.assertEqual(lzip(range(3),repeat('a')), [(0, 'a'), (1, 'a'), (2, 'a')]) self.assertEqual(list(repeat('a', 3)), ['a', 'a', 'a']) self.assertEqual(take(3, repeat('a')), ['a', 'a', 'a']) @@ -301,39 +301,41 @@ (10, 3), (20,) ]: - self.assertEqual(list(islice(xrange(100), *args)), range(*args)) + self.assertEqual(list(islice(range(100), *args)), + list(range(*args))) for args, tgtargs in [ # Stop when seqn is exhausted ((10, 110, 3), ((10, 100, 3))), ((10, 110), ((10, 100))), ((110,), (100,)) ]: - self.assertEqual(list(islice(xrange(100), *args)), range(*tgtargs)) + self.assertEqual(list(islice(range(100), *args)), + list(range(*tgtargs))) # Test stop=None - self.assertEqual(list(islice(xrange(10), None)), range(10)) - self.assertEqual(list(islice(xrange(10), None, None)), range(10)) - self.assertEqual(list(islice(xrange(10), None, None, None)), range(10)) - self.assertEqual(list(islice(xrange(10), 2, None)), range(2, 10)) - self.assertEqual(list(islice(xrange(10), 1, None, 2)), range(1, 10, 2)) + self.assertEqual(list(islice(range(10), None)), list(range(10))) + self.assertEqual(list(islice(range(10), None, None)), list(range(10))) + self.assertEqual(list(islice(range(10), None, None, None)), list(range(10))) + self.assertEqual(list(islice(range(10), 2, None)), list(range(2, 10))) + self.assertEqual(list(islice(range(10), 1, None, 2)), list(range(1, 10, 2))) # Test number of items consumed SF #1171417 it = iter(range(10)) - self.assertEqual(list(islice(it, 3)), range(3)) - self.assertEqual(list(it), range(3, 10)) + self.assertEqual(list(islice(it, 3)), list(range(3))) + self.assertEqual(list(it), list(range(3, 10))) # Test invalid arguments - self.assertRaises(TypeError, islice, xrange(10)) - self.assertRaises(TypeError, islice, xrange(10), 1, 2, 3, 4) - self.assertRaises(ValueError, islice, xrange(10), -5, 10, 1) - self.assertRaises(ValueError, islice, xrange(10), 1, -5, -1) - self.assertRaises(ValueError, islice, xrange(10), 1, 10, -1) - self.assertRaises(ValueError, islice, xrange(10), 1, 10, 0) - self.assertRaises(ValueError, islice, xrange(10), 'a') - self.assertRaises(ValueError, islice, xrange(10), 'a', 1) - self.assertRaises(ValueError, islice, xrange(10), 1, 'a') - self.assertRaises(ValueError, islice, xrange(10), 'a', 1, 1) - self.assertRaises(ValueError, islice, xrange(10), 1, 'a', 1) + self.assertRaises(TypeError, islice, range(10)) + self.assertRaises(TypeError, islice, range(10), 1, 2, 3, 4) + self.assertRaises(ValueError, islice, range(10), -5, 10, 1) + self.assertRaises(ValueError, islice, range(10), 1, -5, -1) + self.assertRaises(ValueError, islice, range(10), 1, 10, -1) + self.assertRaises(ValueError, islice, range(10), 1, 10, 0) + self.assertRaises(ValueError, islice, range(10), 'a') + self.assertRaises(ValueError, islice, range(10), 'a', 1) + self.assertRaises(ValueError, islice, range(10), 1, 'a') + self.assertRaises(ValueError, islice, range(10), 'a', 1, 1) + self.assertRaises(ValueError, islice, range(10), 1, 'a', 1) self.assertEqual(len(list(islice(count(), 1, 10, sys.maxint))), 1) def test_takewhile(self): @@ -364,7 +366,7 @@ def test_tee(self): n = 200 def irange(n): - for i in xrange(n): + for i in range(n): yield i a, b = tee([]) # test empty iterator @@ -375,22 +377,22 @@ self.assertEqual(lzip(a,b), lzip(range(n), range(n))) a, b = tee(irange(n)) # test 0% interleaved - self.assertEqual(list(a), range(n)) - self.assertEqual(list(b), range(n)) + self.assertEqual(list(a), list(range(n))) + self.assertEqual(list(b), list(range(n))) a, b = tee(irange(n)) # test dealloc of leading iterator - for i in xrange(100): + for i in range(100): self.assertEqual(next(a), i) del a - self.assertEqual(list(b), range(n)) + self.assertEqual(list(b), list(range(n))) a, b = tee(irange(n)) # test dealloc of trailing iterator - for i in xrange(100): + for i in range(100): self.assertEqual(next(a), i) del b - self.assertEqual(list(a), range(100, n)) + self.assertEqual(list(a), list(range(100, n))) - for j in xrange(5): # test randomly interleaved + for j in range(5): # test randomly interleaved order = [0]*n + [1]*n random.shuffle(order) lists = ([], []) @@ -398,8 +400,8 @@ for i in order: value = next(its[i]) lists[i].append(value) - self.assertEqual(lists[0], range(n)) - self.assertEqual(lists[1], range(n)) + self.assertEqual(lists[0], list(range(n))) + self.assertEqual(lists[1], list(range(n))) # test argument format checking self.assertRaises(TypeError, tee) @@ -413,18 +415,18 @@ self.assertEqual(list(c), list('def')) # test long-lagged and multi-way split - a, b, c = tee(xrange(2000), 3) - for i in xrange(100): + a, b, c = tee(range(2000), 3) + for i in range(100): self.assertEqual(next(a), i) - self.assertEqual(list(b), range(2000)) - self.assertEqual([next(c), next(c)], range(2)) - self.assertEqual(list(a), range(100,2000)) - self.assertEqual(list(c), range(2,2000)) + self.assertEqual(list(b), list(range(2000))) + self.assertEqual([next(c), next(c)], list(range(2))) + self.assertEqual(list(a), list(range(100,2000))) + self.assertEqual(list(c), list(range(2,2000))) # test values of n self.assertRaises(TypeError, tee, 'abc', 'invalid') self.assertRaises(ValueError, tee, [], -1) - for n in xrange(5): + for n in range(5): result = tee('abc', n) self.assertEqual(type(result), tuple) self.assertEqual(len(result), n) @@ -444,7 +446,7 @@ self.assert_(list(t1) == list(t2) == list(t3) == list('abc')) # test that tee objects are weak referencable - a, b = tee(xrange(10)) + a, b = tee(range(10)) p = proxy(a) self.assertEqual(getattr(p, '__class__'), type(b)) del a @@ -608,7 +610,7 @@ class TestVariousIteratorArgs(unittest.TestCase): def test_chain(self): - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(chain(g(s))), list(g(s))) self.assertEqual(list(chain(g(s), g(s))), list(g(s))+list(g(s))) @@ -617,7 +619,7 @@ self.assertRaises(ZeroDivisionError, list, chain(E(s))) def test_cycle(self): - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): tgtlen = len(s) * 3 expected = list(g(s))*3 @@ -628,7 +630,7 @@ self.assertRaises(ZeroDivisionError, list, cycle(E(s))) def test_groupby(self): - for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)): + for s in (range(10), range(0), range(1000), (7,11), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual([k for k, sb in groupby(g(s))], list(g(s))) self.assertRaises(TypeError, groupby, X(s)) @@ -636,7 +638,7 @@ self.assertRaises(ZeroDivisionError, list, groupby(E(s))) def test_ifilter(self): - for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)): + for s in (range(10), range(0), range(1000), (7,11), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(ifilter(isEven, g(s))), filter(isEven, g(s))) self.assertRaises(TypeError, ifilter, isEven, X(s)) @@ -644,7 +646,7 @@ self.assertRaises(ZeroDivisionError, list, ifilter(isEven, E(s))) def test_ifilterfalse(self): - for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)): + for s in (range(10), range(0), range(1000), (7,11), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(ifilterfalse(isEven, g(s))), filter(isOdd, g(s))) self.assertRaises(TypeError, ifilterfalse, isEven, X(s)) @@ -652,7 +654,7 @@ self.assertRaises(ZeroDivisionError, list, ifilterfalse(isEven, E(s))) def test_izip(self): - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(izip(g(s))), lzip(g(s))) self.assertEqual(list(izip(g(s), g(s))), lzip(g(s), g(s))) @@ -661,7 +663,7 @@ self.assertRaises(ZeroDivisionError, list, izip(E(s))) def test_iziplongest(self): - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(izip_longest(g(s))), list(zip(g(s)))) self.assertEqual(list(izip_longest(g(s), g(s))), list(zip(g(s), g(s)))) @@ -670,7 +672,7 @@ self.assertRaises(ZeroDivisionError, list, izip_longest(E(s))) def test_imap(self): - for s in (range(10), range(0), range(100), (7,11), xrange(20,50,5)): + for s in (range(10), range(0), range(100), (7,11), range(20,50,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(imap(onearg, g(s))), map(onearg, g(s))) self.assertEqual(list(imap(operator.pow, g(s), g(s))), map(operator.pow, g(s), g(s))) @@ -679,7 +681,7 @@ self.assertRaises(ZeroDivisionError, list, imap(onearg, E(s))) def test_islice(self): - for s in ("12345", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("12345", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): self.assertEqual(list(islice(g(s),1,None,2)), list(g(s))[1::2]) self.assertRaises(TypeError, islice, X(s), 10) @@ -687,7 +689,7 @@ self.assertRaises(ZeroDivisionError, list, islice(E(s), 10)) def test_starmap(self): - for s in (range(10), range(0), range(100), (7,11), xrange(20,50,5)): + for s in (range(10), range(0), range(100), (7,11), range(20,50,5)): for g in (G, I, Ig, S, L, R): ss = lzip(s, s) self.assertEqual(list(starmap(operator.pow, g(ss))), map(operator.pow, g(s), g(s))) @@ -696,7 +698,7 @@ self.assertRaises(ZeroDivisionError, list, starmap(operator.pow, E(ss))) def test_takewhile(self): - for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)): + for s in (range(10), range(0), range(1000), (7,11), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): tgt = [] for elem in g(s): @@ -708,7 +710,7 @@ self.assertRaises(ZeroDivisionError, list, takewhile(isEven, E(s))) def test_dropwhile(self): - for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)): + for s in (range(10), range(0), range(1000), (7,11), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): tgt = [] for elem in g(s): @@ -720,7 +722,7 @@ self.assertRaises(ZeroDivisionError, list, dropwhile(isOdd, E(s))) def test_tee(self): - for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)): + for s in ("123", "", range(1000), ('do', 1.2), range(2000,2200,5)): for g in (G, I, Ig, S, L, R): it1, it2 = tee(g(s)) self.assertEqual(list(it1), list(g(s))) @@ -824,7 +826,7 @@ Check 1202 is for $823.14 >>> import operator ->>> for cube in imap(operator.pow, xrange(1,4), repeat(3)): +>>> for cube in imap(operator.pow, range(1,4), repeat(3)): ... print(cube) ... 1 @@ -968,7 +970,7 @@ >>> no([1, 2, 5, 9], lambda x: x%2==0) False ->>> quantify(xrange(99), lambda x: x%2==0) +>>> quantify(range(99), lambda x: x%2==0) 50 >>> a = [[1, 2, 3], [4, 5, 6]] @@ -1014,7 +1016,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(*test_classes) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_list.py ============================================================================== --- python/branches/p3yk/Lib/test/test_list.py (original) +++ python/branches/p3yk/Lib/test/test_list.py Mon May 7 10:03:22 2007 @@ -26,7 +26,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_unittest(ListTest) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_listcomps.py ============================================================================== --- python/branches/p3yk/Lib/test/test_listcomps.py (original) +++ python/branches/p3yk/Lib/test/test_listcomps.py Mon May 7 10:03:22 2007 @@ -43,20 +43,20 @@ Make a nested list comprehension that acts like range() >>> def frange(n): - ... return [i for i in xrange(n)] + ... return [i for i in range(n)] >>> frange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Same again, only as a lambda expression instead of a function definition - >>> lrange = lambda n: [i for i in xrange(n)] + >>> lrange = lambda n: [i for i in range(n)] >>> lrange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Generators can call other generators: >>> def grange(n): - ... for x in [i for i in xrange(n)]: + ... for x in [i for i in range(n)]: ... yield x >>> list(grange(5)) [0, 1, 2, 3, 4] @@ -64,7 +64,7 @@ Make sure that None is a valid return value - >>> [None for i in xrange(10)] + >>> [None for i in range(10)] [None, None, None, None, None, None, None, None, None, None] ########### Tests for various scoping corner cases ############ @@ -138,7 +138,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_doctest(test_genexps, verbose) gc.collect() counts[i] = sys.gettotalrefcount() @@ -191,20 +191,20 @@ Make a nested list comprehension that acts like range() >>> def frange(n): - ... return [i for i in xrange(n)] + ... return [i for i in range(n)] >>> frange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Same again, only as a lambda expression instead of a function definition - >>> lrange = lambda n: [i for i in xrange(n)] + >>> lrange = lambda n: [i for i in range(n)] >>> lrange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Generators can call other generators: >>> def grange(n): - ... for x in [i for i in xrange(n)]: + ... for x in [i for i in range(n)]: ... yield x >>> list(grange(5)) [0, 1, 2, 3, 4] @@ -212,7 +212,7 @@ Make sure that None is a valid return value - >>> [None for i in xrange(10)] + >>> [None for i in range(10)] [None, None, None, None, None, None, None, None, None, None] ########### Tests for various scoping corner cases ############ @@ -286,7 +286,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_doctest(test_genexps, verbose) gc.collect() counts[i] = sys.gettotalrefcount() @@ -339,20 +339,20 @@ Make a nested list comprehension that acts like range() >>> def frange(n): - ... return [i for i in xrange(n)] + ... return [i for i in range(n)] >>> frange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Same again, only as a lambda expression instead of a function definition - >>> lrange = lambda n: [i for i in xrange(n)] + >>> lrange = lambda n: [i for i in range(n)] >>> lrange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Generators can call other generators: >>> def grange(n): - ... for x in [i for i in xrange(n)]: + ... for x in [i for i in range(n)]: ... yield x >>> list(grange(5)) [0, 1, 2, 3, 4] @@ -360,7 +360,7 @@ Make sure that None is a valid return value - >>> [None for i in xrange(10)] + >>> [None for i in range(10)] [None, None, None, None, None, None, None, None, None, None] ########### Tests for various scoping corner cases ############ @@ -434,7 +434,7 @@ if verbose and hasattr(sys, "gettotalrefcount"): import gc counts = [None] * 5 - for i in xrange(len(counts)): + for i in range(len(counts)): test_support.run_doctest(test_genexps, verbose) gc.collect() counts[i] = sys.gettotalrefcount() Modified: python/branches/p3yk/Lib/test/test_logging.py ============================================================================== --- python/branches/p3yk/Lib/test/test_logging.py (original) +++ python/branches/p3yk/Lib/test/test_logging.py Mon May 7 10:03:22 2007 @@ -355,7 +355,7 @@ logger.info("Info message") message("-- logging at WARNING, 3 messages should be seen --") logger.warn("Warn message") - for i in xrange(102): + for i in range(102): message(MSG % i) logger.info("Info index = %d", i) mh.close() Modified: python/branches/p3yk/Lib/test/test_long.py ============================================================================== --- python/branches/p3yk/Lib/test/test_long.py (original) +++ python/branches/p3yk/Lib/test/test_long.py Mon May 7 10:03:22 2007 @@ -71,7 +71,7 @@ def getran2(ndigits): answer = 0 - for i in xrange(ndigits): + for i in range(ndigits): answer = (answer << SHIFT) | random.randint(0, MASK) if random.random() < 0.5: answer = -answer @@ -92,8 +92,8 @@ self.assert_(y < r <= 0, Frm("bad mod from divmod on %r and %r", x, y)) def test_division(self): - digits = range(1, MAXDIGITS+1) + range(KARATSUBA_CUTOFF, - KARATSUBA_CUTOFF + 14) + digits = list(range(1, MAXDIGITS+1)) + list(range(KARATSUBA_CUTOFF, + KARATSUBA_CUTOFF + 14)) digits.append(KARATSUBA_CUTOFF * 3) for lenx in digits: x = self.getran(lenx) @@ -102,7 +102,8 @@ self.check_division(x, y) def test_karatsuba(self): - digits = range(1, 5) + range(KARATSUBA_CUTOFF, KARATSUBA_CUTOFF + 10) + digits = list(range(1, 5)) + list(range(KARATSUBA_CUTOFF, + KARATSUBA_CUTOFF + 10)) digits.extend([KARATSUBA_CUTOFF * 10, KARATSUBA_CUTOFF * 100]) bits = [digit * SHIFT for digit in digits] @@ -140,7 +141,7 @@ eq(x ^ ~x, -1, Frm("x ^ ~x != -1 for x=%r", x)) eq(-x, 1 + ~x, Frm("not -x == 1 + ~x for x=%r", x)) eq(-x, ~(x-1), Frm("not -x == ~(x-1) forx =%r", x)) - for n in xrange(2*SHIFT): + for n in range(2*SHIFT): p2 = 2 ** n eq(x << n >> n, x, Frm("x << n >> n != x for x=%r, n=%r", (x, n))) @@ -184,7 +185,7 @@ def test_bitop_identities(self): for x in special: self.check_bitop_identities_1(x) - digits = xrange(1, MAXDIGITS+1) + digits = range(1, MAXDIGITS+1) for lenx in digits: x = self.getran(lenx) self.check_bitop_identities_1(x) @@ -229,8 +230,8 @@ def test_format(self): for x in special: self.check_format_1(x) - for i in xrange(10): - for lenx in xrange(1, MAXDIGITS+1): + for i in range(10): + for lenx in range(1, MAXDIGITS+1): x = self.getran(lenx) self.check_format_1(x) @@ -399,7 +400,7 @@ LOG10E = math.log10(math.e) - for exp in range(10) + [100, 1000, 10000]: + for exp in list(range(10)) + [100, 1000, 10000]: value = 10 ** exp log10 = math.log10(value) self.assertAlmostEqual(log10, exp) Modified: python/branches/p3yk/Lib/test/test_mailbox.py ============================================================================== --- python/branches/p3yk/Lib/test/test_mailbox.py (original) +++ python/branches/p3yk/Lib/test/test_mailbox.py Mon May 7 10:03:22 2007 @@ -208,7 +208,7 @@ for value in method(): self.fail("Not empty") keys, values = [], [] - for i in xrange(repetitions): + for i in range(repetitions): keys.append(self._box.add(self._template % i)) values.append(self._template % i) if do_keys and not do_values: @@ -254,11 +254,11 @@ def test_len(self, repetitions=10): # Get message count keys = [] - for i in xrange(repetitions): + for i in range(repetitions): self.assert_(len(self._box) == i) keys.append(self._box.add(self._template % i)) self.assert_(len(self._box) == i + 1) - for i in xrange(repetitions): + for i in range(repetitions): self.assert_(len(self._box) == repetitions - i) self._box.remove(keys[i]) self.assert_(len(self._box) == repetitions - i - 1) @@ -293,7 +293,7 @@ def test_clear(self, iterations=10): # Remove all messages using clear() keys = [] - for i in xrange(iterations): + for i in range(iterations): self._box.add(self._template % i) for i, key in enumerate(keys): self.assert_(self._box.get_string(key) == self._template % i) @@ -323,10 +323,10 @@ def test_popitem(self, iterations=10): # Get and remove an arbitrary (key, message) using popitem() keys = [] - for i in xrange(10): + for i in range(10): keys.append(self._box.add(self._template % i)) seen = [] - for i in xrange(10): + for i in range(10): key, msg = self._box.popitem() self.assert_(key in keys) self.assert_(key not in seen) @@ -387,7 +387,7 @@ self._test_flush_or_close(self._box.close) def _test_flush_or_close(self, method): - contents = [self._template % i for i in xrange(3)] + contents = [self._template % i for i in range(3)] self._box.add(contents[0]) self._box.add(contents[1]) self._box.add(contents[2]) @@ -599,7 +599,7 @@ pattern = re.compile(r"(?P