diff options
Diffstat (limited to 'Lib')
43 files changed, 170 insertions, 209 deletions
diff --git a/Lib/cgi.py b/Lib/cgi.py index f756330fc9..ab126d53bd 100755 --- a/Lib/cgi.py +++ b/Lib/cgi.py @@ -572,7 +572,7 @@ class FieldStorage: if key in self: value = self[key] if type(value) is type([]): - return map(attrgetter('value'), value) + return [x.value for x in value] else: return value.value else: @@ -594,7 +594,7 @@ class FieldStorage: if key in self: value = self[key] if type(value) is type([]): - return map(attrgetter('value'), value) + return [x.value for x in value] else: return [value.value] else: diff --git a/Lib/csv.py b/Lib/csv.py index 758c79a4d8..cd0f7d34ba 100644 --- a/Lib/csv.py +++ b/Lib/csv.py @@ -253,7 +253,7 @@ class Sniffer: additional chunks as necessary. """ - data = filter(None, data.split('\n')) + data = list(filter(None, data.split('\n'))) ascii = [chr(c) for c in range(127)] # 7-bit ASCII diff --git a/Lib/decimal.py b/Lib/decimal.py index 2611f79789..17d67d541d 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -841,7 +841,7 @@ class Decimal(object): if context is None: context = getcontext() - tmp = map(str, self._int) + tmp = list(map(str, self._int)) numdigits = len(self._int) leftdigits = self._exp + numdigits if eng and not self: # self = 0eX wants 0[.0[0]]eY, not [[0]0]0eY @@ -1193,7 +1193,9 @@ class Decimal(object): op1 = _WorkRep(self) op2 = _WorkRep(other) - ans = Decimal((resultsign, map(int, str(op1.int * op2.int)), resultexp)) + ans = Decimal((resultsign, + tuple(map(int, str(op1.int * op2.int))), + resultexp)) if shouldround: ans = ans._fix(context) @@ -3145,7 +3147,7 @@ def _string2exact(s): exp -= len(fracpart) mantissa = intpart + fracpart - tmp = map(int, mantissa) + tmp = list(map(int, mantissa)) backup = tmp while tmp and tmp[0] == 0: del tmp[0] diff --git a/Lib/difflib.py b/Lib/difflib.py index f992650310..13704158b4 100644 --- a/Lib/difflib.py +++ b/Lib/difflib.py @@ -587,7 +587,7 @@ class SequenceMatcher: Each group is in the same format as returned by get_opcodes(). >>> from pprint import pprint - >>> a = map(str, range(1,40)) + >>> a = list(map(str, range(1,40))) >>> b = a[:] >>> b[8:8] = ['i'] # Make an insertion >>> b[20] += 'x' # Make a replacement diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py index c01724d83a..8f614765ef 100644 --- a/Lib/distutils/dist.py +++ b/Lib/distutils/dist.py @@ -112,8 +112,7 @@ Common commands: (see '--help-commands' for more) ('obsoletes', None, "print the list of packages/modules made obsolete") ] - display_option_names = map(lambda x: translate_longopt(x[0]), - display_options) + display_option_names = [translate_longopt(x[0]) for x in display_options] # negative options are options that exclude other options negative_opt = {'quiet': 'verbose'} @@ -805,7 +804,7 @@ Common commands: (see '--help-commands' for more) pkgs = (pkgs or "").split(",") for i in range(len(pkgs)): pkgs[i] = pkgs[i].strip() - pkgs = filter(None, pkgs) + pkgs = [p for p in pkgs if p] if "distutils.command" not in pkgs: pkgs.insert(0, "distutils.command") self.command_packages = pkgs diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 51f23a24a5..346707fa90 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -372,7 +372,7 @@ def _init_posix(): if cur_target == '': cur_target = cfg_target os.putenv('MACOSX_DEPLOYMENT_TARGET', cfg_target) - elif map(int, cfg_target.split('.')) > map(int, cur_target.split('.')): + elif [int(x) for x in cfg_target.split('.')] > [int(x) for x in cur_target.split('.')]: my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure' % (cur_target, cfg_target)) raise DistutilsPlatformError(my_msg) diff --git a/Lib/distutils/version.py b/Lib/distutils/version.py index 2db6b18f1e..de20e21f70 100644 --- a/Lib/distutils/version.py +++ b/Lib/distutils/version.py @@ -148,7 +148,7 @@ class StrictVersion (Version): if patch: self.version = tuple(map(int, [major, minor, patch])) else: - self.version = tuple(map(int, [major, minor]) + [0]) + self.version = tuple(map(int, [major, minor])) + (0,) if prerelease: self.prerelease = (prerelease[0], int(prerelease_num)) diff --git a/Lib/encodings/idna.py b/Lib/encodings/idna.py index 55e1643c25..b81e5fa158 100644 --- a/Lib/encodings/idna.py +++ b/Lib/encodings/idna.py @@ -38,7 +38,7 @@ def nameprep(label): raise UnicodeError("Invalid character %r" % c) # Check bidi - RandAL = map(stringprep.in_table_d1, label) + RandAL = [stringprep.in_table_d1(x) for x in label] for c in RandAL: if c: # There is a RandAL char in the string. Must perform further @@ -47,7 +47,7 @@ def nameprep(label): # This is table C.8, which was already checked # 2) If a string contains any RandALCat character, the string # MUST NOT contain any LCat character. - if filter(stringprep.in_table_d2, label): + if any(stringprep.in_table_d2(x) for x in label): raise UnicodeError("Violation of BIDI requirement 2") # 3) If a string contains any RandALCat character, a diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 9c0ce5a851..ac01613479 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -132,9 +132,9 @@ class dircmp: def phase1(self): # Compute common names a = dict(izip(imap(os.path.normcase, self.left_list), self.left_list)) b = dict(izip(imap(os.path.normcase, self.right_list), self.right_list)) - self.common = map(a.__getitem__, ifilter(b.__contains__, a)) - self.left_only = map(a.__getitem__, ifilterfalse(b.__contains__, a)) - self.right_only = map(b.__getitem__, ifilterfalse(a.__contains__, b)) + self.common = list(map(a.__getitem__, ifilter(b.__contains__, a))) + self.left_only = list(map(a.__getitem__, ifilterfalse(b.__contains__, a))) + self.right_only = list(map(b.__getitem__, ifilterfalse(a.__contains__, b))) def phase2(self): # Distinguish files, directories, funnies self.common_dirs = [] diff --git a/Lib/heapq.py b/Lib/heapq.py index f64d8ba862..f3d0669934 100644 --- a/Lib/heapq.py +++ b/Lib/heapq.py @@ -129,7 +129,7 @@ From all times, sorting has always been a Great Art! :-) __all__ = ['heappush', 'heappop', 'heapify', 'heapreplace', 'merge', 'nlargest', 'nsmallest'] -from itertools import islice, repeat, count, imap, izip, tee +from itertools import islice, repeat, count, izip, tee from operator import itemgetter, neg import bisect @@ -225,7 +225,7 @@ def nsmallest(n, iterable): # O(m) + O(n log m) comparisons. h = list(iterable) heapify(h) - return map(heappop, repeat(h, min(n, len(h)))) + return list(map(heappop, repeat(h, min(n, len(h))))) # 'heap' is a heap at all indices >= startpos, except possibly for pos. pos # is the index of a leaf with a possibly out-of-order value. Restore the @@ -351,9 +351,9 @@ def nsmallest(n, iterable, key=None): Equivalent to: sorted(iterable, key=key)[:n] """ in1, in2 = tee(iterable) - it = izip(imap(key, in1), count(), in2) # decorate + it = izip(map(key, in1), count(), in2) # decorate result = _nsmallest(n, it) - return map(itemgetter(2), result) # undecorate + return list(map(itemgetter(2), result)) # undecorate _nlargest = nlargest def nlargest(n, iterable, key=None): @@ -362,9 +362,9 @@ def nlargest(n, iterable, key=None): Equivalent to: sorted(iterable, key=key, reverse=True)[:n] """ in1, in2 = tee(iterable) - it = izip(imap(key, in1), imap(neg, count()), in2) # decorate + it = izip(map(key, in1), map(neg, count()), in2) # decorate result = _nlargest(n, it) - return map(itemgetter(2), result) # undecorate + return list(map(itemgetter(2), result)) # undecorate if __name__ == "__main__": # Simple sanity test diff --git a/Lib/logging/config.py b/Lib/logging/config.py index 0bf79a5a20..99755e2ec9 100644 --- a/Lib/logging/config.py +++ b/Lib/logging/config.py @@ -176,7 +176,7 @@ def _install_loggers(cp, handlers): # configure the root first llist = cp.get("loggers", "keys") llist = llist.split(",") - llist = map(lambda x: x.strip(), llist) + llist = list(map(lambda x: x.strip(), llist)) llist.remove("root") sectname = "logger_root" root = logging.root diff --git a/Lib/mhlib.py b/Lib/mhlib.py index 4b32020912..c06e1a6566 100644 --- a/Lib/mhlib.py +++ b/Lib/mhlib.py @@ -282,8 +282,7 @@ class Folder: for name in os.listdir(self.getfullname()): if match(name): append(name) - messages = map(int, messages) - messages.sort() + messages = sorted(map(int, messages)) if messages: self.last = messages[-1] else: diff --git a/Lib/optparse.py b/Lib/optparse.py index ed51b93820..e648a281e4 100644 --- a/Lib/optparse.py +++ b/Lib/optparse.py @@ -573,7 +573,7 @@ class Option: # Filter out None because early versions of Optik had exactly # one short option and one long option, either of which # could be None. - opts = filter(None, opts) + opts = [opt for opt in opts if opt] if not opts: raise TypeError("at least one option string must be supplied") return opts diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 45943334dd..3b3f1bd959 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -468,9 +468,9 @@ class HTMLDoc(Doc): def multicolumn(self, list, format, cols=4): """Format a list of items into a multi-column list.""" result = '' - rows = (len(list)+cols-1)/cols + rows = (len(list)+cols-1)//cols for col in range(cols): - result = result + '<td width="%d%%" valign=top>' % (100/cols) + result = result + '<td width="%d%%" valign=top>' % (100//cols) for i in range(rows*col, rows*col+rows): if i < len(list): result = result + format(list[i]) + '<br>\n' diff --git a/Lib/string.py b/Lib/string.py index fd8e91be73..51b2067ab9 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -30,9 +30,7 @@ printable = digits + letters + punctuation + whitespace # Case conversion helpers # Use str to convert Unicode literal in case of -U -l = map(chr, range(256)) -_idmap = str('').join(l) -del l +_idmap = str('').join(chr(c) for c in range(256)) # Functions which aren't available as string methods. @@ -63,11 +61,10 @@ def maketrans(fromstr, tostr): raise ValueError, "maketrans arguments must have same length" global _idmapL if not _idmapL: - _idmapL = map(None, _idmap) + _idmapL = list(_idmap) L = _idmapL[:] - fromstr = map(ord, fromstr) - for i in range(len(fromstr)): - L[fromstr[i]] = tostr[i] + for i, c in enumerate(fromstr): + L[ord(c)] = tostr[i] return ''.join(L) diff --git a/Lib/test/test_bisect.py b/Lib/test/test_bisect.py index 0baeb1414f..95eafbe06b 100644 --- a/Lib/test/test_bisect.py +++ b/Lib/test/test_bisect.py @@ -223,7 +223,7 @@ This example uses bisect() to look up a letter grade for an exam total ... >>> grade(66) 'C' - >>> map(grade, [33, 99, 77, 44, 12, 88]) + >>> list(map(grade, [33, 99, 77, 44, 12, 88])) ['E', 'A', 'B', 'D', 'F', 'A'] """ diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index a2fde023e3..036a9f274f 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -466,11 +466,11 @@ class BuiltinTest(unittest.TestCase): self.assertEqual((g, l), ({'a': 1}, {'b': 2})) def test_filter(self): - self.assertEqual(filter(lambda c: 'a' <= c <= 'z', 'Hello World'), 'elloorld') - self.assertEqual(filter(None, [1, 'hello', [], [3], '', None, 9, 0]), [1, 'hello', [3], 9]) - self.assertEqual(filter(lambda x: x > 0, [1, -3, 9, 0, 2]), [1, 9, 2]) - self.assertEqual(filter(None, Squares(10)), [1, 4, 9, 16, 25, 36, 49, 64, 81]) - self.assertEqual(filter(lambda x: x%2, Squares(10)), [1, 9, 25, 49, 81]) + self.assertEqual(list(filter(lambda c: 'a' <= c <= 'z', 'Hello World')), list('elloorld')) + self.assertEqual(list(filter(None, [1, 'hello', [], [3], '', None, 9, 0])), [1, 'hello', [3], 9]) + self.assertEqual(list(filter(lambda x: x > 0, [1, -3, 9, 0, 2])), [1, 9, 2]) + self.assertEqual(list(filter(None, Squares(10))), [1, 4, 9, 16, 25, 36, 49, 64, 81]) + self.assertEqual(list(filter(lambda x: x%2, Squares(10))), [1, 9, 25, 49, 81]) def identity(item): return 1 filter(identity, Squares(5)) @@ -480,67 +480,15 @@ class BuiltinTest(unittest.TestCase): if index<4: return 42 raise ValueError - self.assertRaises(ValueError, filter, lambda x: x, BadSeq()) + self.assertRaises(ValueError, list, filter(lambda x: x, BadSeq())) def badfunc(): pass - self.assertRaises(TypeError, filter, badfunc, range(5)) + self.assertRaises(TypeError, list, filter(badfunc, range(5))) # test bltinmodule.c::filtertuple() - self.assertEqual(filter(None, (1, 2)), (1, 2)) - self.assertEqual(filter(lambda x: x>=3, (1, 2, 3, 4)), (3, 4)) - self.assertRaises(TypeError, filter, 42, (1, 2)) - - # test bltinmodule.c::filterunicode() - self.assertEqual(filter(None, "12"), "12") - self.assertEqual(filter(lambda x: x>="3", "1234"), "34") - self.assertRaises(TypeError, filter, 42, "12") - class badstr(str): - def __getitem__(self, index): - raise ValueError - self.assertRaises(ValueError, filter, lambda x: x >="3", badstr("1234")) - - class badstr2(str): - def __getitem__(self, index): - return 42 - self.assertRaises(TypeError, filter, lambda x: x >=42, badstr2("1234")) - - class weirdstr(str): - def __getitem__(self, index): - return weirdstr(2*str.__getitem__(self, index)) - self.assertEqual(filter(lambda x: x>="33", weirdstr("1234")), "3344") - - class shiftstr(str): - def __getitem__(self, index): - return chr(ord(str.__getitem__(self, index))+1) - self.assertEqual(filter(lambda x: x>="3", shiftstr("1234")), "345") - - def test_filter_subclasses(self): - # test that filter() never returns tuple or str subclasses - # and that the result always goes through __getitem__ - funcs = (None, bool, lambda x: True) - class tuple2(tuple): - def __getitem__(self, index): - return 2*tuple.__getitem__(self, index) - class str2(str): - def __getitem__(self, index): - return 2*str.__getitem__(self, index) - inputs = { - tuple2: {(): (), (1, 2, 3): (2, 4, 6)}, - str2: {"": "", "123": "112233"} - } - - for (cls, inps) in inputs.items(): - for (inp, exp) in inps.items(): - # make sure the output goes through __getitem__ - # even if func is None - self.assertEqual( - filter(funcs[0], cls(inp)), - filter(funcs[1], cls(inp)) - ) - for func in funcs: - outp = filter(func, cls(inp)) - self.assertEqual(outp, exp) - self.assert_(not isinstance(outp, cls)) + self.assertEqual(list(filter(None, (1, 2))), [1, 2]) + self.assertEqual(list(filter(lambda x: x>=3, (1, 2, 3, 4))), [3, 4]) + self.assertRaises(TypeError, list, filter(42, (1, 2))) def test_float(self): self.assertEqual(float(3.14), 3.14) @@ -1102,19 +1050,19 @@ class BuiltinTest(unittest.TestCase): def test_map(self): self.assertEqual( - map(None, 'hello world'), - ['h','e','l','l','o',' ','w','o','r','l','d'] + list(map(None, 'hello')), + [('h',), ('e',), ('l',), ('l',), ('o',)] ) self.assertEqual( - map(None, 'abcd', 'efg'), - [('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', None)] + list(map(None, 'abcd', 'efg')), + [('a', 'e'), ('b', 'f'), ('c', 'g')] ) self.assertEqual( - map(None, range(10)), - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + list(map(None, range(3))), + [(0,), (1,), (2,)] ) self.assertEqual( - map(lambda x: x*x, range(1,4)), + list(map(lambda x: x*x, range(1,4))), [1, 4, 9] ) try: @@ -1123,11 +1071,11 @@ class BuiltinTest(unittest.TestCase): def sqrt(x): return pow(x, 0.5) self.assertEqual( - map(lambda x: map(sqrt,x), [[16, 4], [81, 9]]), + list(map(lambda x: list(map(sqrt, x)), [[16, 4], [81, 9]])), [[4.0, 2.0], [9.0, 3.0]] ) self.assertEqual( - map(lambda x, y: x+y, [1,3,2], [9,1,4]), + list(map(lambda x, y: x+y, [1,3,2], [9,1,4])), [10, 4, 6] ) @@ -1136,28 +1084,28 @@ class BuiltinTest(unittest.TestCase): for i in v: accu = accu + i return accu self.assertEqual( - map(plus, [1, 3, 7]), + list(map(plus, [1, 3, 7])), [1, 3, 7] ) self.assertEqual( - map(plus, [1, 3, 7], [4, 9, 2]), + list(map(plus, [1, 3, 7], [4, 9, 2])), [1+4, 3+9, 7+2] ) self.assertEqual( - map(plus, [1, 3, 7], [4, 9, 2], [1, 1, 0]), + list(map(plus, [1, 3, 7], [4, 9, 2], [1, 1, 0])), [1+4+1, 3+9+1, 7+2+0] ) self.assertEqual( - map(None, Squares(10)), - [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] + list(map(None, Squares(10))), + [(0,), (1,), (4,), (9,), (16,), (25,), (36,), (49,), (64,), (81,)] ) self.assertEqual( - map(int, Squares(10)), + list(map(int, Squares(10))), [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ) self.assertEqual( - map(None, Squares(3), Squares(2)), - [(0,0), (1,1), (4,None)] + list(map(None, Squares(3), Squares(2))), + [(0,0), (1,1)] ) def Max(a, b): if a is None: @@ -1166,19 +1114,20 @@ class BuiltinTest(unittest.TestCase): return a return max(a, b) self.assertEqual( - map(Max, Squares(3), Squares(2)), - [0, 1, 4] + list(map(Max, Squares(3), Squares(2))), + [0, 1] ) self.assertRaises(TypeError, map) self.assertRaises(TypeError, map, lambda x: x, 42) - self.assertEqual(map(None, [42]), [42]) + self.assertEqual(list(map(None, [42])), [(42,)]) class BadSeq: - def __getitem__(self, index): + def __iter__(self): raise ValueError - self.assertRaises(ValueError, map, lambda x: x, BadSeq()) + yield None + self.assertRaises(ValueError, list, map(lambda x: x, BadSeq())) def badfunc(x): raise RuntimeError - self.assertRaises(RuntimeError, map, badfunc, range(5)) + self.assertRaises(RuntimeError, list, map(badfunc, range(5))) def test_max(self): self.assertEqual(max('123123'), '3') diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 1083321705..a48cf9cbd3 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -158,7 +158,7 @@ class BytesTest(unittest.TestCase): b = b"x"*20 n = f.readinto(b) self.assertEqual(n, len(short_sample)) - self.assertEqual(b, sample) + self.assertEqual(list(b), list(sample)) # Test writing in binary mode with open(tfn, "wb") as f: f.write(b) @@ -172,7 +172,7 @@ class BytesTest(unittest.TestCase): pass def test_reversed(self): - input = map(ord, "Hello") + input = list(map(ord, "Hello")) b = bytes(input) output = list(reversed(b)) input.reverse() @@ -469,7 +469,7 @@ class BytesTest(unittest.TestCase): self.assertEqual(b"".join([]), bytes()) self.assertEqual(b"".join([bytes()]), bytes()) for part in [("abc",), ("a", "bc"), ("ab", "c"), ("a", "b", "c")]: - lst = map(bytes, part) + lst = list(map(bytes, part)) self.assertEqual(b"".join(lst), bytes("abc")) self.assertEqual(b"".join(tuple(lst)), bytes("abc")) self.assertEqual(b"".join(iter(lst)), bytes("abc")) diff --git a/Lib/test/test_cgi.py b/Lib/test/test_cgi.py index 0bf18a15e4..6d5bfd6681 100644 --- a/Lib/test/test_cgi.py +++ b/Lib/test/test_cgi.py @@ -121,10 +121,11 @@ def norm(seq): return sorted(seq, key=repr) def first_elts(list): - return map(lambda x:x[0], list) + return [p[0] for p in list] def first_second_elts(list): - return map(lambda p:(p[0], p[1][0]), list) + return [(p[0], p[1][0]) for p in list] + class CgiTests(unittest.TestCase): diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py index b827658579..3a0b7af5f8 100644 --- a/Lib/test/test_datetime.py +++ b/Lib/test/test_datetime.py @@ -830,8 +830,7 @@ class TestDate(HarmlessMixedComparison, unittest.TestCase): 320 348 376 325 353 381 """ - iso_long_years = map(int, ISO_LONG_YEARS_TABLE.split()) - iso_long_years.sort() + iso_long_years = sorted(map(int, ISO_LONG_YEARS_TABLE.split())) L = [] for i in range(400): d = self.theclass(2000+i, 12, 31) diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 641f51c3c3..f515405da9 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -39,7 +39,7 @@ except ImportError: threading = None # Useful Test Constant -Signals = getcontext().flags.keys() +Signals = tuple(getcontext().flags.keys()) # Tests are built around these assumed context defaults. # test_main() restores the original context. @@ -171,7 +171,7 @@ class DecimalTest(unittest.TestCase): return self.eval_equation(s) def eval_directive(self, s): - funct, value = map(lambda x: x.strip().lower(), s.split(':')) + funct, value = (x.strip().lower() for x in s.split(':')) if funct == 'rounding': value = RoundingDict[value] else: @@ -842,7 +842,7 @@ class DecimalUsabilityTest(unittest.TestCase): self.assertNotEqual(da, object) # sortable - a = map(Decimal, range(100)) + a = list(map(Decimal, range(100))) b = a[:] random.shuffle(a) a.sort() diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index b183189fcf..40ebad0bcf 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -263,8 +263,7 @@ for args in ['', 'a', 'ab']: for vararg in ['', 'v']: for kwarg in ['', 'k']: name = 'z' + args + defargs + vararg + kwarg - arglist = list(args) + map( - lambda x: '%s="%s"' % (x, x), defargs) + arglist = list(args) + ['%s="%s"' % (x, x) for x in defargs] if vararg: arglist.append('*' + vararg) if kwarg: arglist.append('**' + kwarg) decl = (('def %s(%s): print("ok %s", a, b, d, e, v, ' + diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 55c549f6ab..a1e5d13af3 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -19,6 +19,7 @@ def capture(*args, **kw): """capture all positional and keyword arguments""" return args, kw + class TestPartial(unittest.TestCase): thetype = functools.partial @@ -28,7 +29,7 @@ class TestPartial(unittest.TestCase): self.assertEqual(p(3, 4, b=30, c=40), ((1, 2, 3, 4), dict(a=10, b=30, c=40))) p = self.thetype(map, lambda x: x*10) - self.assertEqual(p([1,2,3,4]), [10, 20, 30, 40]) + self.assertEqual(list(p([1,2,3,4])), [10, 20, 30, 40]) def test_attributes(self): p = self.thetype(capture, 1, 2, a=10, b=20) @@ -134,7 +135,7 @@ class TestPartial(unittest.TestCase): self.assertRaises(ReferenceError, getattr, p, 'func') def test_with_bound_and_unbound_methods(self): - data = map(str, range(10)) + data = list(map(str, range(10))) join = self.thetype(str.join, '') self.assertEqual(join(data), '0123456789') join = self.thetype(''.join) diff --git a/Lib/test/test_genexps.py b/Lib/test/test_genexps.py index 7b5fdc451e..ee582e3052 100644 --- a/Lib/test/test_genexps.py +++ b/Lib/test/test_genexps.py @@ -128,7 +128,7 @@ Verify late binding for the innermost for-expression Verify re-use of tuples (a side benefit of using genexps over listcomps) - >>> tupleids = map(id, ((i,i) for i in range(10))) + >>> tupleids = list(map(id, ((i,i) for i in range(10)))) >>> int(max(tupleids) - min(tupleids)) 0 diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py index ede9c72821..978dee98cb 100755 --- a/Lib/test/test_grp.py +++ b/Lib/test/test_grp.py @@ -54,7 +54,7 @@ class GroupDatabaseTestCase(unittest.TestCase): namei = 0 fakename = allnames[namei] while fakename in bynames: - chars = map(None, fakename) + chars = list(fakename) for i in range(len(chars)): if chars[i] == 'z': chars[i] = 'A' @@ -71,7 +71,7 @@ class GroupDatabaseTestCase(unittest.TestCase): except IndexError: # should never happen... if so, just forget it break - fakename = ''.join(map(None, chars)) + fakename = ''.join(chars) self.assertRaises(KeyError, grp.getgrnam, fakename) diff --git a/Lib/test/test_hash.py b/Lib/test/test_hash.py index 9578537be9..eff0c7c5e5 100644 --- a/Lib/test/test_hash.py +++ b/Lib/test/test_hash.py @@ -11,7 +11,7 @@ class HashEqualityTestCase(unittest.TestCase): def same_hash(self, *objlist): # Hash each object given and fail if # the hash values are not all the same. - hashed = map(hash, objlist) + hashed = list(map(hash, objlist)) for h in hashed[1:]: if h != hashed[0]: self.fail("hashed values differ: %r" % (objlist,)) diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py index ceaf3cc0ee..62f9662ee6 100644 --- a/Lib/test/test_heapq.py +++ b/Lib/test/test_heapq.py @@ -130,16 +130,17 @@ class TestHeap(unittest.TestCase): data = [(random.randrange(2000), i) for i in range(1000)] for f in (None, lambda x: x[0] * 547 % 2000): for n in (0, 1, 2, 10, 100, 400, 999, 1000, 1100): - self.assertEqual(nsmallest(n, data), sorted(data)[:n]) - self.assertEqual(nsmallest(n, data, key=f), + self.assertEqual(list(nsmallest(n, data)), sorted(data)[:n]) + self.assertEqual(list(nsmallest(n, data, key=f)), sorted(data, key=f)[:n]) def test_nlargest(self): data = [(random.randrange(2000), i) for i in range(1000)] for f in (None, lambda x: x[0] * 547 % 2000): for n in (0, 1, 2, 10, 100, 400, 999, 1000, 1100): - self.assertEqual(nlargest(n, data), sorted(data, reverse=True)[:n]) - self.assertEqual(nlargest(n, data, key=f), + self.assertEqual(list(nlargest(n, data)), + sorted(data, reverse=True)[:n]) + self.assertEqual(list(nlargest(n, data, key=f)), sorted(data, key=f, reverse=True)[:n]) @@ -279,8 +280,8 @@ class TestErrorHandling(unittest.TestCase): for f in (nlargest, nsmallest): 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)), []) + self.assertEqual(list(f(2, g(s))), list(f(2,s))) + self.assertEqual(list(f(2, S(s))), []) self.assertRaises(TypeError, f, 2, X(s)) self.assertRaises(TypeError, f, 2, N(s)) self.assertRaises(ZeroDivisionError, f, 2, E(s)) diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index bdd7c34eb0..75bd4087e5 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -44,7 +44,7 @@ class IsTestBase(unittest.TestCase): class TestPredicates(IsTestBase): def test_thirteen(self): - count = len(filter(lambda x:x.startswith('is'), dir(inspect))) + count = len([x for x in dir(inspect) if x.startswith('is')]) # Doc/lib/libinspect.tex claims there are 13 such functions expected = 13 err_msg = "There are %d (not %d) is* functions" % (count, expected) diff --git a/Lib/test/test_iter.py b/Lib/test/test_iter.py index f7712db7b7..b92c50aad7 100644 --- a/Lib/test/test_iter.py +++ b/Lib/test/test_iter.py @@ -305,13 +305,14 @@ class TestCase(unittest.TestCase): # Test filter()'s use of iterators. def test_builtin_filter(self): - 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") + self.assertEqual(list(filter(None, SequenceClass(5))), + list(range(1, 5))) + self.assertEqual(list(filter(None, SequenceClass(0))), []) + self.assertEqual(list(filter(None, ())), []) + self.assertEqual(list(filter(None, "abc")), ["a", "b", "c"]) d = {"one": 1, "two": 2, "three": 3} - self.assertEqual(filter(None, d), list(d.keys())) + self.assertEqual(list(filter(None, d)), list(d.keys())) self.assertRaises(TypeError, filter, None, list) self.assertRaises(TypeError, filter, None, 42) @@ -344,8 +345,8 @@ class TestCase(unittest.TestCase): return SeqIter(self.vals) seq = Seq(*([bTrue, bFalse] * 25)) - self.assertEqual(filter(lambda x: not x, seq), [bFalse]*25) - self.assertEqual(filter(lambda x: not x, iter(seq)), [bFalse]*25) + self.assertEqual(list(filter(lambda x: not x, seq)), [bFalse]*25) + self.assertEqual(list(filter(lambda x: not x, iter(seq))), [bFalse]*25) # Test max() and min()'s use of iterators. def test_builtin_max_min(self): @@ -381,20 +382,24 @@ class TestCase(unittest.TestCase): # Test map()'s use of iterators. def test_builtin_map(self): - self.assertEqual(map(None, SequenceClass(5)), list(range(5))) - self.assertEqual(map(lambda x: x+1, SequenceClass(5)), list(range(1, 6))) + self.assertEqual(list(map(None, SequenceClass(5))), + [(0,), (1,), (2,), (3,), (4,)]) + self.assertEqual(list(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())) - self.assertEqual(map(lambda k, d=d: (k, d[k]), d), list(d.items())) + self.assertEqual(list(map(None, d)), [(k,) for k in d]) + self.assertEqual(list(map(lambda k, d=d: (k, d[k]), d)), + list(d.items())) dkeys = list(d.keys()) expected = [(i < len(d) and dkeys[i] or None, i, i < len(d) and dkeys[i] or None) - for i in range(5)] - self.assertEqual(map(None, d, - SequenceClass(5), - iter(d.keys())), + for i in range(3)] + self.assertEqual(list(map(None, + d, + SequenceClass(5), + iter(d.keys()))), expected) f = open(TESTFN, "w") @@ -405,7 +410,7 @@ class TestCase(unittest.TestCase): f.close() f = open(TESTFN, "r") try: - self.assertEqual(map(len, f), list(range(1, 21, 2))) + self.assertEqual(list(map(len, f)), list(range(1, 21, 2))) finally: f.close() try: diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 6dfc52e11b..e3728d8d33 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -199,9 +199,9 @@ class TestBasicOps(unittest.TestCase): lzip('abc', 'def')) self.assertEqual([pair for pair in izip('abc', 'def')], lzip('abc', 'def')) - ids = map(id, izip('abc', 'def')) + ids = list(map(id, izip('abc', 'def'))) self.assertEqual(min(ids), max(ids)) - ids = map(id, list(izip('abc', 'def'))) + ids = list(map(id, list(izip('abc', 'def')))) self.assertEqual(len(dict.fromkeys(ids)), len(ids)) def test_iziplongest(self): @@ -212,7 +212,8 @@ class TestBasicOps(unittest.TestCase): [range(1000), range(0), range(3000,3050), range(1200), range(1500)], [range(1000), range(0), range(3000,3050), range(1200), range(1500), range(0)], ]: - target = map(None, *args) + target = [tuple([arg[i] if i < len(arg) else None for arg in args]) + for i in range(max(map(len, args)))] self.assertEqual(list(izip_longest(*args)), target) self.assertEqual(list(izip_longest(*args, **{})), target) target = [tuple((e is None and 'X' or e) for e in t) for t in target] # Replace None fills with 'X' @@ -224,7 +225,8 @@ class TestBasicOps(unittest.TestCase): self.assertEqual(list(izip_longest([])), list(zip([]))) self.assertEqual(list(izip_longest('abcdef')), list(zip('abcdef'))) - self.assertEqual(list(izip_longest('abc', 'defg', **{})), map(None, 'abc', 'defg')) # empty keyword dict + self.assertEqual(list(izip_longest('abc', 'defg', **{})), + list(map(None, list('abc')+[None], 'defg'))) # empty keyword dict self.assertRaises(TypeError, izip_longest, 3) self.assertRaises(TypeError, izip_longest, range(3), 3) @@ -244,9 +246,9 @@ class TestBasicOps(unittest.TestCase): list(zip('abc', 'def'))) self.assertEqual([pair for pair in izip_longest('abc', 'def')], list(zip('abc', 'def'))) - ids = map(id, izip_longest('abc', 'def')) + ids = list(map(id, izip_longest('abc', 'def'))) self.assertEqual(min(ids), max(ids)) - ids = map(id, list(izip_longest('abc', 'def'))) + ids = list(map(id, list(izip_longest('abc', 'def')))) self.assertEqual(len(dict.fromkeys(ids)), len(ids)) def test_repeat(self): @@ -432,7 +434,7 @@ class TestBasicOps(unittest.TestCase): result = tee('abc', n) self.assertEqual(type(result), tuple) self.assertEqual(len(result), n) - self.assertEqual(map(list, result), [list('abc')]*n) + self.assertEqual([list(x) for x in result], [list('abc')]*n) # tee pass-through to copyable iterator a, b = tee('abc') @@ -642,7 +644,8 @@ class TestVariousIteratorArgs(unittest.TestCase): def test_ifilter(self): 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.assertEqual(list(ifilter(isEven, g(s))), + [x for x in g(s) if isEven(x)]) self.assertRaises(TypeError, ifilter, isEven, X(s)) self.assertRaises(TypeError, ifilter, isEven, N(s)) self.assertRaises(ZeroDivisionError, list, ifilter(isEven, E(s))) @@ -650,7 +653,8 @@ class TestVariousIteratorArgs(unittest.TestCase): def test_ifilterfalse(self): 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.assertEqual(list(ifilterfalse(isEven, g(s))), + [x for x in g(s) if isOdd(x)]) self.assertRaises(TypeError, ifilterfalse, isEven, X(s)) self.assertRaises(TypeError, ifilterfalse, isEven, N(s)) self.assertRaises(ZeroDivisionError, list, ifilterfalse(isEven, E(s))) @@ -676,8 +680,10 @@ class TestVariousIteratorArgs(unittest.TestCase): def test_imap(self): 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))) + self.assertEqual(list(imap(onearg, g(s))), + [onearg(x) for x in g(s)]) + self.assertEqual(list(imap(operator.pow, g(s), g(s))), + [x**x for x in g(s)]) self.assertRaises(TypeError, imap, onearg, X(s)) self.assertRaises(TypeError, imap, onearg, N(s)) self.assertRaises(ZeroDivisionError, list, imap(onearg, E(s))) @@ -694,7 +700,8 @@ class TestVariousIteratorArgs(unittest.TestCase): 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))) + self.assertEqual(list(starmap(operator.pow, g(ss))), + [x**x for x in g(s)]) self.assertRaises(TypeError, starmap, operator.pow, X(ss)) self.assertRaises(TypeError, starmap, operator.pow, N(ss)) self.assertRaises(ZeroDivisionError, list, starmap(operator.pow, E(ss))) @@ -849,7 +856,7 @@ Samuele >>> d = dict(a=1, b=2, c=1, d=2, e=1, f=2, g=3) >>> di = sorted(sorted(d.items()), key=itemgetter(1)) >>> for k, g in groupby(di, itemgetter(1)): -... print(k, map(itemgetter(0), g)) +... print(k, list(map(itemgetter(0), g))) ... 1 ['a', 'c', 'e'] 2 ['b', 'd', 'f'] @@ -860,7 +867,7 @@ Samuele # same group. >>> data = [ 1, 4,5,6, 10, 15,16,17,18, 22, 25,26,27,28] >>> for k, g in groupby(enumerate(data), lambda t:t[0]-t[1]): -... print(map(operator.itemgetter(1), g)) +... print(list(map(operator.itemgetter(1), g))) ... [1] [4, 5, 6] diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py index 9e56d31c8c..140a2b04b1 100644 --- a/Lib/test/test_long.py +++ b/Lib/test/test_long.py @@ -23,9 +23,7 @@ KARATSUBA_CUTOFF = 70 # from longobject.c MAXDIGITS = 15 # build some special values -special = map(int, [0, 1, 2, BASE, BASE >> 1]) -special.append(0x5555555555555555) -special.append(0xaaaaaaaaaaaaaaaa) +special = [0, 1, 2, BASE, BASE >> 1, 0x5555555555555555, 0xaaaaaaaaaaaaaaaa] # some solid strings of one bits p2 = 4 # 0 and 1 already added for i in range(2*SHIFT): @@ -33,8 +31,7 @@ for i in range(2*SHIFT): p2 = p2 << 1 del p2 # add complements & negations -special = special + map(lambda x: ~x, special) + \ - map(lambda x: -x, special) +special += [~x for x in special] + [-x for x in special] class LongTest(unittest.TestCase): diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index 84a9e5cdc5..e426117cc1 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -1669,7 +1669,7 @@ class MaildirTestCase(unittest.TestCase): self._msgfiles = [] def tearDown(self): - map(os.unlink, self._msgfiles) + list(map(os.unlink, self._msgfiles)) os.rmdir(os.path.join(self._dir, "cur")) os.rmdir(os.path.join(self._dir, "tmp")) os.rmdir(os.path.join(self._dir, "new")) diff --git a/Lib/test/test_mhlib.py b/Lib/test/test_mhlib.py index f425cb9c0b..1b1af6a09c 100644 --- a/Lib/test/test_mhlib.py +++ b/Lib/test/test_mhlib.py @@ -179,18 +179,17 @@ class MhlibTests(unittest.TestCase): folders = mh.listallfolders() folders.sort() - tfolders = map(normF, ['deep', 'deep/f1', 'deep/f2', 'deep/f2/f3', - 'inbox', 'wide']) - tfolders.sort() + tfolders = sorted(map(normF, ['deep', 'deep/f1', 'deep/f2', + 'deep/f2/f3', 'inbox', 'wide'])) eq(folders, tfolders) folders = mh.listsubfolders('deep') folders.sort() - eq(folders, map(normF, ['deep/f1', 'deep/f2'])) + eq(folders, list(map(normF, ['deep/f1', 'deep/f2']))) folders = mh.listallsubfolders('deep') folders.sort() - eq(folders, map(normF, ['deep/f1', 'deep/f2', 'deep/f2/f3'])) + eq(folders, list(map(normF, ['deep/f1', 'deep/f2', 'deep/f2/f3']))) eq(mh.listsubfolders(normF('deep/f2')), [normF('deep/f2/f3')]) eq(mh.listsubfolders('inbox'), []) diff --git a/Lib/test/test_old_mailbox.py b/Lib/test/test_old_mailbox.py index 7bd555758a..b8815062f4 100644 --- a/Lib/test/test_old_mailbox.py +++ b/Lib/test/test_old_mailbox.py @@ -35,7 +35,7 @@ class MaildirTestCase(unittest.TestCase): self._msgfiles = [] def tearDown(self): - map(os.unlink, self._msgfiles) + list(map(os.unlink, self._msgfiles)) os.rmdir(os.path.join(self._dir, "cur")) os.rmdir(os.path.join(self._dir, "tmp")) os.rmdir(os.path.join(self._dir, "new")) diff --git a/Lib/test/test_operator.py b/Lib/test/test_operator.py index 8b705e4b3a..6142a7ffb2 100644 --- a/Lib/test/test_operator.py +++ b/Lib/test/test_operator.py @@ -393,12 +393,12 @@ class OperatorTestCase(unittest.TestCase): # example used in the docs inventory = [('apple', 3), ('banana', 2), ('pear', 5), ('orange', 1)] getcount = operator.itemgetter(1) - self.assertEqual(map(getcount, inventory), [3, 2, 5, 1]) + self.assertEqual(list(map(getcount, inventory)), [3, 2, 5, 1]) self.assertEqual(sorted(inventory, key=getcount), [('orange', 1), ('banana', 2), ('apple', 3), ('pear', 5)]) # multiple gets - data = map(str, range(20)) + data = list(map(str, range(20))) self.assertEqual(operator.itemgetter(2,10,5)(data), ('2', '10', '5')) self.assertRaises(TypeError, operator.itemgetter(2, 'x', 5), data) diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py index a50ed2168e..7abf905af6 100644 --- a/Lib/test/test_pwd.py +++ b/Lib/test/test_pwd.py @@ -59,7 +59,7 @@ class PwdTest(unittest.TestCase): namei = 0 fakename = allnames[namei] while fakename in bynames: - chars = map(None, fakename) + chars = list(fakename) for i in range(len(chars)): if chars[i] == 'z': chars[i] = 'A' @@ -76,7 +76,7 @@ class PwdTest(unittest.TestCase): except IndexError: # should never happen... if so, just forget it break - fakename = ''.join(map(None, chars)) + fakename = ''.join(chars) self.assertRaises(KeyError, pwd.getpwnam, fakename) diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 92d80318b3..1399ade653 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -740,15 +740,15 @@ class MappingTestCase(TestBase): items2 = dict.copy().items() items1.sort() items2.sort() - self.assert_(items1 == items2, + self.assertEqual(items1, items2, "cloning of weak-valued dictionary did not work!") del items1, items2 - self.assert_(len(dict) == self.COUNT) + self.assertEqual(len(dict), self.COUNT) del objects[0] - self.assert_(len(dict) == (self.COUNT - 1), + self.assertEqual(len(dict), self.COUNT - 1, "deleting object did not cause dictionary update") del objects, o - self.assert_(len(dict) == 0, + self.assertEqual(len(dict), 0, "deleting the values did not clear the dictionary") # regression on SF bug #447152: dict = weakref.WeakValueDictionary() @@ -875,14 +875,14 @@ class MappingTestCase(TestBase): def make_weak_keyed_dict(self): dict = weakref.WeakKeyDictionary() - objects = map(Object, range(self.COUNT)) + objects = list(map(Object, range(self.COUNT))) for o in objects: dict[o] = o.arg return dict, objects def make_weak_valued_dict(self): dict = weakref.WeakValueDictionary() - objects = map(Object, range(self.COUNT)) + objects = list(map(Object, range(self.COUNT))) for o in objects: dict[o.arg] = o return dict, objects diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 4e21fd9973..1c5edd0d66 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -53,7 +53,7 @@ def summarize(elem): return elem.tag def summarize_list(seq): - return map(summarize, seq) + return list(map(summarize, seq)) def interface(): """ diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py index 1479247c92..49cdfdee14 100644 --- a/Lib/test/test_xml_etree_c.py +++ b/Lib/test/test_xml_etree_c.py @@ -51,7 +51,7 @@ def summarize(elem): return elem.tag def summarize_list(seq): - return map(summarize, seq) + return list(map(summarize, seq)) def interface(): """ diff --git a/Lib/textwrap.py b/Lib/textwrap.py index 22a625250d..3afc269241 100644 --- a/Lib/textwrap.py +++ b/Lib/textwrap.py @@ -63,8 +63,8 @@ class TextWrapper: unicode_whitespace_trans = {} uspace = ord(' ') - for x in map(ord, _whitespace): - unicode_whitespace_trans[x] = uspace + for x in _whitespace: + unicode_whitespace_trans[ord(x)] = uspace # This funky little regex is just the trick for splitting # text up into word-wrappable chunks. E.g. @@ -136,7 +136,7 @@ class TextWrapper: 'use', ' ', 'the', ' ', '-b', ' ', 'option!' """ chunks = self.wordsep_re.split(text) - chunks = filter(None, chunks) # remove empty chunks + chunks = [c for c in chunks if c] return chunks def _fix_sentence_endings(self, chunks): diff --git a/Lib/unittest.py b/Lib/unittest.py index a4ced3dd4e..16f062b3ab 100644 --- a/Lib/unittest.py +++ b/Lib/unittest.py @@ -586,7 +586,7 @@ class TestLoader: """ def isTestMethod(attrname, testCaseClass=testCaseClass, prefix=self.testMethodPrefix): return attrname.startswith(prefix) and hasattr(getattr(testCaseClass, attrname), '__call__') - testFnNames = filter(isTestMethod, dir(testCaseClass)) + testFnNames = list(filter(isTestMethod, dir(testCaseClass))) if self.sortTestMethodsUsing: testFnNames.sort(self.sortTestMethodsUsing) return testFnNames @@ -725,7 +725,7 @@ class TextTestRunner: self.stream.writeln() if not result.wasSuccessful(): self.stream.write("FAILED (") - failed, errored = map(len, (result.failures, result.errors)) + failed, errored = len(result.failures), len(result.errors) if failed: self.stream.write("failures=%d" % failed) if errored: diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 4ae7df4bdf..f15da217cc 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -1222,7 +1222,7 @@ class FileHandler(BaseHandler): if host: host, port = splitport(host) if not host or \ - (not port and socket.gethostbyname(host) in self.get_names()): + (not port and _safe_gethostbyname(host) in self.get_names()): return addinfourl(open(localfile, 'rb'), headers, 'file:'+file) except OSError as msg: @@ -1230,6 +1230,12 @@ class FileHandler(BaseHandler): raise URLError(msg) raise URLError('file not on local host') +def _safe_gethostbyname(host): + try: + return socket.gethostbyname(host) + except socket.gaierror: + return None + class FTPHandler(BaseHandler): def ftp_open(self, req): import ftplib @@ -1259,7 +1265,7 @@ class FTPHandler(BaseHandler): raise URLError(msg) path, attrs = splitattr(req.get_selector()) dirs = path.split('/') - dirs = map(unquote, dirs) + dirs = list(map(unquote, dirs)) dirs, file = dirs[:-1], dirs[-1] if dirs and not dirs[0]: dirs = dirs[1:] diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 2fb1ea5643..4791aea5ad 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -793,7 +793,7 @@ class ZipFile: # completely random, while the 12th contains the MSB of the CRC, # and is used to check the correctness of the password. bytes = zef_file.read(12) - h = map(zd, bytes[0:12]) + h = list(map(zd, bytes[0:12])) if h[11] != ((zinfo.CRC>>24) & 255): raise RuntimeError, "Bad password for file %s" % name |