Hello community,

here is the log from the commit of package python-jsonpatch for 
openSUSE:Factory checked in at 2020-03-08 22:21:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jsonpatch (Old)
 and      /work/SRC/openSUSE:Factory/.python-jsonpatch.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-jsonpatch"

Sun Mar  8 22:21:31 2020 rev:20 rq:780383 version:1.25

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jsonpatch/python-jsonpatch.changes        
2019-09-23 12:08:46.369891872 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-jsonpatch.new.26092/python-jsonpatch.changes 
    2020-03-08 22:21:35.075982952 +0100
@@ -1,0 +2,6 @@
+Fri Feb 28 21:34:10 UTC 2020 - Dirk Mueller <dmuel...@suse.com>
+
+- update to 1.25:
+  * bugfixes, 3.8 support
+
+-------------------------------------------------------------------

Old:
----
  jsonpatch-1.24.tar.gz

New:
----
  jsonpatch-1.25.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-jsonpatch.spec ++++++
--- /var/tmp/diff_new_pack.RHGRlH/_old  2020-03-08 22:21:36.835984037 +0100
+++ /var/tmp/diff_new_pack.RHGRlH/_new  2020-03-08 22:21:36.871984060 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-jsonpatch
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-jsonpatch
-Version:        1.24
+Version:        1.25
 Release:        0
 Summary:        Python - JSON-Patches
 License:        BSD-3-Clause

++++++ jsonpatch-1.24.tar.gz -> jsonpatch-1.25.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsonpatch-1.24/PKG-INFO new/jsonpatch-1.25/PKG-INFO
--- old/jsonpatch-1.24/PKG-INFO 2019-07-28 18:07:34.000000000 +0200
+++ new/jsonpatch-1.25/PKG-INFO 2020-01-29 09:22:05.000000000 +0100
@@ -1,17 +1,17 @@
 Metadata-Version: 1.2
 Name: jsonpatch
-Version: 1.24
+Version: 1.25
 Summary:  Apply JSON-Patches (RFC 6902) 
 Home-page: https://github.com/stefankoegl/python-json-patch
 Author: Stefan Kögl
 Author-email: ste...@skoegl.net
 License: Modified BSD License
 Project-URL: Website, https://github.com/stefankoegl/python-json-patch
-Project-URL: Tests, https://travis-ci.org/stefankoegl/python-json-patch
 Project-URL: Repository, https://github.com/stefankoegl/python-json-patch.git
-Project-URL: Test Coverage, 
https://coveralls.io/r/stefankoegl/python-json-patch
 Project-URL: Documentation, https://python-json-patch.readthedocs.org/
 Project-URL: PyPI, https://pypi.org/pypi/jsonpatch
+Project-URL: Tests, https://travis-ci.org/stefankoegl/python-json-patch
+Project-URL: Test Coverage, 
https://coveralls.io/r/stefankoegl/python-json-patch
 Description: python-json-patch
         =================
         
@@ -62,12 +62,12 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Utilities
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsonpatch-1.24/jsonpatch.egg-info/PKG-INFO 
new/jsonpatch-1.25/jsonpatch.egg-info/PKG-INFO
--- old/jsonpatch-1.24/jsonpatch.egg-info/PKG-INFO      2019-07-28 
18:07:34.000000000 +0200
+++ new/jsonpatch-1.25/jsonpatch.egg-info/PKG-INFO      2020-01-29 
09:22:05.000000000 +0100
@@ -1,17 +1,17 @@
 Metadata-Version: 1.2
 Name: jsonpatch
-Version: 1.24
+Version: 1.25
 Summary:  Apply JSON-Patches (RFC 6902) 
 Home-page: https://github.com/stefankoegl/python-json-patch
 Author: Stefan Kögl
 Author-email: ste...@skoegl.net
 License: Modified BSD License
 Project-URL: Website, https://github.com/stefankoegl/python-json-patch
-Project-URL: Tests, https://travis-ci.org/stefankoegl/python-json-patch
 Project-URL: Repository, https://github.com/stefankoegl/python-json-patch.git
-Project-URL: Test Coverage, 
https://coveralls.io/r/stefankoegl/python-json-patch
 Project-URL: Documentation, https://python-json-patch.readthedocs.org/
 Project-URL: PyPI, https://pypi.org/pypi/jsonpatch
+Project-URL: Tests, https://travis-ci.org/stefankoegl/python-json-patch
+Project-URL: Test Coverage, 
https://coveralls.io/r/stefankoegl/python-json-patch
 Description: python-json-patch
         =================
         
@@ -62,12 +62,12 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Utilities
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsonpatch-1.24/jsonpatch.py 
new/jsonpatch-1.25/jsonpatch.py
--- old/jsonpatch-1.24/jsonpatch.py     2019-07-28 18:07:12.000000000 +0200
+++ new/jsonpatch-1.25/jsonpatch.py     2020-01-29 09:18:14.000000000 +0100
@@ -56,7 +56,7 @@
 
 # Will be parsed by setup.py to determine package metadata
 __author__ = 'Stefan Kögl <ste...@skoegl.net>'
-__version__ = '1.24'
+__version__ = '1.25'
 __website__ = 'https://github.com/stefankoegl/python-json-patch'
 __license__ = 'Modified BSD License'
 
@@ -474,7 +474,7 @@
             return value
 
         if isinstance(subobj, MutableSequence):
-            if part > len(subobj) or part < 0:
+            if part >= len(subobj) or part < 0:
                 raise JsonPatchConflict("can't replace outside of list")
 
         elif isinstance(subobj, MutableMapping):
@@ -817,10 +817,7 @@
                 self._item_added(path, key, dst[key])
 
     def _compare_values(self, path, key, src, dst):
-        if src == dst:
-            return
-
-        elif isinstance(src, MutableMapping) and \
+        if isinstance(src, MutableMapping) and \
                 isinstance(dst, MutableMapping):
             self._compare_dicts(_path_join(path, key), src, dst)
 
@@ -828,6 +825,16 @@
                 isinstance(dst, MutableSequence):
             self._compare_lists(_path_join(path, key), src, dst)
 
+        # To ensure we catch changes to JSON, we can't rely on a simple
+        # src == dst, or it would not recognize the difference between
+        # 1 and True, among other things. Using json.dumps is the most
+        # fool-proof way to ensure we catch type changes that matter to JSON
+        # and ignore those that don't. The performance of this could be
+        # improved by doing more direct type checks, but we'd need to be
+        # careful to accept type changes that don't matter when JSONified.
+        elif json.dumps(src) == json.dumps(dst):
+            return
+
         else:
             self._item_replaced(path, key, dst)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsonpatch-1.24/setup.py new/jsonpatch-1.25/setup.py
--- old/jsonpatch-1.24/setup.py 2019-07-28 18:07:12.000000000 +0200
+++ new/jsonpatch-1.25/setup.py 2020-01-29 09:16:32.000000000 +0100
@@ -56,10 +56,10 @@
     'Programming Language :: Python :: 2',
     'Programming Language :: Python :: 2.7',
     'Programming Language :: Python :: 3',
-    'Programming Language :: Python :: 3.4',
     'Programming Language :: Python :: 3.5',
     'Programming Language :: Python :: 3.6',
     'Programming Language :: Python :: 3.7',
+    'Programming Language :: Python :: 3.8',
     'Programming Language :: Python :: Implementation :: CPython',
     'Programming Language :: Python :: Implementation :: PyPy',
     'Topic :: Software Development :: Libraries',
@@ -79,7 +79,7 @@
       package_data={'': ['requirements.txt']},
       scripts=['bin/jsondiff', 'bin/jsonpatch'],
       classifiers=CLASSIFIERS,
-      python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
+      python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
       project_urls={
           'Website': 'https://github.com/stefankoegl/python-json-patch',
           'Repository': 'https://github.com/stefankoegl/python-json-patch.git',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsonpatch-1.24/tests.py new/jsonpatch-1.25/tests.py
--- old/jsonpatch-1.24/tests.py 2019-07-28 18:07:12.000000000 +0200
+++ new/jsonpatch-1.25/tests.py 2020-01-29 09:16:32.000000000 +0100
@@ -427,6 +427,24 @@
         res = jsonpatch.apply_patch(src, patch)
         self.assertEqual(res, dst)
 
+    def test_issue90(self):
+        """In JSON 1 is different from True even though in python 1 == True"""
+        src = {'A': 1}
+        dst = {'A': True}
+        patch = jsonpatch.make_patch(src, dst)
+        res = jsonpatch.apply_patch(src, patch)
+        self.assertEqual(res, dst)
+        self.assertIsInstance(res['A'], bool)
+
+    def test_issue103(self):
+        """In JSON 1 is different from 1.0 even though in python 1 == 1.0"""
+        src = {'A': 1}
+        dst = {'A': 1.0}
+        patch = jsonpatch.make_patch(src, dst)
+        res = jsonpatch.apply_patch(src, patch)
+        self.assertEqual(res, dst)
+        self.assertIsInstance(res['A'], float)
+
 
 
 class OptimizationTests(unittest.TestCase):
@@ -611,6 +629,11 @@
         patch_obj = [ { "op": "replace", "path": "/foo/10", "value": 10} ]
         self.assertRaises(jsonpatch.JsonPatchConflict, jsonpatch.apply_patch, 
src, patch_obj)
 
+    def test_replace_oob_length(self):
+        src = {"foo": [0, 1]}
+        patch_obj = [ { "op": "replace", "path": "/foo/2", "value": 2} ]
+        self.assertRaises(jsonpatch.JsonPatchConflict, jsonpatch.apply_patch, 
src, patch_obj)
+
     def test_replace_missing(self):
         src = {"foo": 1}
         patch_obj = [ { "op": "replace", "path": "/bar", "value": 10} ]


Reply via email to