Use current master__ version of rapidjson
__ https://github.com/Tencent/rapidjson/compare/5e17dbed34eef33af8f3e734820b5dc547a2a3aa...ab1842a2dae061284c0a62dca1cc6d5e7e37e346
Generate wheels on PyPI using Python 3.13b1 release, thanks to cibuildwheel 2.18.0__
- Produce Python 3.8 wheels again, I deactivated it too eagerly, it's in security fixes only mode, not yet reached its end-of-life state
Honor the recursion limit__ also at parse time, to avoid attacks as described by CVE-2024-27454__
__ https://docs.python.org/3.12/library/sys.html#sys.setrecursionlimit __ https://monicz.dev/CVE-2024-27454
Produce binary wheels for macOS/arm64, thanks to timothyjlaurent (PR #195__)
__ #170
Fix handling of write_mode in dump functions (problem emerged discussing issue #191__)
__ #191
Generate wheels on PyPI using final Python 3.12 release, thanks to cibuildwheel 2.16.2__
__ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2162
Use current master__ version of rapidjson
__ https://github.com/Tencent/rapidjson/compare/083f359f5c36198accc2b9360ce1e32a333231d9...5e17dbed34eef33af8f3e734820b5dc547a2a3aa
Use cibuildwheel 2.15.0__
__ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2150
Use current master__ version of rapidjson
__ https://github.com/Tencent/rapidjson/commit/083f359f5c36198accc2b9360ce1e32a333231d9
Produce ppc64le wheels, thanks to mgiessing (PR #170__)
__ #170
Use cibuildwheel 2.12.1__
__ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2121
Produce Python 3.11 wheels, thanks to
cibuildwheel
2.11.1____ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2111
Fix problem on macOS__ explicitly requiring C++11, thanks to agate-pris (issue #166__)
__ https://github.com/Tencent/rapidjson/commit/9965ab37f6cfae3d58a0a6e34c76112866ace0b1#commitcomment-77875054 __ #166
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__)
__ #161
Fix memory leak when using
end_array
(issue #160__)__ #160
- Fix serialization bug when using DM_UNIX_TIME in a non-C locale context
Build binary wheel for aarch64, thanks to odidev (PR #156__)
__ #156
- Yet another attempt to fix automatic wheels upload
- Fix automatic wheels upload from GH Actions to PyPI
- Reduce decoder memory consumption by uniquifiying keys in the loaded dictionaries
Implement an alternative way of transmogrify JSON objects, similar to
json
'sobject_pairs_hook
load option (issue #154__)__ #154
- Require Python 3.6 or greater
New serialization options,
iterable_mode
andmapping_mode
, to give some control on how generic iterables and mappings get encoded (fix issue #149__ and issue #150__)- Internal refactorings, folding "skipkeys" and "sort_keys" arguments into the mapping_mode options, respectively as MM_SKIP_NON_STRING_KEYS and MM_SORT_KEYS: "old" arguments kept for backward compatibility
- Bump major version to 1, tag as "production/stable" and switch to a simpler X.Y versioning schema
Fix memory leak loading an invalid JSON (issue #148__)
__ #148
Fix access to
Encoder
instance attributes (issue #147__)__ #147
Use current master__ version of rapidjson
__ https://github.com/Tencent/rapidjson/commit/0ccdbf364c577803e2a751f5aededce935314313
Enable GH Actions-based test workflow, thanks to Martin Thoma (PR #143__)
__ #143
- Produce Python 3.9 wheels, disable testing under Python < 3.6
Make the character used for indentation in pretty mode a parameter (issue #135__)
__ #135
Handle wider precision range in timestamps fractional seconds (PR 133__), thanks to Karl Seguin
__ #133
Add comparison benchmarks against orjson and hyperjson (issue #130__ and PR #131__, thanks to Sebastian Pipping)
Fix memory leak in case of failed validation (issue #126__)
__ #126
- Produce Python 3.8 wheels
Compatibility fix for Python 3.8 (issue #125__)
__ #125
New dump option
write_mode
, supporting RapidJSON'skFormatSingleLineArray
option (issue #123__), thanks to Nguyễn Hồng Quân for the initial implementation (PR #124__)
New serialization option
bytes_mode
to control how bytes instances get encoded (issue #122__)__ #122
Hopefully fix the memory leak when loading from a stream (issue #117__)
__ #117
Raise a more specific exception on loading errors,
JSONDecodeError
, instead of genericValueError
(issue #118__)__ #118
Fix optimization path when using
OrderedDict
s (issue #119__)__ #119
Fix serialization of
IntEnum
s (issue #121__)__ #121
I spent quite a lot of time investigating on the memory leak when loading from a stream (issue #117__): as I was not able to fully replicate the problem, I cannot be sure I solved the problem... sorry!
__ #117
Raise correct exception in code samples (PR #109__), thanks to Thomas Dähling
__ #109
Fix compilation with system-wide install of rapidjson (issue #110__)
__ #110
Use current master version of rapidjson, that includes a fix__ for its issue #1368__ and issue #1336__, and cures several compilation warnings as well (issue #112__ and issue #107__)
__ https://github.com/Tencent/rapidjson/commit/f5e5d47fac0f654749c4d6267015005b74643dff __ Tencent/rapidjson#1368 __ Tencent/rapidjson#1336 __ #112 __ #107
Fix memory leak when using
object_hook
(issue #115__)__ #115
- No visible changes, but now PyPI carries binary wheels for Python 3.7.
- Use a more specific ValidationError, to differentiate from invalid JSON
- Nothing new, attempt to build Python 3.6 binary wheels on Travis CI
Add a new comparison table involving
ensure_ascii
(issue #98__)__ #98
Use Python's
repr()
to emit float values instead of rapidjson'sdtoa()
(issue #101__)__ #101
Use a newer (although unreleased) version of rapidjson to fix an issue__ with JSONSchema validation (PR #103__), thanks to Anthony Miyaguchi
__ Tencent/rapidjson#825 __ #103
- Tiny tweak to restore macOS build on Travis CI
- Minor tweaks to CI and PyPI deploy configuration
New
RawJSON
class, allowing inclusion of pre-serialized content (PR #95__ and PR #96__), thanks to Silvio Tomatis
- Deserialize from
bytes
andbytearray
instances, ensuring they contain valid UTF-8 data Speed up parsing of floating point numbers, avoiding intermediary conversion to a Python string (PR #94__)
__ #94
- Fix precision handling of DM_UNIX_TIME timestamps
- Fix memory leaks in
Decoder()
andEncoder()
classes, related to bad handling ofPyObject_GetAttr()
result value - Fix compatibility with Python 3.7a
Implemented the streaming interface, see load()__ and dump()__ (issue #80__)
__ https://python-rapidjson.readthedocs.io/en/latest/load.html __ https://python-rapidjson.readthedocs.io/en/latest/dump.html __ #80
Backward incompatibility: now the flags arguments on all the functions are keyword only, to mimic stdlib's
json
style
Reduce compiler warnings (issue #87__)
__ #87
- Fix Travis CI recipe to accomodate MacOS
Fix compilation on MacOS (issue #78__)
__ #78
Handle generic iterables (PR #89__)
__ #89
Backward incompatibility: the
dumps()
function and theEncoder()
constructor used to accept amax_recursion_depth
argument, to control the maximum allowed nesting of Python structures; since the underlying function is now effectively recursive, it has been replaced by the generic sys.setrecursionlimit()__ mechanism__ https://docs.python.org/3.6/library/sys.html#sys.setrecursionlimit
- Restore compatibility with Python < 3.6
- Fix memory leaks when using object_hook/start_object/end_object
Fix bug where error handling code could raise an exception causing a confusing exception to be returned (PR #82__)
__ #82
Fix bug where loads's
object_hook
and dumps'sdefault
arguments could not be passedNone
explicitly (PR #83__)__ #83
Fix crash when dealing with surrogate pairs (issue #81__)
__ #81
- Fix compatibility with MacOS/clang
- Limit the precision of DM_UNIX_TIME timestamps to six decimal digits
- Nothing new, attempt to fix production of Python 3.6 binary wheels
- Nothing new, attempt to fix production of Python 3.6 binary wheels
New
parse_mode
option, implementing relaxed JSON syntax (issue #73__)__ #73
- New
Encoder
andDecoder
, implementing a class-based interface New
Validator
, exposing the underlying JSON schema validation (issue #71__)__ #71
- Remove beta status
- Make execution of the test suite on Appveyor actually happen
- Exclude CI configurations from the source distribution
- Fix Powershell wheel upload script in appveyor configuration
Compilable with somewhat old g++ (issue #69__)
__ #69
- Backward incompatibilities:
- all
DATETIME_MODE_XXX
constants have been shortened toDM_XXX
DATETIME_MODE_ISO8601_UTC
has been renamed toDM_SHIFT_TO_UTC
- all
UUID_MODE_XXX
constants have been shortened toUM_XXX
- all
New option
DM_UNIX_TIME
to serialize date, datetime and time values as UNIX timestamps__ targeting issue #61__- New option
DM_NAIVE_IS_UTC
to treat naïve datetime and time values as if they were in the UTC timezone (also for issue #61) - New keyword argument
number_mode
to use underlying C library numbers - Binary wheels for GNU/Linux and Windows on PyPI (one would hope: this is the reason for the beta1 release)
Fix a couple of refcount handling glitches, hopefully targeting issue #48__.
__ #48
Fix source distribution to contain all required stuff (PR #64__)
__ #64
- CI testing on GitHub
Allow using locally installed RapidJSON library (issue #60__)
__ #60
Bug fixes (issue #37__, issue #51__, issue #57__)