From 2b9b6d59881cb8a90617c614eb3474bdea7576c9 Mon Sep 17 00:00:00 2001 From: Mahmoud Hashemi Date: Thu, 17 Sep 2015 00:59:07 -0700 Subject: [PATCH] remap: work around Python 3 garbage --- boltons/iterutils.py | 8 ++++---- tests/test_iterutils.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/boltons/iterutils.py b/boltons/iterutils.py index ced6059..2cc4bef 100644 --- a/boltons/iterutils.py +++ b/boltons/iterutils.py @@ -586,7 +586,7 @@ def first(iterable, default=None, key=None): return default -from collections import Mapping, Sequence +from collections import Mapping, Sequence, ItemsView try: from typeutils import make_sentinel @@ -603,9 +603,9 @@ def default_handle_item(key, value): def default_handle_push(key, iterable): # print 'handle_push(%r, %r)' % (key, iterable) if isinstance(iterable, Mapping): - return iterable.items() + return ItemsView(iterable) elif isinstance(iterable, Sequence): - return list(enumerate(iterable)) + return enumerate(iterable) else: return False @@ -663,7 +663,7 @@ def remap(root, registry[id(value)] = new_items_stack[-1] stack.append((_POP, (key, value))) if new_items: - stack.extend(reversed(new_items)) + stack.extend(reversed(list(new_items))) continue handled_item = handle_item(key, value) if handled_item is False: diff --git a/tests/test_iterutils.py b/tests/test_iterutils.py index 8d79dca..8f5a029 100644 --- a/tests/test_iterutils.py +++ b/tests/test_iterutils.py @@ -69,7 +69,7 @@ class TestRemap(object): assert orig['c']['d'] == remapped['C']['D'] def test_item_drop(self): - orig = range(10) + orig = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] even_items = remap(orig, lambda k, v: not (v % 2)) assert even_items == [0, 2, 4, 6, 8] @@ -82,7 +82,7 @@ class TestRemap(object): remap([], handle_pop='test') def test_selfref(self): - selfref = range(4) + selfref = [0, 1, 2, 3] selfref.append(selfref) assert selfref == remap(selfref)