From a2c3bc2de1a8f315f9b21e0846c17d92864c525c Mon Sep 17 00:00:00 2001 From: Alexander Shorin Date: Wed, 12 Sep 2012 08:16:54 +0400 Subject: Stefan, would you mind if I fix your name?(: $ python3.2 jsonpointer.py File "jsonpointer.py", line 37 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xf6 in position 0: invalid start byte --- jsonpointer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jsonpointer.py b/jsonpointer.py index 8683303..12f3744 100644 --- a/jsonpointer.py +++ b/jsonpointer.py @@ -34,7 +34,7 @@ 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 ' +__author__ = 'Stefan Kögl ' __version__ = '0.3' __website__ = 'https://github.com/stefankoegl/python-json-pointer' __license__ = 'Modified BSD License' @@ -219,4 +219,3 @@ def pairwise(iterable): a, b = tee(iterable) next(b, None) return izip(a, b) -__author__ = 'Stefan Kögl ' -- cgit v1.2.1 From aef6313b049b08f08dd48eb6173fcb1eb63f8bcf Mon Sep 17 00:00:00 2001 From: Alexander Shorin Date: Wed, 12 Sep 2012 08:34:45 +0400 Subject: Fix compatibility with Python 2.5. Emulate next(b, None) through for loop with single round. There wasn't print_function, while it really doesn't needed. --- jsonpointer.py | 3 ++- tests.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/jsonpointer.py b/jsonpointer.py index 12f3744..06b9869 100644 --- a/jsonpointer.py +++ b/jsonpointer.py @@ -217,5 +217,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) 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() -- cgit v1.2.1 From 43234d598d1d72faf0bd266cf2422f0c948e6384 Mon Sep 17 00:00:00 2001 From: Alexander Shorin Date: Wed, 12 Sep 2012 08:41:10 +0400 Subject: Fix compatibility with Python 3.x. --- jsonpointer.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jsonpointer.py b/jsonpointer.py index 06b9869..58cbdbb 100644 --- a/jsonpointer.py +++ b/jsonpointer.py @@ -40,8 +40,14 @@ __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): @@ -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 -- cgit v1.2.1 From e82fa8aa37b33a1daf477224a3b85e6fda68f2b6 Mon Sep 17 00:00:00 2001 From: Alexander Shorin Date: Wed, 12 Sep 2012 08:50:54 +0400 Subject: Fix test for Jython2.5. It doesn't respect this key order while others do. --- jsonpointer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jsonpointer.py b/jsonpointer.py index 58cbdbb..0736014 100644 --- a/jsonpointer.py +++ b/jsonpointer.py @@ -111,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) -- cgit v1.2.1