diff --git a/IPython/testing/plugin/ipdoctest.py b/IPython/testing/plugin/ipdoctest.py index 1f86a1c..64bd03a 100644 --- a/IPython/testing/plugin/ipdoctest.py +++ b/IPython/testing/plugin/ipdoctest.py @@ -117,7 +117,7 @@ class DocTestFinder(doctest.DocTestFinder): elif isinstance(object, property): return True # [XX] no way not be sure. else: - raise ValueError("object must be a class or function") + raise ValueError("object must be a class or function, got %r" % object) def _find(self, tests, obj, name, module, source_lines, globs, seen): """ diff --git a/IPython/utils/frame.py b/IPython/utils/frame.py index ff2bfab..a87d6f9 100644 --- a/IPython/utils/frame.py +++ b/IPython/utils/frame.py @@ -40,7 +40,7 @@ def extract_vars(*names,**kw): In [2]: def func(x): ...: y = 1 - ...: print sorted(extract_vars('x','y').items()) + ...: print(sorted(extract_vars('x','y').items())) ...: In [3]: func('hello') diff --git a/IPython/utils/jsonutil.py b/IPython/utils/jsonutil.py index 6d8aceb..bcdcd73 100644 --- a/IPython/utils/jsonutil.py +++ b/IPython/utils/jsonutil.py @@ -173,7 +173,7 @@ def json_clean(obj): -------- >>> json_clean(4) 4 - >>> json_clean(range(10)) + >>> json_clean(list(range(10))) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> sorted(json_clean(dict(x=1, y=2)).items()) [('x', 1), ('y', 2)] diff --git a/IPython/utils/py3compat.py b/IPython/utils/py3compat.py index 341b24c..1b38ccf 100644 --- a/IPython/utils/py3compat.py +++ b/IPython/utils/py3compat.py @@ -93,8 +93,8 @@ if sys.version_info[0] >= 3: open = orig_open xrange = range - iteritems = dict.items - itervalues = dict.values + def iteritems(d): return iter(d.items()) + def itervalues(d): return iter(d.values()) MethodType = types.MethodType @@ -170,8 +170,8 @@ else: self.f.close() xrange = xrange - iteritems = dict.iteritems - itervalues = dict.itervalues + def iteritems(d): return d.iteritems() + def itervalues(d): return d.itervalues() def MethodType(func, instance): return types.MethodType(func, instance, type(instance)) diff --git a/IPython/utils/tests/test_path.py b/IPython/utils/tests/test_path.py index 01d20dc..86fff6e 100644 --- a/IPython/utils/tests/test_path.py +++ b/IPython/utils/tests/test_path.py @@ -116,7 +116,7 @@ def teardown_environment(): os.chdir(old_wd) reload(path) - for key in env.keys(): + for key in list(env): if key not in oldenv: del env[key] env.update(oldenv) @@ -505,8 +505,8 @@ class TestShellGlob(object): @classmethod def setUpClass(cls): - cls.filenames_start_with_a = map('a{0}'.format, range(3)) - cls.filenames_end_with_b = map('{0}b'.format, range(3)) + cls.filenames_start_with_a = ['a0', 'a1', 'a2'] + cls.filenames_end_with_b = ['0b', '1b', '2b'] cls.filenames = cls.filenames_start_with_a + cls.filenames_end_with_b cls.tempdir = TemporaryDirectory() td = cls.tempdir.name diff --git a/IPython/utils/tests/test_traitlets.py b/IPython/utils/tests/test_traitlets.py index 8bd4886..cdb0cd3 100644 --- a/IPython/utils/tests/test_traitlets.py +++ b/IPython/utils/tests/test_traitlets.py @@ -148,16 +148,16 @@ class TestTraitType(TestCase): a = A() self.assertEqual(a._trait_values, {}) - self.assertEqual(a._trait_dyn_inits.keys(), ['x']) + self.assertEqual(list(a._trait_dyn_inits.keys()), ['x']) self.assertEqual(a.x, 11) self.assertEqual(a._trait_values, {'x': 11}) b = B() self.assertEqual(b._trait_values, {'x': 20}) - self.assertEqual(a._trait_dyn_inits.keys(), ['x']) + self.assertEqual(list(a._trait_dyn_inits.keys()), ['x']) self.assertEqual(b.x, 20) c = C() self.assertEqual(c._trait_values, {}) - self.assertEqual(a._trait_dyn_inits.keys(), ['x']) + self.assertEqual(list(a._trait_dyn_inits.keys()), ['x']) self.assertEqual(c.x, 21) self.assertEqual(c._trait_values, {'x': 21}) # Ensure that the base class remains unmolested when the _default @@ -165,7 +165,7 @@ class TestTraitType(TestCase): a = A() c = C() self.assertEqual(a._trait_values, {}) - self.assertEqual(a._trait_dyn_inits.keys(), ['x']) + self.assertEqual(list(a._trait_dyn_inits.keys()), ['x']) self.assertEqual(a.x, 11) self.assertEqual(a._trait_values, {'x': 11}) @@ -886,7 +886,7 @@ class TestList(TraitTestBase): obj = ListTrait() _default_value = [] - _good_values = [[], [1], range(10)] + _good_values = [[], [1], list(range(10))] _bad_values = [10, [1,'a'], 'a', (1,2)] class LenListTrait(HasTraits): @@ -898,8 +898,8 @@ class TestLenList(TraitTestBase): obj = LenListTrait() _default_value = [0] - _good_values = [[1], range(2)] - _bad_values = [10, [1,'a'], 'a', (1,2), [], range(3)] + _good_values = [[1], list(range(2))] + _bad_values = [10, [1,'a'], 'a', (1,2), [], list(range(3))] class TupleTrait(HasTraits): diff --git a/IPython/utils/text.py b/IPython/utils/text.py index 934f69f..71d5e93 100644 --- a/IPython/utils/text.py +++ b/IPython/utils/text.py @@ -621,7 +621,7 @@ def _chunks(l, n): def _find_optimal(rlist , separator_size=2 , displaywidth=80): """Calculate optimal info to columnize a list of string""" for nrow in range(1, len(rlist)+1) : - chk = map(max,_chunks(rlist, nrow)) + chk = list(map(max,_chunks(rlist, nrow))) sumlength = sum(chk) ncols = len(chk) if sumlength+separator_size*(ncols-1) <= displaywidth : @@ -694,7 +694,7 @@ def compute_item_matrix(items, empty=None, *args, **kwargs) : 'rows_numbers': 5}) """ - info = _find_optimal(map(len, items), *args, **kwargs) + info = _find_optimal(list(map(len, items)), *args, **kwargs) nrow, ncol = info['rows_numbers'], info['columns_numbers'] return ([[ _get_or_default(items, c*nrow+i, default=empty) for c in range(ncol) ] for i in range(nrow) ], info)