Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-python-rapidjson for
openSUSE:Factory checked in at 2022-10-08 01:25:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-rapidjson (Old)
and /work/SRC/openSUSE:Factory/.python-python-rapidjson.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-rapidjson"
Sat Oct 8 01:25:25 2022 rev:8 rq:1008708 version:1.8
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-python-rapidjson/python-python-rapidjson.changes
2022-01-15 21:45:43.141630586 +0100
+++
/work/SRC/openSUSE:Factory/.python-python-rapidjson.new.2275/python-python-rapidjson.changes
2022-10-08 01:25:45.246302467 +0200
@@ -1,0 +2,13 @@
+Thu Oct 6 22:46:58 UTC 2022 - Yogalakshmi Arunachalam <[email protected]>
+
+- Update to version 1.8 (2022-07-07)
+ Fix problem on macOS explicitly requiring C++11, thanks to agate-pris (issue
#166)
+
+- Update to version 1.7 (2022-07-06)
+ Use current master version of rapidjson
+ Update the test suite to work on Pyston, thanks to Kevin Modzelewski (PR
#161)
+
+- Update to version 1.6 (2022-02-19)
+ Fix memory leak when using end_array (issue #160)
+
+-------------------------------------------------------------------
Old:
----
python-rapidjson-1.5.tar.gz
New:
----
python-rapidjson-1.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-rapidjson.spec ++++++
--- /var/tmp/diff_new_pack.m22S0T/_old 2022-10-08 01:25:47.282307137 +0200
+++ /var/tmp/diff_new_pack.m22S0T/_new 2022-10-08 01:25:47.286307146 +0200
@@ -21,7 +21,7 @@
# check git submodule and update devel:libraries:c_c++/rapidjson
%define rjversion 1.1.0+git20211015.4d6cb081
Name: python-python-rapidjson
-Version: 1.5
+Version: 1.8
Release: 0
Summary: Python wrapper around rapidjson
License: MIT
++++++ python-rapidjson-1.5.tar.gz -> python-rapidjson-1.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/.dir-locals.el
new/python-rapidjson-1.8/.dir-locals.el
--- old/python-rapidjson-1.5/.dir-locals.el 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/.dir-locals.el 2022-07-07 07:21:46.000000000
+0200
@@ -1,7 +1,4 @@
((nil . ((esk/project-name . "python-rapidjson")
(esk/project-license . "MIT License")
- (fill-column . 90)
- ;; force reinstall of whitespace font-lock customization
- (eval . (if (functionp 'whitespace-color-on)
- (whitespace-color-on)))))
+ (fill-column . 90)))
(c++-mode . ((eval . (c-set-style "stroustrup")))))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/.github/workflows/main.yml
new/python-rapidjson-1.8/.github/workflows/main.yml
--- old/python-rapidjson-1.5/.github/workflows/main.yml 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/.github/workflows/main.yml 2022-07-07
07:21:46.000000000 +0200
@@ -4,7 +4,7 @@
# :Author: Martin Thoma <[email protected]>
# :License: MIT License
# :Copyright: ?? 2020 Martin Thoma
-# :Copyright: ?? 2020, 2021 Lele Gaifax
+# :Copyright: ?? 2020, 2021, 2022 Lele Gaifax
#
# For more information see:
@@ -41,7 +41,7 @@
- name: Install dependencies
run: |
- python -m pip install --upgrade pip
+ python -m pip install --upgrade pip setuptools
pip install -r requirements-test.txt
pip install .
@@ -73,7 +73,7 @@
- name: Install dependencies
run: |
- python -m pip install --upgrade pip
+ python -m pip install --upgrade setuptools==59.8.0
pip install -r requirements-test.txt
pip install .
@@ -111,12 +111,12 @@
name: Set up QEMU
- name: Build wheels
- uses: pypa/[email protected]
+ uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: ${{matrix.arch}}
CIBW_TEST_REQUIRES: "pytest pytest-benchmark pytz"
CIBW_TEST_COMMAND: "pytest {project}/tests"
- CIBW_SKIP: "cp2* cp33* cp34* cp35* pp*"
+ CIBW_SKIP: "cp2* cp33* cp34* cp35* cp36* pp*"
- name: Upload artifacts
uses: actions/upload-artifact@v2
@@ -132,7 +132,7 @@
# FIXME: for some reason, the job is skipped, although the configuration is
# almost identical to the one I use on pglast... let's try to
temporarily
# remove the condition
- if: github.event_name == 'push' && startsWith(github.event.ref,
'refs/tags/v')
+ #if: github.event_name == 'push' && startsWith(github.event.ref,
'refs/tags/v')
steps:
- uses: actions/download-artifact@v2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/CHANGES.rst
new/python-rapidjson-1.8/CHANGES.rst
--- old/python-rapidjson-1.5/CHANGES.rst 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/CHANGES.rst 2022-07-07 07:21:46.000000000
+0200
@@ -1,6 +1,36 @@
Changes
-------
+1.8 (2022-07-07)
+~~~~~~~~~~~~~~~~
+
+* Fix `problem on macOS`__ explicitly requiring C++11, thanks to agate-pris
(`issue
+ #166`__)
+
+ __
https://github.com/Tencent/rapidjson/commit/9965ab37f6cfae3d58a0a6e34c76112866ace0b1#commitcomment-77875054
+ __ https://github.com/python-rapidjson/python-rapidjson/issues/166
+
+
+1.7 (2022-07-06)
+~~~~~~~~~~~~~~~~
+
+* Use `current master`__ version of rapidjson
+
+ __
https://github.com/Tencent/rapidjson/commit/232389d4f1012dddec4ef84861face2d2ba85709
+
+* Update the test suite to work on Pyston, thanks to Kevin Modzelewski (`PR
#161`__)
+
+ __ https://github.com/python-rapidjson/python-rapidjson/pull/161
+
+
+1.6 (2022-02-19)
+~~~~~~~~~~~~~~~~
+
+* Fix memory leak when using ``end_array`` (`issue #160`__)
+
+ __ https://github.com/python-rapidjson/python-rapidjson/issues/160
+
+
1.5 (2021-10-16)
~~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/README.rst
new/python-rapidjson-1.8/README.rst
--- old/python-rapidjson-1.5/README.rst 2021-10-16 10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/README.rst 2022-07-07 07:21:46.000000000 +0200
@@ -3,7 +3,7 @@
.. :Author: Ken Robbins <[email protected]>
.. :License: MIT License
.. :Copyright: ?? 2015 Ken Robbins
-.. :Copyright: ?? 2016, 2017, 2018, 2020 Lele Gaifax
+.. :Copyright: ?? 2016, 2017, 2018, 2020, 2022 Lele Gaifax
..
==================
@@ -60,7 +60,7 @@
>>> import rapidjson
>>> data = {'foo': 100, 'bar': 'baz'}
>>> rapidjson.dumps(data)
- '{"bar":"baz","foo":100}'
+ '{"foo":100,"bar":"baz"}'
>>> rapidjson.loads('{"bar":"baz","foo":100}')
{'bar': 'baz', 'foo': 100}
>>>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/benchmarks/tablize.py
new/python-rapidjson-1.8/benchmarks/tablize.py
--- old/python-rapidjson-1.5/benchmarks/tablize.py 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/benchmarks/tablize.py 2022-07-07
07:21:46.000000000 +0200
@@ -2,7 +2,7 @@
# :Project: python-rapidjson -- reST tables writer tool
# :Author: Lele Gaifax <[email protected]>
# :License: MIT License
-# :Copyright: ?? 2017, 2018, 2020, 2021 Lele Gaifax
+# :Copyright: ?? 2017, 2018, 2020, 2021, 2022 Lele Gaifax
#
# Assume we did::
@@ -126,10 +126,10 @@
'.. [2] ``rapidjson.Encoder()``',
'.. [3] ``rapidjson.dumps(number_mode=NM_NATIVE)``',
'.. [4] ``rapidjson.Encoder(number_mode=NM_NATIVE)``',
- '.. [5] `simdjson 4.0.0
<https://pypi.org/project/pysimdjson/4.0.0/>`__',
- '.. [6] `orjson 3.5.3 <https://pypi.org/project/orjson/3.5.3/>`__',
- '.. [7] `ujson 4.0.2 <https://pypi.org/project/ujson/4.0.2/>`__',
- '.. [8] `simplejson 3.17.2
<https://pypi.org/pypi/simplejson/3.17.2>`__',
+ '.. [5] `simdjson 5.0.1
<https://pypi.org/project/pysimdjson/5.0.1/>`__',
+ '.. [6] `orjson 3.7.6 <https://pypi.org/project/orjson/3.7.6/>`__',
+ '.. [7] `ujson 5.4.0 <https://pypi.org/project/ujson/5.4.0/>`__',
+ '.. [8] `simplejson 3.17.6
<https://pypi.org/pypi/simplejson/3.17.6>`__',
'.. [9] Python %d.%d.%d standard library ``json``' %
sys.version_info[:3],
'.. [10] ``rapidjson.loads()``',
'.. [11] ``rapidjson.Decoder()``',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/docs/benchmarks-tables.rst
new/python-rapidjson-1.8/docs/benchmarks-tables.rst
--- old/python-rapidjson-1.5/docs/benchmarks-tables.rst 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/docs/benchmarks-tables.rst 2022-07-07
07:21:46.000000000 +0200
@@ -5,41 +5,41 @@
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
| serialize | ``dumps()``\ [1]_ | ``Encoder()``\ [2]_ |
``dumps(n)``\ [3]_ | ``Encoder(n)``\ [4]_ | simdjson\ [5]_ | orjson\
[6]_ | ujson\ [7]_ | simplejson\ [8]_ | stdlib\ [9]_ |
+=======================+======================+======================+======================+======================+======================+======================+======================+======================+======================+
-| 100 arrays dict | 1.00 | 1.00 |
0.79 | 0.78 | 1.95 | **0.25**
| 1.05 | 2.88 | 1.93 |
+| 100 arrays dict | 1.00 | 0.99 |
0.77 | 0.76 | 1.97 | **0.26**
| 1.09 | 4.00 | 1.95 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| 100 dicts array | 1.00 | 0.99 |
0.84 | 0.79 | 1.94 | **0.33**
| 1.04 | 3.62 | 1.94 |
+| 100 dicts array | 1.00 | 0.99 |
0.81 | 0.76 | 2.06 | **0.34**
| 1.06 | 4.96 | 2.04 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| 256 Trues array | 1.00 | 0.99 |
1.14 | 0.99 | 2.23 | **0.38**
| 1.33 | 2.63 | 2.23 |
+| 256 Trues array | 1.00 | 1.00 |
1.17 | 1.04 | 2.38 | **0.38**
| 1.52 | 2.70 | 2.35 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| 256 ascii array | 1.00 | 1.00 |
1.02 | 1.00 | 0.76 | **0.25**
| 0.43 | 1.00 | 0.76 |
+| 256 ascii array | 1.00 | 1.00 |
1.02 | 1.00 | 0.90 | **0.26**
| 0.50 | 1.06 | 0.89 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| 256 doubles array | 1.00 | 1.00 |
1.01 | 1.00 | 0.87 | **0.06**
| 0.23 | 0.90 | 0.86 |
+| 256 doubles array | 1.00 | 0.99 |
0.99 | 0.99 | 0.84 | **0.06**
| 0.21 | 0.88 | 0.83 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| 256 unicode array | 1.00 | 0.84 |
0.84 | 0.85 | 0.66 | **0.10**
| 0.56 | 0.78 | 0.66 |
+| 256 unicode array | 1.00 | 0.81 |
0.81 | 0.82 | 0.70 | **0.09**
| 0.51 | 0.65 | 0.69 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| apache.json | 1.00 | 0.99 |
1.01 | 1.00 | 1.46 | **0.30**
| 1.12 | 1.94 | 1.45 |
+| apache.json | 1.00 | 1.00 |
1.01 | 1.01 | 1.66 | **0.33**
| 1.18 | 2.51 | 1.65 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| canada.json | 1.00 | 0.98 |
0.97 | 0.97 | 0.99 | **0.09**
| 0.32 | 1.33 | 0.98 |
+| canada.json | 1.00 | 1.00 |
0.99 | 1.00 | 1.06 | **0.09**
| 0.34 | 1.72 | 1.06 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| complex object | 1.00 | 1.00 |
0.93 | 0.92 | 1.51 | **0.26**
| 0.76 | 1.87 | 1.50 |
+| complex object | 1.00 | 1.00 |
0.93 | 0.92 | 1.58 | **0.26**
| 0.83 | 2.41 | 1.57 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| composite object | 1.00 | 1.02 |
0.75 | 0.72 | 1.82 | **0.37**
| 0.98 | 2.36 | 1.80 |
+| composite object | 1.00 | 0.99 |
0.75 | 0.72 | 1.91 | **0.36**
| 1.12 | 2.44 | 1.87 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| ctm.json | 1.00 | 1.00 |
0.79 | 0.79 | 2.00 | **0.31**
| 1.21 | 3.12 | 1.93 |
+| ctm.json | 1.00 | 1.00 |
0.76 | 0.76 | 2.11 | **0.33**
| 1.43 | 4.81 | 2.13 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| github.json | 1.00 | 1.00 |
0.98 | 0.97 | 1.19 | **0.28**
| 0.90 | 1.41 | 1.18 |
+| github.json | 1.00 | 1.00 |
0.98 | 0.97 | 1.34 | **0.30**
| 0.98 | 1.72 | 1.32 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| instruments.json | 1.00 | 1.00 |
0.86 | 0.86 | 1.62 | **0.33**
| 0.99 | 1.77 | 1.60 |
+| instruments.json | 1.00 | 1.01 |
0.80 | 0.80 | 1.75 | **0.34**
| 1.15 | 2.28 | 1.75 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| mesh.json | 1.00 | 1.00 |
0.90 | 0.91 | 1.00 | **0.14**
| 0.35 | 1.08 | 0.99 |
+| mesh.json | 1.00 | 0.99 |
0.90 | 0.90 | 0.94 | **0.14**
| 0.35 | 1.09 | 0.93 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| truenull.json | 1.00 | 0.99 |
1.06 | 1.03 | 1.78 | **0.42**
| 1.48 | 1.95 | 1.75 |
+| truenull.json | 1.00 | 1.02 |
1.03 | 1.01 | 1.87 | **0.41**
| 1.69 | 1.89 | 1.86 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| tweet.json | 1.00 | 0.99 |
1.00 | 0.96 | 1.51 | **0.33**
| 0.92 | 1.96 | 1.50 |
+| tweet.json | 1.00 | 0.99 |
0.99 | 0.94 | 1.66 | **0.33**
| 1.02 | 2.33 | 1.65 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| twitter.json | 1.00 | 1.00 |
0.97 | 0.97 | 1.25 | **0.30**
| 1.00 | 1.32 | 1.24 |
+| twitter.json | 1.00 | 1.00 |
0.96 | 0.95 | 1.39 | **0.32**
| 1.05 | 1.65 | 1.36 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
-| overall | 1.00 | 1.00 |
0.83 | 0.83 | 1.69 | **0.21**
| 0.86 | 2.44 | 1.67 |
+| overall | 1.00 | 0.99 |
0.83 | 0.82 | 1.71 | **0.22**
| 0.90 | 3.33 | 1.70 |
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
Deserialization
@@ -48,41 +48,41 @@
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
| deserialize | ``loads()``\ [10]_ | ``Decoder()``\ [11]_ |
``loads(n)``\ [12]_ | ``Decoder(n)``\ [13]_ | simdjson |
orjson | ujson | simplejson | stdlib
|
+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+
-| 100 arrays dict | 1.00 | 1.05 |
0.95 | 0.90 | 0.85 |
**0.73** | 0.88 | 1.14 | 0.93
|
+| 100 arrays dict | 1.00 | 1.05 |
0.90 | 0.95 | 0.86 |
**0.56** | 0.86 | 1.07 | 0.97
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| 100 dicts array | 1.00 | 1.00 |
0.87 | 0.84 | **0.62** | 0.64
| 0.72 | 1.33 | 1.05
|
+| 100 dicts array | 1.00 | 0.99 |
0.87 | 0.85 | 0.63 |
**0.40** | 0.68 | 1.27 | 1.02
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| 256 Trues array | 1.00 | 1.01 |
1.08 | 1.01 | 0.90 | 0.88
| **0.80** | 1.53 | 1.33
|
+| 256 Trues array | 1.00 | 1.02 |
1.11 | 0.99 | 0.92 |
**0.48** | 0.83 | 1.51 | 1.36
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| 256 ascii array | 1.00 | 1.00 |
1.03 | 1.03 | **0.45** | 0.75
| 0.97 | 0.98 | 0.84
|
+| 256 ascii array | 1.00 | 0.99 |
1.02 | 1.01 | 0.46 |
**0.45** | 0.82 | 0.84 | 0.81
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| 256 doubles array | 1.00 | 1.00 |
0.25 | 0.25 | **0.20** | 0.25
| 0.48 | 1.12 | 1.07
|
+| 256 doubles array | 1.00 | 1.00 |
0.27 | 0.26 | 0.21 |
**0.16** | 0.54 | 1.09 | 1.07
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| 256 unicode array | 1.00 | 1.00 |
1.00 | 1.00 | 1.12 |
**0.43** | 0.97 | 4.77 | 1.38
|
+| 256 unicode array | 1.00 | 1.00 |
1.00 | 1.00 | 1.10 |
**0.39** | 0.80 | 4.49 | 1.29
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| apache.json | 1.00 | 1.00 |
1.01 | 1.01 | **0.65** | 0.65
| 0.88 | 0.93 | 0.86
|
+| apache.json | 1.00 | 1.00 |
1.01 | 1.01 | 0.65 |
**0.48** | 0.85 | 0.81 | 0.83
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| canada.json | 1.00 | 0.98 |
0.31 | 0.31 | **0.27** | 0.33
| 0.43 | 1.00 | 0.91
|
+| canada.json | 1.00 | 1.00 |
0.34 | 0.34 | 0.29 |
**0.25** | 0.49 | 1.04 | 0.96
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| complex object | 1.00 | 1.01 |
0.88 | 0.87 | 0.66 |
**0.57** | 0.84 | 1.18 | 1.01
|
+| complex object | 1.00 | 1.00 |
0.84 | 0.84 | 0.65 |
**0.37** | 0.80 | 1.15 | 1.02
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| composite object | 1.00 | 1.00 |
0.83 | 0.82 | **0.60** | 0.78
| 0.61 | 1.41 | 1.13
|
+| composite object | 1.00 | 0.99 |
0.83 | 0.81 | 0.61 |
**0.45** | 0.59 | 1.37 | 1.07
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| ctm.json | 1.00 | 0.92 |
0.83 | 0.84 | 0.65 |
**0.62** | 0.92 | 1.15 | 1.03
|
+| ctm.json | 1.00 | 1.01 |
0.92 | 0.92 | 0.74 |
**0.55** | 1.08 | 1.20 | 1.14
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| github.json | 1.00 | 1.00 |
0.98 | 0.98 | **0.63** | 0.63
| 0.84 | 0.94 | 0.85
|
+| github.json | 1.00 | 1.00 |
0.98 | 0.98 | 0.62 |
**0.41** | 0.76 | 0.86 | 0.79
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| instruments.json | 1.00 | 1.00 |
0.86 | 0.86 | 0.64 |
**0.55** | 0.72 | 1.10 | 0.92
|
+| instruments.json | 1.00 | 1.00 |
0.91 | 0.90 | 0.63 |
**0.37** | 0.72 | 1.12 | 0.92
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| mesh.json | 1.00 | 0.92 |
0.47 | 0.47 | **0.40** | 0.49
| 0.63 | 1.42 | 0.95
|
+| mesh.json | 1.00 | 1.01 |
0.51 | 0.51 | 0.44 |
**0.36** | 0.63 | 1.44 | 1.03
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| truenull.json | 1.00 | 1.01 |
1.09 | 1.00 | **0.56** | 0.95
| 0.87 | 1.00 | 0.86
|
+| truenull.json | 1.00 | 0.99 |
1.00 | 1.00 | 0.58 |
**0.39** | 0.84 | 0.98 | 0.87
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| tweet.json | 1.00 | 1.00 |
0.98 | 0.97 | 0.67 |
**0.64** | 0.86 | 1.21 | 1.08
|
+| tweet.json | 1.00 | 1.02 |
0.99 | 0.98 | 0.66 |
**0.44** | 0.84 | 1.14 | 1.03
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| twitter.json | 1.00 | 1.00 |
0.95 | 0.96 | 0.67 |
**0.62** | 0.99 | 1.04 | 0.99
|
+| twitter.json | 1.00 | 1.00 |
0.99 | 0.99 | 0.65 |
**0.42** | 0.86 | 1.01 | 1.00
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| overall | 1.00 | 1.04 |
0.89 | 0.84 | 0.79 |
**0.69** | 0.84 | 1.13 | 0.93
|
+| overall | 1.00 | 1.05 |
0.85 | 0.90 | 0.80 |
**0.53** | 0.83 | 1.08 | 0.97
|
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
ASCII vs UTF-8 Serialization
@@ -91,22 +91,22 @@
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
| serialize | ``rj ascii``\ [15]_ | ``rj utf8``\ [16]_ |
``uj ascii``\ [17]_ | ``uj utf8``\ [18]_ | ``sj ascii``\ [19]_ | ``sj
utf8``\ [20]_ | ``json ascii``\ [21]_ | ``json utf8``\ [22]_ |
+=========================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+
-| Long ASCII string | 1.00 | 0.40 |
**0.22** | 0.40 | 0.62 |
0.75 | 0.47 | 1.13 |
+| Long ASCII string | 1.00 | 0.46 |
**0.25** | 0.41 | 0.63 |
0.93 | 0.57 | 1.49 |
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| Long Unicode string | 1.00 | **0.57** |
0.67 | 0.62 | 0.86 |
0.75 | 0.74 | 0.64 |
+| Long Unicode string | 1.00 | 0.62 |
0.63 | **0.58** | 0.71 |
0.70 | 0.80 | 0.66 |
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
-| overall | 1.00 | **0.51** |
0.52 | 0.55 | 0.78 |
0.75 | 0.65 | 0.80 |
+| overall | 1.00 | 0.57 |
**0.51** | 0.53 | 0.69 |
0.78 | 0.73 | 0.92 |
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
.. [1] ``rapidjson.dumps()``
.. [2] ``rapidjson.Encoder()``
.. [3] ``rapidjson.dumps(number_mode=NM_NATIVE)``
.. [4] ``rapidjson.Encoder(number_mode=NM_NATIVE)``
-.. [5] `simdjson 4.0.0 <https://pypi.org/project/pysimdjson/4.0.0/>`__
-.. [6] `orjson 3.5.3 <https://pypi.org/project/orjson/3.5.3/>`__
-.. [7] `ujson 4.0.2 <https://pypi.org/project/ujson/4.0.2/>`__
-.. [8] `simplejson 3.17.2 <https://pypi.org/pypi/simplejson/3.17.2>`__
-.. [9] Python 3.9.2 standard library ``json``
+.. [5] `simdjson 5.0.1 <https://pypi.org/project/pysimdjson/5.0.1/>`__
+.. [6] `orjson 3.7.6 <https://pypi.org/project/orjson/3.7.6/>`__
+.. [7] `ujson 5.4.0 <https://pypi.org/project/ujson/5.4.0/>`__
+.. [8] `simplejson 3.17.6 <https://pypi.org/pypi/simplejson/3.17.6>`__
+.. [9] Python 3.10.5 standard library ``json``
.. [10] ``rapidjson.loads()``
.. [11] ``rapidjson.Decoder()``
.. [12] ``rapidjson.loads(number_mode=NM_NATIVE)``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/docs/conf.py
new/python-rapidjson-1.8/docs/conf.py
--- old/python-rapidjson-1.5/docs/conf.py 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/docs/conf.py 2022-07-07 07:21:46.000000000
+0200
@@ -46,7 +46,7 @@
# General information about the project.
project = 'python-rapidjson'
-copyright = '2016???2020, Lele Gaifax'
+copyright = '2016???2022, Lele Gaifax'
author = 'Lele Gaifax'
# The version info for the project you're documenting, acts as replacement for
@@ -63,7 +63,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
-language = None
+language = 'en'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/docs/dumps.rst
new/python-rapidjson-1.8/docs/dumps.rst
--- old/python-rapidjson-1.5/docs/dumps.rst 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/docs/dumps.rst 2022-07-07 07:21:46.000000000
+0200
@@ -2,7 +2,7 @@
.. :Project: python-rapidjson -- dumps function documentation
.. :Author: Lele Gaifax <[email protected]>
.. :License: MIT License
-.. :Copyright: ?? 2016, 2017, 2018, 2019, 2020 Lele Gaifax
+.. :Copyright: ?? 2016, 2017, 2018, 2019, 2020, 2022 Lele Gaifax
..
==================
@@ -16,10 +16,10 @@
from rapidjson import (dumps, loads, BM_NONE, BM_UTF8, DM_NONE, DM_ISO8601,
DM_UNIX_TIME, DM_ONLY_SECONDS, DM_IGNORE_TZ,
DM_NAIVE_IS_UTC,
DM_SHIFT_TO_UTC, IM_ANY_ITERABLE, IM_ONLY_LISTS,
MM_ANY_MAPPING,
- MM_ONLY_DICTS, MM_COERCE_KEYS_TO_STRINGS, NM_NATIVE,
NM_DECIMAL,
- NM_NAN, PM_NONE, PM_COMMENTS, PM_TRAILING_COMMAS,
UM_NONE,
- UM_CANONICAL, UM_HEX, WM_COMPACT, WM_PRETTY,
- WM_SINGLE_LINE_ARRAY)
+ MM_ONLY_DICTS, MM_COERCE_KEYS_TO_STRINGS,
MM_SORT_KEYS,
+ NM_NATIVE, NM_DECIMAL, NM_NAN, PM_NONE, PM_COMMENTS,
+ PM_TRAILING_COMMAS, UM_NONE, UM_CANONICAL, UM_HEX,
WM_COMPACT,
+ WM_PRETTY, WM_SINGLE_LINE_ARRAY)
.. function:: dumps(obj, *, skipkeys=False, ensure_ascii=True,
write_mode=WM_COMPACT, \
indent=4, default=None, sort_keys=False, number_mode=None,
\
@@ -215,8 +215,8 @@
... else:
... raise ValueError('%r is not JSON serializable' % obj)
...
- >>> dumps(point, default=point_jsonifier) # doctest: +SKIP
- '{"y":2,"x":1}'
+ >>> dumps(point, default=point_jsonifier)
+ '{"x":1,"y":2}'
.. _sort-keys:
@@ -227,12 +227,28 @@
.. doctest::
- >>> dumps(point, default=point_jsonifier, sort_keys=True)
- '{"x":1,"y":2}'
+ >>> data = {'a': 'A', 'c': 'C', 'i': 'I', 'd': 'D'}
+ >>> dumps(data, sort_keys=True)
+ '{"a":"A","c":"C","d":"D","i":"I"}'
.. note:: `sort_keys` is a backward compatible alias of new ``MM_SORT_KEYS``
:ref:`mapping mode <mapping_mode>`.
+ .. doctest::
+
+ >>> dumps(data, mapping_mode=MM_SORT_KEYS)
+ '{"a":"A","c":"C","d":"D","i":"I"}'
+
+ The default setting, on modern snakes (that is, on `Python >= 3.7`__),
preserves
+ original dictionary insertion order:
+
+ .. doctest::
+
+ >>> dumps(data)
+ '{"a":"A","c":"C","i":"I","d":"D"}'
+
+ __ https://mail.python.org/pipermail/python-dev/2017-December/151283.html
+
.. _dumps-number-mode:
.. rubric:: `number_mode`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/rapidjson.cpp
new/python-rapidjson-1.8/rapidjson.cpp
--- old/python-rapidjson-1.5/rapidjson.cpp 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/rapidjson.cpp 2022-07-07 07:21:46.000000000
+0200
@@ -3,7 +3,7 @@
// :Author: Ken Robbins <[email protected]>
// :License: MIT License
// :Copyright: ?? 2015 Ken Robbins
-// :Copyright: ?? 2015, 2016, 2017, 2018, 2019, 2020, 2021 Lele Gaifax
+// :Copyright: ?? 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Lele Gaifax
//
#include <locale.h>
@@ -1147,10 +1147,11 @@
rc = PyDict_SetItem(current.object, key, replacement);
else
rc = PyObject_SetItem(current.object, key, replacement);
+
Py_DECREF(key);
+ Py_DECREF(replacement);
if (rc == -1) {
- Py_DECREF(replacement);
return false;
}
} else {
@@ -1159,6 +1160,9 @@
Py_ssize_t listLen = PyList_GET_SIZE(current.object);
int rc = PyList_SetItem(current.object, listLen - 1,
replacement);
+ // NB: PyList_SetItem() steals a reference on the replacement,
so it must
+ // not be DECREFed when the operation succeeds
+
if (rc == -1) {
Py_DECREF(replacement);
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/requirements-test.txt
new/python-rapidjson-1.8/requirements-test.txt
--- old/python-rapidjson-1.5/requirements-test.txt 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/requirements-test.txt 2022-07-07
07:21:46.000000000 +0200
@@ -4,9 +4,9 @@
# :License: MIT License
# :Copyright: ?? 2015 John Anderson
# :Copyright: ?? 2015 Ken Robbins
-# :Copyright: ?? 2015, 2017, 2018, 2021 Lele Gaifax
+# :Copyright: ?? 2015, 2017, 2018, 2021, 2022 Lele Gaifax
#
-pytest==6.2.4
-pytz==2021.1
-sphinx==4.0.2
+pytest==7.1.2
+pytz==2022.1
+sphinx==5.0.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/requirements.txt
new/python-rapidjson-1.8/requirements.txt
--- old/python-rapidjson-1.5/requirements.txt 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/requirements.txt 2022-07-07 07:21:46.000000000
+0200
@@ -2,21 +2,21 @@
# :Project: python-rapidjson -- Development requirements
# :Author: Lele Gaifax <[email protected]>
# :License: MIT License
-# :Copyright: ?? 2017, 2018, 2019, 2020, 2021 Lele Gaifax
+# :Copyright: ?? 2017, 2018, 2019, 2020, 2021, 2022 Lele Gaifax
#
-r requirements-test.txt
# Needed by make release
metapensiero.tool.bump-version==1.3
-readme-renderer==24.0
-twine==1.13.0
+readme-renderer==35.0
+twine==4.0.1
# Needed by make benchmarks-*
-pytest-benchmark==3.2.2
+pytest-benchmark==3.4.1
# Keep in sync with benchmarks/tablize.py versions
-pysimdjson==4.0.0
-orjson==3.5.3
-simplejson==3.17.2
-ujson==4.0.2
+pysimdjson==5.0.1
+orjson==3.7.6
+simplejson==3.17.6
+ujson==5.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/setup.py
new/python-rapidjson-1.8/setup.py
--- old/python-rapidjson-1.5/setup.py 2021-10-16 10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/setup.py 2022-07-07 07:21:46.000000000 +0200
@@ -3,7 +3,7 @@
# :Author: Ken Robbins <[email protected]>
# :License: MIT License
# :Copyright: ?? 2015 Ken Robbins
-# :Copyright: ?? 2016, 2017, 2018, 2019, 2020, 2021 Lele Gaifax
+# :Copyright: ?? 2016, 2017, 2018, 2019, 2020, 2021, 2022 Lele Gaifax
#
import os.path
@@ -75,9 +75,11 @@
sysconfig.get_config_vars()[varname] = value
# Add -pedantic, so we get a warning when using non-standard features, and
- # -Wno-long-long to pacify old gcc (or Apple's hybrids) that treat "long
- # long" as an error under C++ (see issue #69)
- extension_options['extra_compile_args'] = ['-pedantic', '-Wno-long-long']
+ # -Wno-long-long to pacify old gcc (or Apple's hybrids) that treat "long
long" as an
+ # error under C++ (see issue #69). C++11 is required since commit
+ #
https://github.com/Tencent/rapidjson/commit/9965ab37f6cfae3d58a0a6e34c76112866ace0b1
+ extension_options['extra_compile_args'] = [
+ '-pedantic', '-Wno-long-long', '-std=c++11']
# Up to Python 3.7, some structures use "char*" instead of "const char*",
# and ISO C++ forbids assigning string literal constants
@@ -105,7 +107,6 @@
'Programming Language :: C++',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/tests/test_circular.py
new/python-rapidjson-1.8/tests/test_circular.py
--- old/python-rapidjson-1.5/tests/test_circular.py 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/tests/test_circular.py 2022-07-07
07:21:46.000000000 +0200
@@ -54,7 +54,15 @@
dumps(root)
rl = sys.getrecursionlimit()
- sys.setrecursionlimit(500)
+
+ if hasattr(sys, "pyston_version_info"):
+ # In Pyston setrecursionlimit() sets a lower bound on the number of
frames,
+ # not an exact count. So set the limit lower:
+ sys.setrecursionlimit(100)
+ else:
+ # Otherwise set it to the exact value:
+ sys.setrecursionlimit(500)
+
try:
with pytest.raises(expected_exception):
dumps(root)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/tests/test_memory_leaks.py
new/python-rapidjson-1.8/tests/test_memory_leaks.py
--- old/python-rapidjson-1.5/tests/test_memory_leaks.py 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/tests/test_memory_leaks.py 2022-07-07
07:21:46.000000000 +0200
@@ -9,11 +9,12 @@
import io
import datetime
import gc
-import tracemalloc
import pytest
import rapidjson as rj
+tracemalloc = pytest.importorskip("tracemalloc")
+
def object_hook(td):
if '__td__' in td:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/tests/test_refs_count.py
new/python-rapidjson-1.8/tests/test_refs_count.py
--- old/python-rapidjson-1.5/tests/test_refs_count.py 2021-10-16
10:51:48.000000000 +0200
+++ new/python-rapidjson-1.8/tests/test_refs_count.py 2022-07-07
07:21:46.000000000 +0200
@@ -2,7 +2,7 @@
# :Project: python-rapidjson -- Refs leaks tests
# :Author: Lele Gaifax <[email protected]>
# :License: MIT License
-# :Copyright: ?? 2017, 2018, 2020 Lele Gaifax
+# :Copyright: ?? 2017, 2018, 2020, 2022 Lele Gaifax
#
# NB: this is a simplicistic test that uses sys.gettotalrefcount(), available
@@ -197,3 +197,24 @@
del _
rc1 = sys.gettotalrefcount()
assert (rc1 - rc0) < THRESHOLD
+
+
+def test_endarray_leak():
+ # See issue #160
+ value = '{"v": [1, 2]}'
+
+ class Decoder1(rj.Decoder):
+ pass
+
+ class Decoder2(rj.Decoder):
+ def end_array(self, seq):
+ return list(seq)
+
+ j1 = rj.loads(value)
+ assert sys.getrefcount(j1['v']) == 3
+
+ j2 = Decoder1()(value)
+ assert sys.getrefcount(j2['v']) == 3
+
+ j3 = Decoder2()(value)
+ assert sys.getrefcount(j3['v']) == 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-rapidjson-1.5/version.txt
new/python-rapidjson-1.8/version.txt
--- old/python-rapidjson-1.5/version.txt 2021-10-16 10:51:48.000000000
+0200
+++ new/python-rapidjson-1.8/version.txt 2022-07-07 07:21:46.000000000
+0200
@@ -1 +1 @@
-1.5
\ No newline at end of file
+1.8
\ No newline at end of file