summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kögl <stefan@skoegl.net>2012-09-12 06:39:40 -0700
committerStefan Kögl <stefan@skoegl.net>2012-09-12 06:39:40 -0700
commit97a06ecb9dde82bd54dc269052841035ca2a1390 (patch)
tree4ee2f5332143f1885cfe871aefff03116103511d
parent3fadd63a77c7074fa7a4cd6bc04b0c34891a0d64 (diff)
parente82fa8aa37b33a1daf477224a3b85e6fda68f2b6 (diff)
downloadpython-json-pointer-97a06ecb9dde82bd54dc269052841035ca2a1390.tar.gz
Merge pull request #2 from kxepal/master
Compatibility fixes
-rw-r--r--jsonpointer.py22
-rwxr-xr-xtests.py10
2 files changed, 19 insertions, 13 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>'
diff --git a/tests.py b/tests.py
index df500cc..57a4818 100755
--- a/tests.py
+++ b/tests.py
@@ -1,7 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-from __future__ import print_function
import doctest
import unittest
import sys
@@ -73,7 +72,8 @@ if coverage is not None:
coverage.erase()
if coverage is None:
- print("""
- No coverage reporting done (Python module "coverage" is missing)
- Please install the python-coverage package to get coverage reporting.
- """, file=sys.stderr)
+ sys.stderr.write("""
+No coverage reporting done (Python module "coverage" is missing)
+Please install the python-coverage package to get coverage reporting.
+""")
+ sys.stderr.flush()