Skip to content

Commit 7387d20

Browse files
committed
Simplify compatibility code
1 parent 098c7c7 commit 7387d20

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

jsonpatch.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,6 @@
4343
import sys
4444

4545

46-
if sys.version_info[0] >= 3:
47-
_range = range
48-
_viewkeys = dict.keys
49-
else:
50-
_range = xrange
51-
if sys.version_info[1] >= 7:
52-
_viewkeys = dict.viewkeys
53-
else:
54-
_viewkeys = lambda x: set(dict.keys(x))
55-
56-
5746
_ST_ADD = 0
5847
_ST_REMOVE = 1
5948

@@ -782,8 +771,8 @@ def _item_replaced(self, path, key, item):
782771
}))
783772

784773
def _compare_dicts(self, path, src, dst):
785-
src_keys = _viewkeys(src)
786-
dst_keys = _viewkeys(dst)
774+
src_keys = set(src.keys())
775+
dst_keys = set(dst.keys())
787776
added_keys = dst_keys - src_keys
788777
removed_keys = src_keys - dst_keys
789778
for key in removed_keys:
@@ -797,7 +786,7 @@ def _compare_lists(self, path, src, dst):
797786
len_src, len_dst = len(src), len(dst)
798787
max_len = max(len_src, len_dst)
799788
min_len = min(len_src, len_dst)
800-
for key in _range(max_len):
789+
for key in range(max_len):
801790
if key < min_len:
802791
old, new = src[key], dst[key]
803792
if old == new:
@@ -812,11 +801,11 @@ def _compare_lists(self, path, src, dst):
812801
def _compare_values(self, path, key, src, dst):
813802
if src == dst:
814803
return
815-
elif isinstance(src, dict) and \
816-
isinstance(dst, dict):
804+
elif isinstance(src, MutableMapping) and \
805+
isinstance(dst, MutableMapping):
817806
self._compare_dicts(_path_join(path, key), src, dst)
818-
elif isinstance(src, list) and \
819-
isinstance(dst, list):
807+
elif isinstance(src, MutableSequence) and \
808+
isinstance(dst, MutableSequence):
820809
self._compare_lists(_path_join(path, key), src, dst)
821810
else:
822811
self._item_replaced(path, key, dst)

0 commit comments

Comments
 (0)