diff options
author | Stefan Kögl <stefan@skoegl.net> | 2012-09-12 06:39:40 -0700 |
---|---|---|
committer | Stefan Kögl <stefan@skoegl.net> | 2012-09-12 06:39:40 -0700 |
commit | 97a06ecb9dde82bd54dc269052841035ca2a1390 (patch) | |
tree | 4ee2f5332143f1885cfe871aefff03116103511d /jsonpointer.py | |
parent | 3fadd63a77c7074fa7a4cd6bc04b0c34891a0d64 (diff) | |
parent | e82fa8aa37b33a1daf477224a3b85e6fda68f2b6 (diff) | |
download | python-json-pointer-97a06ecb9dde82bd54dc269052841035ca2a1390.tar.gz |
Merge pull request #2 from kxepal/master
Compatibility fixes
Diffstat (limited to 'jsonpointer.py')
-rw-r--r-- | jsonpointer.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/jsonpointer.py b/jsonpointer.py index 8683303..0736014 100644 --- a/jsonpointer.py +++ b/jsonpointer.py @@ -34,14 +34,20 @@ http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-04 """ # Will be parsed by setup.py to determine package metadata -__author__ = 'Stefan Kögl <stefan@skoegl.net>' +__author__ = 'Stefan Kögl <stefan@skoegl.net>' __version__ = '0.3' __website__ = 'https://github.com/stefankoegl/python-json-pointer' __license__ = 'Modified BSD License' -import urllib -from itertools import tee, izip +try: + from urllib import unquote + from itertools import izip +except ImportError: # Python 3 + from urllib.parse import unquote + izip = zip + +from itertools import tee class JsonPointerException(Exception): @@ -105,8 +111,8 @@ def set_pointer(doc, pointer, value): >>> obj = {'foo': 2, 'bar': [{'x': 5}]} >>> pointer = JsonPointer('/bar/0') >>> pointer.set(obj, 10, 'y/0') - >>> obj - {'foo': 2, 'bar': [{'y': [10], 'x': 5}]} + >>> obj == {'foo': 2, 'bar': [{'y': [10], 'x': 5}]} + True """ pointer = JsonPointer(pointer) @@ -121,7 +127,7 @@ class JsonPointer(object): if parts.pop(0) != '': raise JsonPointerException('location must starts with /') - parts = map(urllib.unquote, parts) + parts = map(unquote, parts) parts = [part.replace('~1', '/') for part in parts] parts = [part.replace('~0', '~') for part in parts] self.parts = parts @@ -217,6 +223,6 @@ class JsonPointer(object): def pairwise(iterable): "s -> (s0,s1), (s1,s2), (s2, s3), ..." a, b = tee(iterable) - next(b, None) + for _ in b: + break return izip(a, b) -__author__ = 'Stefan Kögl <stefan@skoegl.net>' |