diff --git a/.coveragerc b/.coveragerc index 40fd2df..357bebd 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,6 +10,3 @@ exclude_lines = # No need to test __repr__ def __repr__ - - # Python 2/3 compatibility - except ImportError diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index fa172c1..7ec5232 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -39,7 +39,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] steps: - uses: actions/checkout@v4 diff --git a/doc/index.rst b/doc/index.rst index 53b1dea..7d079e8 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -7,7 +7,7 @@ python-json-pointer =================== *python-json-pointer* is a Python library for resolving JSON pointers (`RFC -6901 `_). Python 2.7, 3.4+ +6901 `_). Python 3.9+ and PyPy are supported. **Contents** diff --git a/setup.py b/setup.py index 3e87a4c..75f5426 100644 --- a/setup.py +++ b/setup.py @@ -38,8 +38,6 @@ 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', @@ -62,5 +60,5 @@ py_modules=MODULES, scripts=['bin/jsonpointer'], classifiers=CLASSIFIERS, - python_requires='>=3.7', + python_requires='>=3.9', ) diff --git a/tests.py b/tests.py index 7b1cdac..668982d 100755 --- a/tests.py +++ b/tests.py @@ -1,11 +1,8 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from __future__ import unicode_literals - import copy import doctest -import sys import unittest import jsonpointer @@ -78,45 +75,33 @@ def test_round_trip(self): def test_str_and_repr(self): paths = [ - ("", "", "JsonPointer({u}'')"), - ("/foo", "/foo", "JsonPointer({u}'/foo')"), - ("/foo/0", "/foo/0", "JsonPointer({u}'/foo/0')"), - ("/", "/", "JsonPointer({u}'/')"), - ("/a~1b", "/a~1b", "JsonPointer({u}'/a~1b')"), - ("/c%d", "/c%d", "JsonPointer({u}'/c%d')"), - ("/e^f", "/e^f", "JsonPointer({u}'/e^f')"), - ("/g|h", "/g|h", "JsonPointer({u}'/g|h')"), - ("/i\\j", "/i\\j", "JsonPointer({u}'/i\\\\j')"), - ("/k\"l", "/k\"l", "JsonPointer({u}'/k\"l')"), - ("/ ", "/ ", "JsonPointer({u}'/ ')"), - ("/m~0n", "/m~0n", "JsonPointer({u}'/m~0n')"), + ("", "", "JsonPointer('')"), + ("/foo", "/foo", "JsonPointer('/foo')"), + ("/foo/0", "/foo/0", "JsonPointer('/foo/0')"), + ("/", "/", "JsonPointer('/')"), + ("/a~1b", "/a~1b", "JsonPointer('/a~1b')"), + ("/c%d", "/c%d", "JsonPointer('/c%d')"), + ("/e^f", "/e^f", "JsonPointer('/e^f')"), + ("/g|h", "/g|h", "JsonPointer('/g|h')"), + ("/i\\j", "/i\\j", "JsonPointer('/i\\\\j')"), + ("/k\"l", "/k\"l", "JsonPointer('/k\"l')"), + ("/ ", "/ ", "JsonPointer('/ ')"), + ("/m~0n", "/m~0n", "JsonPointer('/m~0n')"), ] for path, ptr_str, ptr_repr in paths: ptr = JsonPointer(path) self.assertEqual(path, ptr.path) - - if sys.version_info[0] == 2: - u_str = "u" - else: - u_str = "" self.assertEqual(ptr_str, str(ptr)) - self.assertEqual(ptr_repr.format(u=u_str), repr(ptr)) - - if sys.version_info[0] == 2: - path = "/\xee" - ptr_str = b"/\xee" - ptr_repr = "JsonPointer(u'/\\xee')" - else: - path = "/\xee" - ptr_str = "/\xee" - ptr_repr = "JsonPointer('/\xee')" + self.assertEqual(ptr_repr, repr(ptr)) + + path = "/\xee" + ptr_str = "/\xee" + ptr_repr = "JsonPointer('/\xee')" ptr = JsonPointer(path) self.assertEqual(path, ptr.path) - self.assertEqual(ptr_str, str(ptr)) self.assertEqual(ptr_repr, repr(ptr)) - # should not be unicode in Python 2 self.assertIsInstance(str(ptr), str) self.assertIsInstance(repr(ptr), str)