python-rapidjson 1.17__tar.gz → 1.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python-rapidjson-1.17 → python-rapidjson-1.18}/CHANGES.rst +8 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/LICENSE +1 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/MANIFEST.in +1 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/PKG-INFO +9 -1
- {python-rapidjson-1.17 → python-rapidjson-1.18}/benchmarks/conftest.py +30 -2
- {python-rapidjson-1.17 → python-rapidjson-1.18}/benchmarks/tablize.py +37 -25
- python-rapidjson-1.18/docs/benchmarks-tables.rst +123 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/changes.rst +8 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/decoder.rst +3 -3
- {python-rapidjson-1.17 → python-rapidjson-1.18}/python_rapidjson.egg-info/PKG-INFO +9 -1
- {python-rapidjson-1.17 → python-rapidjson-1.18}/python_rapidjson.egg-info/SOURCES.txt +2 -1
- python-rapidjson-1.18/python_rapidjson.egg-info/top_level.txt +2 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson.cpp +8 -2
- {python-rapidjson-1.17 → python-rapidjson-1.18}/requirements-test.txt +1 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/requirements.txt +2 -3
- {python-rapidjson-1.17 → python-rapidjson-1.18}/setup.py +4 -0
- python-rapidjson-1.18/typings/rapidjson/__init__.pyi +232 -0
- python-rapidjson-1.18/version.txt +1 -0
- python-rapidjson-1.17/docs/benchmarks-tables.rst +0 -121
- python-rapidjson-1.17/python_rapidjson.egg-info/top_level.txt +0 -1
- python-rapidjson-1.17/version.txt +0 -1
- {python-rapidjson-1.17 → python-rapidjson-1.18}/.dir-locals.el +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/README.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/benchmarks/test_benchmark.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/Makefile +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/api.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/benchmarks.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/conf.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/dump.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/dumps.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/encoder.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/index.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/load.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/loads.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/quickstart.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/rawjson.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/docs/validator.rst +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/python_rapidjson.egg-info/dependency_links.txt +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/allocators.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/cursorstreamwrapper.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/document.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/encodedstream.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/encodings.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/error/en.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/error/error.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/filereadstream.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/filewritestream.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/fwd.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/biginteger.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/clzll.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/diyfp.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/dtoa.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/ieee754.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/itoa.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/meta.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/pow10.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/regex.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/stack.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/strfunc.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/strtod.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/swap.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/istreamwrapper.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/memorybuffer.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/memorystream.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/msinttypes/inttypes.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/msinttypes/stdint.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/ostreamwrapper.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/pointer.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/prettywriter.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/rapidjson.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/reader.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/schema.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/stream.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/stringbuffer.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/uri.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/writer.h +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/license.txt +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/readme.md +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson_exact_version.txt +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/setup.cfg +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/conftest.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_base_types.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_circular.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_dict_subclass.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_enum.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_float.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_memory_leaks.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_params.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_pass1.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_pass2.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_pass3.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_rawjson.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_refs_count.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_streams.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_unicode.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tests/test_validator.py +0 -0
- {python-rapidjson-1.17 → python-rapidjson-1.18}/tox.ini +0 -0
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
Changes
|
|
2
2
|
-------
|
|
3
3
|
|
|
4
|
+
1.18 (2024-06-29)
|
|
5
|
+
~~~~~~~~~~~~~~~~~
|
|
6
|
+
|
|
7
|
+
* Expose PEP-484 typing stubs, thanks to Rodion Kosianenko and GoodWasHere (`PR #204`__)
|
|
8
|
+
|
|
9
|
+
__ https://github.com/python-rapidjson/python-rapidjson/pull/204
|
|
10
|
+
|
|
11
|
+
|
|
4
12
|
1.17 (2024-05-18)
|
|
5
13
|
~~~~~~~~~~~~~~~~~
|
|
6
14
|
|
|
@@ -3,6 +3,7 @@ python-rapidjson is licensed under the MIT license.
|
|
|
3
3
|
The MIT License (MIT)
|
|
4
4
|
|
|
5
5
|
Copyright (c) 2015, 2016, 2017 Ken Robbins
|
|
6
|
+
Copyright (c) 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Lele Gaifax
|
|
6
7
|
|
|
7
8
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
9
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-rapidjson
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.18
|
|
4
4
|
Summary: Python wrapper around rapidjson
|
|
5
5
|
Home-page: https://github.com/python-rapidjson/python-rapidjson
|
|
6
6
|
Author: Ken Robbins
|
|
@@ -155,6 +155,14 @@ __ https://python-rapidjson.readthedocs.io/en/latest/quickstart.html#incompatibi
|
|
|
155
155
|
Changes
|
|
156
156
|
-------
|
|
157
157
|
|
|
158
|
+
1.18 (2024-06-29)
|
|
159
|
+
~~~~~~~~~~~~~~~~~
|
|
160
|
+
|
|
161
|
+
* Expose PEP-484 typing stubs, thanks to Rodion Kosianenko and GoodWasHere (`PR #204`__)
|
|
162
|
+
|
|
163
|
+
__ https://github.com/python-rapidjson/python-rapidjson/pull/204
|
|
164
|
+
|
|
165
|
+
|
|
158
166
|
1.17 (2024-05-18)
|
|
159
167
|
~~~~~~~~~~~~~~~~~
|
|
160
168
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# :Project: python-rapidjson -- Benchmarks specific pytest configuration
|
|
3
3
|
# :Author: Lele Gaifax <lele@metapensiero.it>
|
|
4
4
|
# :License: MIT License
|
|
5
|
-
# :Copyright: © 2016, 2017, 2018, 2020 Lele Gaifax
|
|
5
|
+
# :Copyright: © 2016, 2017, 2018, 2020, 2024 Lele Gaifax
|
|
6
6
|
#
|
|
7
7
|
|
|
8
8
|
from collections import namedtuple
|
|
@@ -56,6 +56,32 @@ contenders.append(Contender('rapidjson_nn_c',
|
|
|
56
56
|
rj.Encoder(number_mode=rj.NM_NATIVE),
|
|
57
57
|
rj.Decoder(number_mode=rj.NM_NATIVE)))
|
|
58
58
|
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class DecoderPython(rj.Decoder):
|
|
62
|
+
def end_array(self, a):
|
|
63
|
+
return a
|
|
64
|
+
|
|
65
|
+
def start_object(self):
|
|
66
|
+
return {}
|
|
67
|
+
|
|
68
|
+
def end_object(self, d):
|
|
69
|
+
return d
|
|
70
|
+
|
|
71
|
+
def string(self, s):
|
|
72
|
+
return s
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class EncoderPython(rj.Encoder):
|
|
76
|
+
def default(self, obj):
|
|
77
|
+
return repr(obj)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
contenders.append(Contender('rapidjson_p',
|
|
81
|
+
EncoderPython(),
|
|
82
|
+
DecoderPython()))
|
|
83
|
+
|
|
84
|
+
|
|
59
85
|
numbers_contenders = [
|
|
60
86
|
Contender('Wide numbers', rj.dumps, rj.loads),
|
|
61
87
|
Contender('Native numbers',
|
|
@@ -147,7 +173,9 @@ def pytest_generate_tests(metafunc):
|
|
|
147
173
|
if metafunc.config.option.compare_other_engines:
|
|
148
174
|
metafunc.parametrize('contender', contenders, ids=attrgetter('name'))
|
|
149
175
|
else:
|
|
150
|
-
metafunc.parametrize('contender',
|
|
176
|
+
metafunc.parametrize('contender', [c for c in contenders
|
|
177
|
+
if c.name.startswith('rapidjson')],
|
|
178
|
+
ids=attrgetter('name'))
|
|
151
179
|
|
|
152
180
|
if 'datetimes_loads_contender' in metafunc.fixturenames:
|
|
153
181
|
metafunc.parametrize('datetimes_loads_contender',
|
|
@@ -70,7 +70,7 @@ class Comparison:
|
|
|
70
70
|
cells = ['=' * (width+2) for width in widths]
|
|
71
71
|
headseprow = '+' + '+'.join(cells) + '+'
|
|
72
72
|
|
|
73
|
-
cells = [' {
|
|
73
|
+
cells = [f' {{:^{width}}} ' for width in widths]
|
|
74
74
|
rowfmt = '|' + '|'.join(cells) + '|'
|
|
75
75
|
|
|
76
76
|
print(seprow)
|
|
@@ -95,6 +95,7 @@ def dumps_and_loads(benchmarks):
|
|
|
95
95
|
'rapidjson_c',
|
|
96
96
|
'rapidjson_nn_f',
|
|
97
97
|
'rapidjson_nn_c',
|
|
98
|
+
'rapidjson_p',
|
|
98
99
|
'simdjson',
|
|
99
100
|
'orjson',
|
|
100
101
|
'ujson',
|
|
@@ -104,15 +105,17 @@ def dumps_and_loads(benchmarks):
|
|
|
104
105
|
r'``Encoder()``\ [2]_',
|
|
105
106
|
r'``dumps(n)``\ [3]_',
|
|
106
107
|
r'``Encoder(n)``\ [4]_',
|
|
107
|
-
r'
|
|
108
|
-
r'
|
|
109
|
-
r'
|
|
110
|
-
r'
|
|
111
|
-
r'
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
r'``
|
|
115
|
-
r'``
|
|
108
|
+
r'``PyEncoder()``\ [5]_',
|
|
109
|
+
r'simdjson\ [6]_',
|
|
110
|
+
r'orjson\ [7]_',
|
|
111
|
+
r'ujson\ [8]_',
|
|
112
|
+
r'simplejson\ [9]_',
|
|
113
|
+
r'stdlib\ [10]_')
|
|
114
|
+
d_headers = (r'``loads()``\ [11]_',
|
|
115
|
+
r'``Decoder()``\ [12]_',
|
|
116
|
+
r'``loads(n)``\ [13]_',
|
|
117
|
+
r'``Decoder(n)``\ [14]_',
|
|
118
|
+
r'``PyDecoder()``\ [15]_',
|
|
116
119
|
r'simdjson',
|
|
117
120
|
r'orjson',
|
|
118
121
|
r'ujson',
|
|
@@ -121,20 +124,29 @@ def dumps_and_loads(benchmarks):
|
|
|
121
124
|
|
|
122
125
|
assert len(contenders) == len(s_headers) == len(d_headers)
|
|
123
126
|
|
|
127
|
+
from csimdjson import VERSION as simdjv
|
|
128
|
+
from orjson import __version__ as orjv
|
|
129
|
+
from simplejson import __version__ as sjv
|
|
130
|
+
from ujson import __version__ as ujv
|
|
131
|
+
|
|
132
|
+
pyv = '%d.%d.%d' % sys.version_info[:3]
|
|
133
|
+
|
|
124
134
|
footnotes = [
|
|
125
135
|
'.. [1] ``rapidjson.dumps()``',
|
|
126
136
|
'.. [2] ``rapidjson.Encoder()``',
|
|
127
137
|
'.. [3] ``rapidjson.dumps(number_mode=NM_NATIVE)``',
|
|
128
138
|
'.. [4] ``rapidjson.Encoder(number_mode=NM_NATIVE)``',
|
|
129
|
-
'.. [5]
|
|
130
|
-
'.. [6] `
|
|
131
|
-
'.. [7] `
|
|
132
|
-
'.. [8] `
|
|
133
|
-
'.. [9]
|
|
134
|
-
'.. [10] ``
|
|
135
|
-
'.. [11] ``rapidjson.
|
|
136
|
-
'.. [12] ``rapidjson.
|
|
137
|
-
'.. [13] ``rapidjson.
|
|
139
|
+
'.. [5] ``rapidjson.Encoder()`` subclassed in Python with *no-op* hook methods',
|
|
140
|
+
f'.. [6] `simdjson {simdjv} <https://pypi.org/project/pysimdjson/>`__',
|
|
141
|
+
f'.. [7] `orjson {orjv} <https://pypi.org/project/orjson/{orjv}/>`__',
|
|
142
|
+
f'.. [8] `ujson {ujv} <https://pypi.org/project/ujson/{ujv}/>`__',
|
|
143
|
+
f'.. [9] `simplejson {sjv} <https://pypi.org/pypi/simplejson/{sjv}>`__',
|
|
144
|
+
f'.. [10] Python {pyv} standard library ``json``',
|
|
145
|
+
'.. [11] ``rapidjson.loads()``',
|
|
146
|
+
'.. [12] ``rapidjson.Decoder()``',
|
|
147
|
+
'.. [13] ``rapidjson.loads(number_mode=NM_NATIVE)``',
|
|
148
|
+
'.. [14] ``rapidjson.Decoder(number_mode=NM_NATIVE)``',
|
|
149
|
+
'.. [15] ``rapidjson.Decoder() subclassed in Python with *no-op* hook methods``']
|
|
138
150
|
|
|
139
151
|
comparison = Comparison(contenders, benchmarks)
|
|
140
152
|
|
|
@@ -157,17 +169,17 @@ def ascii_vs_utf8(benchmarks):
|
|
|
157
169
|
('ujson', 'uj'),
|
|
158
170
|
('simplejson', 'sj'),
|
|
159
171
|
('stdlib json', 'json'))
|
|
160
|
-
contenders = ['
|
|
161
|
-
i =
|
|
172
|
+
contenders = [f'{e[0]} {k}' for e in engines for k in ('ascii', 'utf8')]
|
|
173
|
+
i = 15
|
|
162
174
|
s_headers = []
|
|
163
175
|
footnotes = []
|
|
164
176
|
for e in engines:
|
|
165
177
|
i += 1
|
|
166
|
-
s_headers.append(
|
|
167
|
-
footnotes.append('.. [
|
|
178
|
+
s_headers.append(rf'``{e[1]} ascii``\ [{i}]_')
|
|
179
|
+
footnotes.append(f'.. [{i}] ``{e[0]}.dumps(ensure_ascii=True)``')
|
|
168
180
|
i += 1
|
|
169
|
-
s_headers.append(
|
|
170
|
-
footnotes.append('.. [
|
|
181
|
+
s_headers.append(rf'``{e[1]} utf8``\ [{i}]_')
|
|
182
|
+
footnotes.append(f'.. [{i}] ``{e[0]}.dumps(ensure_ascii=False)``')
|
|
171
183
|
|
|
172
184
|
comparison = Comparison(contenders, benchmarks)
|
|
173
185
|
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
|
|
2
|
+
Serialization
|
|
3
|
+
~~~~~~~~~~~~~
|
|
4
|
+
|
|
5
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
6
|
+
| serialize | ``dumps()``\ [1]_ | ``Encoder()``\ [2]_ | ``dumps(n)``\ [3]_ | ``Encoder(n)``\ [4]_ | ``PyEncoder()``\ [5]_ | simdjson\ [6]_ | orjson\ [7]_ | ujson\ [8]_ | simplejson\ [9]_ | stdlib\ [10]_ |
|
|
7
|
+
+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+
|
|
8
|
+
| 100 arrays dict | 1.00 | 1.00 | 0.73 | 0.73 | 0.99 | 2.21 | **0.17** | 0.85 | 5.93 | 2.31 |
|
|
9
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
10
|
+
| 100 dicts array | 1.00 | 0.99 | 0.77 | 0.74 | 1.01 | 2.27 | **0.22** | 0.84 | 6.82 | 2.27 |
|
|
11
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
12
|
+
| 256 Trues array | 1.00 | 1.01 | 1.18 | 1.00 | 1.07 | 2.62 | **0.36** | 1.56 | 2.95 | 2.60 |
|
|
13
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
14
|
+
| 256 ascii array | 1.00 | 1.00 | 1.01 | 1.00 | 1.00 | 0.90 | **0.09** | 0.47 | 1.05 | 0.90 |
|
|
15
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
16
|
+
| 256 doubles array | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0.91 | **0.04** | 0.22 | 0.95 | 0.92 |
|
|
17
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
18
|
+
| 256 unicode array | 1.00 | 0.80 | 0.79 | 0.82 | 0.80 | 0.68 | **0.02** | 0.52 | 0.66 | 0.68 |
|
|
19
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
20
|
+
| apache.json | 1.00 | 1.00 | 1.00 | 1.00 | 1.01 | 1.70 | **0.19** | 1.02 | 3.29 | 1.68 |
|
|
21
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
22
|
+
| canada.json | 1.00 | 1.00 | 0.98 | 0.99 | 1.00 | 1.04 | **0.06** | 0.27 | 1.81 | 1.05 |
|
|
23
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
24
|
+
| complex object | 1.00 | 1.00 | 0.89 | 0.88 | 1.00 | 1.55 | **0.17** | 0.66 | 2.68 | 1.54 |
|
|
25
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
26
|
+
| composite object | 1.00 | 0.99 | 0.68 | 0.64 | 0.98 | 1.70 | **0.21** | 0.83 | 2.48 | 1.72 |
|
|
27
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
28
|
+
| ctm.json | 1.00 | 1.00 | 0.75 | 0.75 | 1.00 | 2.27 | **0.21** | 1.11 | 6.56 | 2.27 |
|
|
29
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
30
|
+
| github.json | 1.00 | 1.00 | 0.97 | 0.96 | 1.00 | 1.38 | **0.16** | 0.86 | 2.10 | 1.39 |
|
|
31
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
32
|
+
| instruments.json | 1.00 | 1.00 | 0.74 | 0.74 | 1.00 | 1.81 | **0.20** | 0.90 | 2.86 | 1.81 |
|
|
33
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
34
|
+
| mesh.json | 1.00 | 1.00 | 0.89 | 0.89 | 1.00 | 0.94 | **0.10** | 0.28 | 1.19 | 0.94 |
|
|
35
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
36
|
+
| truenull.json | 1.00 | 1.02 | 1.06 | 1.03 | 1.03 | 2.13 | **0.28** | 1.76 | 2.12 | 2.21 |
|
|
37
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
38
|
+
| tweet.json | 1.00 | 1.00 | 0.99 | 0.93 | 1.00 | 1.70 | **0.20** | 0.91 | 2.70 | 1.69 |
|
|
39
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
40
|
+
| twitter.json | 1.00 | 1.00 | 0.95 | 0.95 | 1.00 | 1.46 | **0.18** | 0.94 | 2.02 | 1.46 |
|
|
41
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
42
|
+
| overall | 1.00 | 1.00 | 0.80 | 0.80 | 1.00 | 1.85 | **0.14** | 0.68 | 4.63 | 1.92 |
|
|
43
|
+
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
44
|
+
|
|
45
|
+
Deserialization
|
|
46
|
+
~~~~~~~~~~~~~~~
|
|
47
|
+
|
|
48
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
49
|
+
| deserialize | ``loads()``\ [11]_ | ``Decoder()``\ [12]_ | ``loads(n)``\ [13]_ | ``Decoder(n)``\ [14]_ | ``PyDecoder()``\ [15]_ | simdjson | orjson | ujson | simplejson | stdlib |
|
|
50
|
+
+=======================+========================+========================+========================+========================+========================+========================+========================+========================+========================+========================+
|
|
51
|
+
| 100 arrays dict | 1.00 | 1.01 | 0.98 | 0.93 | 1.59 | 0.86 | **0.56** | 0.85 | 1.20 | 0.94 |
|
|
52
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
53
|
+
| 100 dicts array | 1.00 | 1.00 | 0.87 | 0.86 | 1.58 | 0.62 | **0.36** | 0.69 | 1.35 | 1.00 |
|
|
54
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
55
|
+
| 256 Trues array | 1.00 | 1.02 | 1.08 | 0.98 | 1.14 | 0.93 | **0.42** | 0.96 | 1.53 | 1.37 |
|
|
56
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
57
|
+
| 256 ascii array | 1.00 | 1.00 | 0.99 | 0.99 | 1.50 | 0.50 | **0.33** | 0.85 | 0.86 | 0.77 |
|
|
58
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
59
|
+
| 256 doubles array | 1.00 | 1.00 | 0.26 | 0.26 | 1.01 | 0.21 | **0.16** | 0.61 | 1.08 | 1.03 |
|
|
60
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
61
|
+
| 256 unicode array | 1.00 | 1.00 | 1.00 | 1.00 | 1.07 | 1.12 | **0.41** | 0.82 | 4.06 | 1.45 |
|
|
62
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
63
|
+
| apache.json | 1.00 | 1.00 | 1.01 | 1.01 | 1.57 | 0.68 | **0.44** | 0.79 | 0.84 | 0.82 |
|
|
64
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
65
|
+
| canada.json | 1.00 | 1.00 | 0.33 | 0.33 | 1.12 | 0.29 | **0.25** | 0.54 | 0.97 | 0.96 |
|
|
66
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
67
|
+
| complex object | 1.00 | 1.00 | 0.84 | 0.83 | 1.31 | 0.68 | **0.35** | 0.78 | 1.15 | 0.96 |
|
|
68
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
69
|
+
| composite object | 1.00 | 1.00 | 0.84 | 0.83 | 1.34 | 0.61 | **0.39** | 0.59 | 1.45 | 1.07 |
|
|
70
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
71
|
+
| ctm.json | 1.00 | 0.99 | 0.93 | 0.93 | 1.48 | 0.80 | **0.53** | 1.13 | 1.20 | 0.97 |
|
|
72
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
73
|
+
| github.json | 1.00 | 1.00 | 0.99 | 0.98 | 1.37 | 0.66 | **0.39** | 0.77 | 0.91 | 0.82 |
|
|
74
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
75
|
+
| instruments.json | 1.00 | 1.00 | 0.87 | 0.87 | 1.23 | 0.66 | **0.36** | 0.76 | 1.17 | 0.94 |
|
|
76
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
77
|
+
| mesh.json | 1.00 | 1.00 | 0.52 | 0.51 | 1.04 | 0.43 | **0.33** | 0.66 | 1.48 | 1.04 |
|
|
78
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
79
|
+
| truenull.json | 1.00 | 1.01 | 1.01 | 0.99 | 1.01 | 0.58 | **0.34** | 0.87 | 0.99 | 0.95 |
|
|
80
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
81
|
+
| tweet.json | 1.00 | 1.01 | 0.99 | 0.97 | 1.30 | 0.69 | **0.39** | 0.84 | 1.17 | 0.99 |
|
|
82
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
83
|
+
| twitter.json | 1.00 | 1.00 | 0.97 | 0.97 | 1.25 | 0.68 | **0.39** | 0.85 | 0.99 | 0.89 |
|
|
84
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
85
|
+
| overall | 1.00 | 1.01 | 0.91 | 0.87 | 1.54 | 0.80 | **0.53** | 0.82 | 1.19 | 0.94 |
|
|
86
|
+
+-----------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+------------------------+
|
|
87
|
+
|
|
88
|
+
ASCII vs UTF-8 Serialization
|
|
89
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
90
|
+
|
|
91
|
+
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
92
|
+
| serialize | ``rj ascii``\ [16]_ | ``rj utf8``\ [17]_ | ``uj ascii``\ [18]_ | ``uj utf8``\ [19]_ | ``sj ascii``\ [20]_ | ``sj utf8``\ [21]_ | ``json ascii``\ [22]_ | ``json utf8``\ [23]_ |
|
|
93
|
+
+=========================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+
|
|
94
|
+
| Long ASCII string | 1.00 | 0.43 | **0.24** | 0.29 | 0.60 | 1.24 | 0.57 | 1.00 |
|
|
95
|
+
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
96
|
+
| Long Unicode string | 1.00 | 0.57 | 0.64 | **0.47** | 0.72 | 0.62 | 0.76 | 0.48 |
|
|
97
|
+
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
98
|
+
| overall | 1.00 | 0.53 | 0.51 | **0.41** | 0.68 | 0.82 | 0.70 | 0.65 |
|
|
99
|
+
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
100
|
+
|
|
101
|
+
.. [1] ``rapidjson.dumps()``
|
|
102
|
+
.. [2] ``rapidjson.Encoder()``
|
|
103
|
+
.. [3] ``rapidjson.dumps(number_mode=NM_NATIVE)``
|
|
104
|
+
.. [4] ``rapidjson.Encoder(number_mode=NM_NATIVE)``
|
|
105
|
+
.. [5] ``rapidjson.Encoder()`` subclassed in Python with *no-op* hook methods
|
|
106
|
+
.. [6] `simdjson 3.6.4 <https://pypi.org/project/pysimdjson/>`__
|
|
107
|
+
.. [7] `orjson 3.10.5 <https://pypi.org/project/orjson/3.10.5/>`__
|
|
108
|
+
.. [8] `ujson 5.10.0 <https://pypi.org/project/ujson/5.10.0/>`__
|
|
109
|
+
.. [9] `simplejson 3.19.2 <https://pypi.org/pypi/simplejson/3.19.2>`__
|
|
110
|
+
.. [10] Python 3.11.9 standard library ``json``
|
|
111
|
+
.. [11] ``rapidjson.loads()``
|
|
112
|
+
.. [12] ``rapidjson.Decoder()``
|
|
113
|
+
.. [13] ``rapidjson.loads(number_mode=NM_NATIVE)``
|
|
114
|
+
.. [14] ``rapidjson.Decoder(number_mode=NM_NATIVE)``
|
|
115
|
+
.. [15] ``rapidjson.Decoder() subclassed in Python with *no-op* hook methods``
|
|
116
|
+
.. [16] ``rapidjson.dumps(ensure_ascii=True)``
|
|
117
|
+
.. [17] ``rapidjson.dumps(ensure_ascii=False)``
|
|
118
|
+
.. [18] ``ujson.dumps(ensure_ascii=True)``
|
|
119
|
+
.. [19] ``ujson.dumps(ensure_ascii=False)``
|
|
120
|
+
.. [20] ``simplejson.dumps(ensure_ascii=True)``
|
|
121
|
+
.. [21] ``simplejson.dumps(ensure_ascii=False)``
|
|
122
|
+
.. [22] ``stdlib json.dumps(ensure_ascii=True)``
|
|
123
|
+
.. [23] ``stdlib json.dumps(ensure_ascii=False)``
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
Changes
|
|
2
2
|
-------
|
|
3
3
|
|
|
4
|
+
1.18 (2024-06-29)
|
|
5
|
+
~~~~~~~~~~~~~~~~~
|
|
6
|
+
|
|
7
|
+
* Expose PEP-484 typing stubs, thanks to Rodion Kosianenko and GoodWasHere (`PR #204`__)
|
|
8
|
+
|
|
9
|
+
__ https://github.com/python-rapidjson/python-rapidjson/pull/204
|
|
10
|
+
|
|
11
|
+
|
|
4
12
|
1.17 (2024-05-18)
|
|
5
13
|
~~~~~~~~~~~~~~~~~
|
|
6
14
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
.. :Project: python-rapidjson -- Decoder class documentation
|
|
3
3
|
.. :Author: Lele Gaifax <lele@metapensiero.it>
|
|
4
4
|
.. :License: MIT License
|
|
5
|
-
.. :Copyright: © 2017, 2018, 2020, 2021 Lele Gaifax
|
|
5
|
+
.. :Copyright: © 2017, 2018, 2020, 2021, 2024 Lele Gaifax
|
|
6
6
|
..
|
|
7
7
|
|
|
8
8
|
===============
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
|
|
78
78
|
.. method:: end_array(sequence)
|
|
79
79
|
|
|
80
|
-
:param sequence: an instance
|
|
80
|
+
:param sequence: an instance implementing the *mutable sequence* protocol
|
|
81
81
|
:returns: a new value
|
|
82
82
|
|
|
83
83
|
This is called, if implemented, when a *JSON array* has been completely parsed, and
|
|
84
|
-
can be used replace it with an arbitrary different value:
|
|
84
|
+
can be used to replace it with an arbitrary different value:
|
|
85
85
|
|
|
86
86
|
.. doctest::
|
|
87
87
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-rapidjson
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.18
|
|
4
4
|
Summary: Python wrapper around rapidjson
|
|
5
5
|
Home-page: https://github.com/python-rapidjson/python-rapidjson
|
|
6
6
|
Author: Ken Robbins
|
|
@@ -155,6 +155,14 @@ __ https://python-rapidjson.readthedocs.io/en/latest/quickstart.html#incompatibi
|
|
|
155
155
|
Changes
|
|
156
156
|
-------
|
|
157
157
|
|
|
158
|
+
1.18 (2024-06-29)
|
|
159
|
+
~~~~~~~~~~~~~~~~~
|
|
160
|
+
|
|
161
|
+
* Expose PEP-484 typing stubs, thanks to Rodion Kosianenko and GoodWasHere (`PR #204`__)
|
|
162
|
+
|
|
163
|
+
__ https://github.com/python-rapidjson/python-rapidjson/pull/204
|
|
164
|
+
|
|
165
|
+
|
|
158
166
|
1.17 (2024-05-18)
|
|
159
167
|
~~~~~~~~~~~~~~~~~
|
|
160
168
|
|
|
@@ -4032,10 +4032,16 @@ module_exec(PyObject* m)
|
|
|
4032
4032
|
", Lele Gaifax <lele@metapensiero.it>")
|
|
4033
4033
|
|| PyModule_AddStringConstant(m, "__rapidjson_version__",
|
|
4034
4034
|
RAPIDJSON_VERSION_STRING)
|
|
4035
|
-
#ifdef RAPIDJSON_EXACT_VERSION
|
|
4036
4035
|
|| PyModule_AddStringConstant(m, "__rapidjson_exact_version__",
|
|
4037
|
-
|
|
4036
|
+
#ifdef RAPIDJSON_EXACT_VERSION
|
|
4037
|
+
STRINGIFY(RAPIDJSON_EXACT_VERSION)
|
|
4038
|
+
#else
|
|
4039
|
+
// This may happen for several reasons, under CI
|
|
4040
|
+
// test or when the RJ library does not come from
|
|
4041
|
+
// the git submodule
|
|
4042
|
+
"not available"
|
|
4038
4043
|
#endif
|
|
4044
|
+
)
|
|
4039
4045
|
)
|
|
4040
4046
|
return -1;
|
|
4041
4047
|
|
|
@@ -115,5 +115,9 @@ setup(
|
|
|
115
115
|
'Programming Language :: Python',
|
|
116
116
|
],
|
|
117
117
|
ext_modules=[Extension('rapidjson', **extension_options)],
|
|
118
|
+
package_dir={"rapidjson-stubs": "typings/rapidjson"},
|
|
119
|
+
packages=["rapidjson-stubs"],
|
|
120
|
+
package_data={"rapidjson-stubs": ["*.pyi"]},
|
|
121
|
+
include_package_data=True,
|
|
118
122
|
**other_setup_options
|
|
119
123
|
)
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# :Project: python-rapidjson -- PEP-484 typing stubs
|
|
3
|
+
# :Author: Rodion Kosianenko <GoodWasHere@gmail.com>
|
|
4
|
+
# :License: MIT License
|
|
5
|
+
# :Copyright: © 2024 Rodion Kosianenko
|
|
6
|
+
# :Copyright: © 2024 Lele Gaifax
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
import typing as t
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
__rapidjson_exact_version__: str
|
|
13
|
+
__rapidjson_version__: str
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
_JSONType = t.Union[
|
|
17
|
+
str,
|
|
18
|
+
int,
|
|
19
|
+
float,
|
|
20
|
+
bool,
|
|
21
|
+
None,
|
|
22
|
+
t.Dict[str, "_JSONType"],
|
|
23
|
+
t.List["_JSONType"],
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Const types
|
|
28
|
+
_BM_NONE_TYPE = t.Literal[0]
|
|
29
|
+
_BM_UTF8_TYPE = t.Literal[1]
|
|
30
|
+
_DM_IGNORE_TZ_TYPE = t.Literal[32]
|
|
31
|
+
_DM_ISO8601_TYPE = t.Literal[1]
|
|
32
|
+
_DM_NAIVE_IS_UTC_TYPE = t.Literal[64]
|
|
33
|
+
_DM_NONE_TYPE = t.Literal[0]
|
|
34
|
+
_DM_ONLY_SECONDS_TYPE = t.Literal[16]
|
|
35
|
+
_DM_SHIFT_TO_UTC_TYPE = t.Literal[128]
|
|
36
|
+
_DM_UNIX_TIME_TYPE = t.Literal[2]
|
|
37
|
+
_IM_ANY_ITERABLE_TYPE = t.Literal[0]
|
|
38
|
+
_IM_ONLY_LISTS_TYPE = t.Literal[1]
|
|
39
|
+
_MM_ANY_MAPPING_TYPE = t.Literal[0]
|
|
40
|
+
_MM_COERCE_KEYS_TO_STRINGS_TYPE = t.Literal[2]
|
|
41
|
+
_MM_ONLY_DICTS_TYPE = t.Literal[1]
|
|
42
|
+
_MM_SKIP_NON_STRING_KEYS_TYPE = t.Literal[4]
|
|
43
|
+
_MM_SORT_KEYS_TYPE = t.Literal[8]
|
|
44
|
+
_NM_DECIMAL_TYPE = t.Literal[2]
|
|
45
|
+
_NM_NAN_TYPE = t.Literal[1]
|
|
46
|
+
_NM_NATIVE_TYPE = t.Literal[4]
|
|
47
|
+
_NM_NONE_TYPE = t.Literal[0]
|
|
48
|
+
_PM_COMMENTS_TYPE = t.Literal[1]
|
|
49
|
+
_PM_NONE_TYPE = t.Literal[0]
|
|
50
|
+
_PM_TRAILING_COMMAS_TYPE = t.Literal[2]
|
|
51
|
+
_UM_CANONICAL_TYPE = t.Literal[1]
|
|
52
|
+
_UM_HEX_TYPE = t.Literal[2]
|
|
53
|
+
_UM_NONE_TYPE = t.Literal[0]
|
|
54
|
+
_WM_COMPACT_TYPE = t.Literal[0]
|
|
55
|
+
_WM_PRETTY_TYPE = t.Literal[1]
|
|
56
|
+
_WM_SINGLE_LINE_ARRAY_TYPE = t.Literal[2]
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# Const values
|
|
60
|
+
BM_NONE: _BM_NONE_TYPE = 0
|
|
61
|
+
BM_UTF8: _BM_UTF8_TYPE = 1
|
|
62
|
+
DM_IGNORE_TZ: _DM_IGNORE_TZ_TYPE = 32
|
|
63
|
+
DM_ISO8601: _DM_ISO8601_TYPE = 1
|
|
64
|
+
DM_NAIVE_IS_UTC: _DM_NAIVE_IS_UTC_TYPE = 64
|
|
65
|
+
DM_NONE: _DM_NONE_TYPE = 0
|
|
66
|
+
DM_ONLY_SECONDS: _DM_ONLY_SECONDS_TYPE = 16
|
|
67
|
+
DM_SHIFT_TO_UTC: _DM_SHIFT_TO_UTC_TYPE = 128
|
|
68
|
+
DM_UNIX_TIME: _DM_UNIX_TIME_TYPE = 2
|
|
69
|
+
IM_ANY_ITERABLE: _IM_ANY_ITERABLE_TYPE = 0
|
|
70
|
+
IM_ONLY_LISTS: _IM_ONLY_LISTS_TYPE = 1
|
|
71
|
+
MM_ANY_MAPPING: _MM_ANY_MAPPING_TYPE = 0
|
|
72
|
+
MM_COERCE_KEYS_TO_STRINGS: _MM_COERCE_KEYS_TO_STRINGS_TYPE = 2
|
|
73
|
+
MM_ONLY_DICTS: _MM_ONLY_DICTS_TYPE = 1
|
|
74
|
+
MM_SKIP_NON_STRING_KEYS: _MM_SKIP_NON_STRING_KEYS_TYPE = 4
|
|
75
|
+
MM_SORT_KEYS: _MM_SORT_KEYS_TYPE = 8
|
|
76
|
+
NM_DECIMAL: _NM_DECIMAL_TYPE = 2
|
|
77
|
+
NM_NAN: _NM_NAN_TYPE = 1
|
|
78
|
+
NM_NATIVE: _NM_NATIVE_TYPE = 4
|
|
79
|
+
NM_NONE: _NM_NONE_TYPE = 0
|
|
80
|
+
PM_COMMENTS: _PM_COMMENTS_TYPE = 1
|
|
81
|
+
PM_NONE: _PM_NONE_TYPE = 0
|
|
82
|
+
PM_TRAILING_COMMAS: _PM_TRAILING_COMMAS_TYPE = 2
|
|
83
|
+
UM_CANONICAL: _UM_CANONICAL_TYPE = 1
|
|
84
|
+
UM_HEX: _UM_HEX_TYPE = 2
|
|
85
|
+
UM_NONE: _UM_NONE_TYPE = 0
|
|
86
|
+
WM_COMPACT: _WM_COMPACT_TYPE = 0
|
|
87
|
+
WM_PRETTY: _WM_PRETTY_TYPE = 1
|
|
88
|
+
WM_SINGLE_LINE_ARRAY: _WM_SINGLE_LINE_ARRAY_TYPE = 2
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
# Mode types
|
|
92
|
+
_NumberMode = int
|
|
93
|
+
_DatetimeMode = int
|
|
94
|
+
_UUIDMode = t.Literal[_UM_CANONICAL_TYPE, _UM_HEX_TYPE, _UM_NONE_TYPE]
|
|
95
|
+
_ParseMode = int
|
|
96
|
+
_WriteMode = t.Literal[_WM_COMPACT_TYPE, _WM_PRETTY_TYPE, _WM_SINGLE_LINE_ARRAY_TYPE]
|
|
97
|
+
_BytesMode = t.Literal[_BM_NONE_TYPE, _BM_UTF8_TYPE]
|
|
98
|
+
_IterableMode = t.Literal[_IM_ANY_ITERABLE_TYPE, _IM_ONLY_LISTS_TYPE]
|
|
99
|
+
_MappingMode = int
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# Functions
|
|
103
|
+
def dumps(
|
|
104
|
+
obj: t.Any,
|
|
105
|
+
*,
|
|
106
|
+
skipkeys: t.Optional[bool] = False,
|
|
107
|
+
ensure_ascii: t.Optional[bool] = True,
|
|
108
|
+
write_mode: t.Optional[_WriteMode] = WM_COMPACT,
|
|
109
|
+
indent: t.Optional[t.Union[int, str]] = 4,
|
|
110
|
+
default: t.Optional[t.Callable[[t.Any], _JSONType]] = None,
|
|
111
|
+
sort_keys: t.Optional[bool] = False,
|
|
112
|
+
number_mode: t.Optional[_NumberMode] = NM_NAN,
|
|
113
|
+
datetime_mode: t.Optional[_DatetimeMode] = DM_NONE,
|
|
114
|
+
uuid_mode: t.Optional[_UUIDMode] = UM_NONE,
|
|
115
|
+
bytes_mode: t.Optional[_BytesMode] = BM_UTF8,
|
|
116
|
+
iterable_mode: t.Optional[_IterableMode] = IM_ANY_ITERABLE,
|
|
117
|
+
mapping_mode: t.Optional[_MappingMode] = MM_ANY_MAPPING,
|
|
118
|
+
allow_nan: t.Optional[bool] = True,
|
|
119
|
+
) -> str: ...
|
|
120
|
+
def dump(
|
|
121
|
+
obj: t.Any,
|
|
122
|
+
stream: t.IO,
|
|
123
|
+
*,
|
|
124
|
+
skipkeys: t.Optional[bool] = False,
|
|
125
|
+
ensure_ascii: t.Optional[bool] = True,
|
|
126
|
+
write_mode: t.Optional[_WriteMode] = WM_COMPACT,
|
|
127
|
+
indent: t.Optional[t.Union[int, str]] = 4,
|
|
128
|
+
default: t.Optional[t.Callable[[t.Any], _JSONType]] = None,
|
|
129
|
+
sort_keys: t.Optional[bool] = False,
|
|
130
|
+
number_mode: t.Optional[_NumberMode] = NM_NAN,
|
|
131
|
+
datetime_mode: t.Optional[_DatetimeMode] = DM_NONE,
|
|
132
|
+
uuid_mode: t.Optional[_UUIDMode] = UM_NONE,
|
|
133
|
+
bytes_mode: t.Optional[_BytesMode] = BM_UTF8,
|
|
134
|
+
iterable_mode: t.Optional[_IterableMode] = IM_ANY_ITERABLE,
|
|
135
|
+
mapping_mode: t.Optional[_MappingMode] = MM_ANY_MAPPING,
|
|
136
|
+
chunk_size: t.Optional[int] = 65536,
|
|
137
|
+
allow_nan: t.Optional[bool] = True,
|
|
138
|
+
) -> None: ...
|
|
139
|
+
def load(
|
|
140
|
+
stream: t.IO,
|
|
141
|
+
*,
|
|
142
|
+
object_hook: t.Optional[t.Callable[[t.Dict[str, t.Any]], t.Any]] = None,
|
|
143
|
+
number_mode: t.Optional[_NumberMode] = NM_NAN,
|
|
144
|
+
datetime_mode: t.Optional[_DatetimeMode] = DM_NONE,
|
|
145
|
+
uuid_mode: t.Optional[_UUIDMode] = UM_NONE,
|
|
146
|
+
parse_mode: t.Optional[_ParseMode] = PM_NONE,
|
|
147
|
+
chunk_size: t.Optional[int] = 65536,
|
|
148
|
+
allow_nan: t.Optional[bool] = True,
|
|
149
|
+
) -> t.Any: ...
|
|
150
|
+
def loads(
|
|
151
|
+
string: str,
|
|
152
|
+
*,
|
|
153
|
+
object_hook: t.Optional[t.Callable[[t.Dict[str, t.Any]], t.Any]] = None,
|
|
154
|
+
number_mode: t.Optional[_NumberMode] = NM_NAN,
|
|
155
|
+
datetime_mode: t.Optional[_DatetimeMode] = DM_NONE,
|
|
156
|
+
uuid_mode: t.Optional[_UUIDMode] = UM_NONE,
|
|
157
|
+
parse_mode: t.Optional[_ParseMode] = PM_NONE,
|
|
158
|
+
allow_nan: t.Optional[bool] = True,
|
|
159
|
+
) -> t.Any: ...
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
# Classes
|
|
163
|
+
class JSONDecodeError(Exception): ...
|
|
164
|
+
class ValidationError(Exception): ...
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class Decoder:
|
|
168
|
+
datetime_mode: _DatetimeMode
|
|
169
|
+
number_mode: _NumberMode
|
|
170
|
+
parse_mode: _ParseMode
|
|
171
|
+
uuid_mode: _UUIDMode
|
|
172
|
+
|
|
173
|
+
def __init__(
|
|
174
|
+
self,
|
|
175
|
+
datetime_mode: t.Optional[_DatetimeMode] = DM_NONE,
|
|
176
|
+
number_mode: t.Optional[_NumberMode] = NM_NAN,
|
|
177
|
+
parse_mode: t.Optional[_ParseMode] = PM_NONE,
|
|
178
|
+
uuid_mode: t.Optional[_UUIDMode] = UM_NONE,
|
|
179
|
+
) -> None: ...
|
|
180
|
+
def __call__(
|
|
181
|
+
self,
|
|
182
|
+
json: t.Union[str, bytes, t.IO],
|
|
183
|
+
chunk_size: t.Optional[int] = 65536,
|
|
184
|
+
) -> t.Any: ...
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
class Encoder:
|
|
188
|
+
bytes_mode: _BytesMode
|
|
189
|
+
datetime_mode: _DatetimeMode
|
|
190
|
+
ensure_ascii: bool
|
|
191
|
+
indent_char: str
|
|
192
|
+
indent_count: int
|
|
193
|
+
iterable_mode: _IterableMode
|
|
194
|
+
mapping_mode: _MappingMode
|
|
195
|
+
number_mode: _NumberMode
|
|
196
|
+
skip_invalid_keys: bool
|
|
197
|
+
sort_keys: bool
|
|
198
|
+
uuid_mode: _UUIDMode
|
|
199
|
+
write_mode: _WriteMode
|
|
200
|
+
|
|
201
|
+
def __init__(
|
|
202
|
+
self,
|
|
203
|
+
skip_invalid_keys: t.Optional[bool] = False,
|
|
204
|
+
ensure_ascii: t.Optional[bool] = True,
|
|
205
|
+
write_mode: t.Optional[_WriteMode] = WM_COMPACT,
|
|
206
|
+
indent: t.Optional[t.Union[int, str]] = 4,
|
|
207
|
+
sort_keys: t.Optional[bool] = False,
|
|
208
|
+
number_mode: t.Optional[_NumberMode] = NM_NAN,
|
|
209
|
+
datetime_mode: t.Optional[_DatetimeMode] = DM_NONE,
|
|
210
|
+
uuid_mode: t.Optional[_UUIDMode] = UM_NONE,
|
|
211
|
+
bytes_mode: t.Optional[_BytesMode] = BM_UTF8,
|
|
212
|
+
iterable_mode: t.Optional[_IterableMode] = IM_ANY_ITERABLE,
|
|
213
|
+
mapping_mode: t.Optional[_MappingMode] = MM_ANY_MAPPING,
|
|
214
|
+
) -> None: ...
|
|
215
|
+
def __call__(
|
|
216
|
+
self,
|
|
217
|
+
obj: t.Any,
|
|
218
|
+
stream: t.Optional[t.IO],
|
|
219
|
+
chunk_size: t.Optional[int] = 65536,
|
|
220
|
+
) -> t.Optional[str]: ...
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
@t.final
|
|
224
|
+
class RawJSON:
|
|
225
|
+
value: RawJSON
|
|
226
|
+
def __init__(self, value: str) -> None: ...
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
@t.final
|
|
230
|
+
class Validator:
|
|
231
|
+
def __init__(self, json_schema: t.Union[str, bytes]) -> None: ...
|
|
232
|
+
def __call__(self, json: t.Union[str, bytes]) -> None: ...
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.18
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
Serialization
|
|
3
|
-
~~~~~~~~~~~~~
|
|
4
|
-
|
|
5
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
6
|
-
| serialize | ``dumps()``\ [1]_ | ``Encoder()``\ [2]_ | ``dumps(n)``\ [3]_ | ``Encoder(n)``\ [4]_ | simdjson\ [5]_ | orjson\ [6]_ | ujson\ [7]_ | simplejson\ [8]_ | stdlib\ [9]_ |
|
|
7
|
-
+=======================+======================+======================+======================+======================+======================+======================+======================+======================+======================+
|
|
8
|
-
| 100 arrays dict | 1.00 | 1.01 | 0.72 | 0.73 | 3.00 | **0.26** | 1.23 | 5.73 | 2.89 |
|
|
9
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
10
|
-
| 100 dicts array | 1.00 | 1.00 | 0.74 | 0.72 | 2.83 | **0.31** | 1.14 | 6.27 | 2.79 |
|
|
11
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
12
|
-
| 256 Trues array | 1.00 | 1.01 | 1.14 | 1.01 | 2.41 | **0.40** | 1.63 | 2.42 | 2.36 |
|
|
13
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
14
|
-
| 256 ascii array | 1.00 | 1.04 | 1.03 | 1.07 | 2.12 | **0.16** | 1.02 | 2.49 | 2.04 |
|
|
15
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
16
|
-
| 256 doubles array | 1.00 | 0.95 | 1.01 | 1.00 | 1.03 | **0.05** | 0.22 | 0.92 | 0.98 |
|
|
17
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
18
|
-
| 256 unicode array | 1.00 | 0.89 | 0.89 | 0.93 | 0.65 | **0.02** | 0.36 | 0.64 | 0.63 |
|
|
19
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
20
|
-
| apache.json | 1.00 | 1.10 | 1.04 | 1.09 | 2.92 | **0.34** | 1.58 | 4.66 | 2.93 |
|
|
21
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
22
|
-
| canada.json | 1.00 | 1.00 | 0.98 | 0.98 | 1.05 | **0.06** | 0.27 | 1.51 | 1.06 |
|
|
23
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
24
|
-
| complex object | 1.00 | 1.00 | 0.89 | 0.88 | 1.78 | **0.19** | 0.78 | 2.61 | 1.76 |
|
|
25
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
26
|
-
| composite object | 1.00 | 1.04 | 0.70 | 0.66 | 2.16 | **0.30** | 1.13 | 2.74 | 2.15 |
|
|
27
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
28
|
-
| ctm.json | 1.00 | 0.99 | 0.73 | 0.72 | 2.31 | **0.24** | 1.11 | 6.17 | 2.53 |
|
|
29
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
30
|
-
| github.json | 1.00 | 1.00 | 0.94 | 0.94 | 2.29 | **0.21** | 1.19 | 3.07 | 2.27 |
|
|
31
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
32
|
-
| instruments.json | 1.00 | 1.00 | 0.66 | 0.66 | 2.16 | **0.20** | 1.12 | 2.99 | 2.16 |
|
|
33
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
34
|
-
| mesh.json | 1.00 | 1.01 | 0.91 | 0.91 | 1.00 | **0.09** | 0.30 | 1.17 | 1.00 |
|
|
35
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
36
|
-
| truenull.json | 1.00 | 1.00 | 1.00 | 1.01 | 1.94 | **0.26** | 1.59 | 1.92 | 1.93 |
|
|
37
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
38
|
-
| tweet.json | 1.00 | 1.00 | 0.96 | 0.92 | 2.43 | **0.25** | 1.32 | 3.55 | 2.36 |
|
|
39
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
40
|
-
| twitter.json | 1.00 | 1.00 | 0.93 | 0.93 | 1.91 | **0.19** | 1.20 | 2.40 | 1.93 |
|
|
41
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
42
|
-
| overall | 1.00 | 1.01 | 0.81 | 0.82 | 2.26 | **0.18** | 0.88 | 4.12 | 2.19 |
|
|
43
|
-
+-----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+
|
|
44
|
-
|
|
45
|
-
Deserialization
|
|
46
|
-
~~~~~~~~~~~~~~~
|
|
47
|
-
|
|
48
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
49
|
-
| deserialize | ``loads()``\ [10]_ | ``Decoder()``\ [11]_ | ``loads(n)``\ [12]_ | ``Decoder(n)``\ [13]_ | simdjson | orjson | ujson | simplejson | stdlib |
|
|
50
|
-
+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+
|
|
51
|
-
| 100 arrays dict | 1.00 | 1.07 | 0.89 | 0.97 | 0.95 | **0.65** | 0.92 | 1.22 | 1.05 |
|
|
52
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
53
|
-
| 100 dicts array | 1.00 | 0.98 | 0.86 | 0.85 | 0.62 | **0.39** | 0.68 | 1.33 | 1.04 |
|
|
54
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
55
|
-
| 256 Trues array | 1.00 | 1.06 | 1.10 | 1.11 | 1.06 | **0.53** | 0.95 | 1.49 | 1.55 |
|
|
56
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
57
|
-
| 256 ascii array | 1.00 | 1.01 | 1.02 | 1.00 | 0.50 | **0.39** | 1.18 | 1.01 | 0.94 |
|
|
58
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
59
|
-
| 256 doubles array | 1.00 | 1.00 | 0.25 | 0.25 | 0.19 | **0.17** | 0.57 | 1.06 | 1.05 |
|
|
60
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
61
|
-
| 256 unicode array | 1.00 | 0.97 | 0.95 | 0.95 | 0.78 | **0.34** | 0.65 | 3.83 | 1.27 |
|
|
62
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
63
|
-
| apache.json | 1.00 | 1.01 | 1.01 | 1.01 | 0.67 | **0.48** | 0.81 | 0.92 | 0.76 |
|
|
64
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
65
|
-
| canada.json | 1.00 | 0.99 | 0.36 | 0.36 | 0.33 | **0.30** | 0.55 | 0.99 | 0.97 |
|
|
66
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
67
|
-
| complex object | 1.00 | 1.06 | 0.89 | 0.89 | 0.63 | **0.35** | 0.70 | 1.23 | 1.07 |
|
|
68
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
69
|
-
| composite object | 1.00 | 1.00 | 0.83 | 0.85 | 0.61 | **0.42** | 0.62 | 1.50 | 1.10 |
|
|
70
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
71
|
-
| ctm.json | 1.00 | 1.03 | 0.93 | 0.95 | 0.84 | **0.61** | 1.07 | 1.12 | 1.01 |
|
|
72
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
73
|
-
| github.json | 1.00 | 1.00 | 0.99 | 0.98 | 0.66 | **0.39** | 0.80 | 0.95 | 0.85 |
|
|
74
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
75
|
-
| instruments.json | 1.00 | 1.00 | 0.85 | 0.84 | 0.61 | **0.35** | 0.67 | 1.20 | 0.97 |
|
|
76
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
77
|
-
| mesh.json | 1.00 | 1.01 | 0.50 | 0.50 | 0.42 | **0.36** | 0.66 | 1.51 | 1.11 |
|
|
78
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
79
|
-
| truenull.json | 1.00 | 1.09 | 1.16 | 1.07 | 0.92 | **0.70** | 0.92 | 1.31 | 1.41 |
|
|
80
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
81
|
-
| tweet.json | 1.00 | 0.99 | 0.97 | 0.96 | 0.63 | **0.36** | 0.85 | 1.17 | 1.01 |
|
|
82
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
83
|
-
| twitter.json | 1.00 | 0.99 | 0.94 | 0.94 | 0.64 | **0.37** | 0.88 | 0.97 | 0.83 |
|
|
84
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
85
|
-
| overall | 1.00 | 1.06 | 0.84 | 0.91 | 0.89 | **0.62** | 0.89 | 1.20 | 1.04 |
|
|
86
|
-
+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
87
|
-
|
|
88
|
-
ASCII vs UTF-8 Serialization
|
|
89
|
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
90
|
-
|
|
91
|
-
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
92
|
-
| 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]_ |
|
|
93
|
-
+=========================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+=======================+
|
|
94
|
-
| Long ASCII string | 1.00 | 0.78 | 0.49 | **0.48** | 1.91 | 2.36 | 1.54 | 1.41 |
|
|
95
|
-
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
96
|
-
| Long Unicode string | 1.00 | 0.47 | 0.27 | 0.35 | 0.60 | 0.50 | 0.54 | **0.27** |
|
|
97
|
-
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
98
|
-
| overall | 1.00 | 0.52 | **0.31** | 0.37 | 0.81 | 0.80 | 0.70 | 0.45 |
|
|
99
|
-
+-------------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
|
|
100
|
-
|
|
101
|
-
.. [1] ``rapidjson.dumps()``
|
|
102
|
-
.. [2] ``rapidjson.Encoder()``
|
|
103
|
-
.. [3] ``rapidjson.dumps(number_mode=NM_NATIVE)``
|
|
104
|
-
.. [4] ``rapidjson.Encoder(number_mode=NM_NATIVE)``
|
|
105
|
-
.. [5] `simdjson 6.0.2 <https://pypi.org/project/pysimdjson/6.0.2/>`__
|
|
106
|
-
.. [6] `orjson 3.10.1 <https://pypi.org/project/orjson/3.10.1/>`__
|
|
107
|
-
.. [7] `ujson 5.9.0 <https://pypi.org/project/ujson/5.9.0/>`__
|
|
108
|
-
.. [8] `simplejson 3.19.2 <https://pypi.org/pypi/simplejson/3.19.2>`__
|
|
109
|
-
.. [9] Python 3.11.8 standard library ``json``
|
|
110
|
-
.. [10] ``rapidjson.loads()``
|
|
111
|
-
.. [11] ``rapidjson.Decoder()``
|
|
112
|
-
.. [12] ``rapidjson.loads(number_mode=NM_NATIVE)``
|
|
113
|
-
.. [13] ``rapidjson.Decoder(number_mode=NM_NATIVE)``
|
|
114
|
-
.. [15] ``rapidjson.dumps(ensure_ascii=True)``
|
|
115
|
-
.. [16] ``rapidjson.dumps(ensure_ascii=False)``
|
|
116
|
-
.. [17] ``ujson.dumps(ensure_ascii=True)``
|
|
117
|
-
.. [18] ``ujson.dumps(ensure_ascii=False)``
|
|
118
|
-
.. [19] ``simplejson.dumps(ensure_ascii=True)``
|
|
119
|
-
.. [20] ``simplejson.dumps(ensure_ascii=False)``
|
|
120
|
-
.. [21] ``stdlib json.dumps(ensure_ascii=True)``
|
|
121
|
-
.. [22] ``stdlib json.dumps(ensure_ascii=False)``
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rapidjson
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.17
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/python_rapidjson.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/cursorstreamwrapper.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/filereadstream.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/filewritestream.h
RENAMED
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/biginteger.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/clzll.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/diyfp.h
RENAMED
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/ieee754.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/pow10.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/regex.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/stack.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/strfunc.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/internal/strtod.h
RENAMED
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/istreamwrapper.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/msinttypes/inttypes.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/msinttypes/stdint.h
RENAMED
|
File without changes
|
{python-rapidjson-1.17 → python-rapidjson-1.18}/rapidjson/include/rapidjson/ostreamwrapper.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|