Version 3.12.0 released 2017-11-05 * Fix threaded import race condition https://github.com/simplejson/simplejson/issues/184 * Move RawJSON implementation to simplejson.raw_json module * Move JSONDecodeError implementation to simplejson.errors module Version 3.11.1 released 2017-06-19 * Fix issue with item_sort_key when speedups are available, and add auto-discovery to test suites to prevent similar regressions https://github.com/simplejson/simplejson/issues/173 Version 3.11.0 released 2017-06-18 * docstring fix in JSONEncoder https://github.com/simplejson/simplejson/pull/172 * Call PyObject_IsTrue() only once for the strict argument of scanner https://github.com/simplejson/simplejson/pull/170 * Fix a crash with unencodable encoding in the encoder https://github.com/simplejson/simplejson/pull/171 * Remove unused imports https://github.com/simplejson/simplejson/pull/162 * Remove remnants of Python 2.4 support https://github.com/simplejson/simplejson/pull/168 * Fix argument checking errors in _speedups.c https://github.com/simplejson/simplejson/pull/169 * Remove the `__init__` methods in extension classes https://github.com/simplejson/simplejson/pull/166 * Fix typo in the doc for loads https://github.com/simplejson/simplejson/issues/161 * Add Python 3.6 to testing matrix and PyPI metadata https://github.com/simplejson/simplejson/pull/153 https://github.com/simplejson/simplejson/pull/152 Version 3.10.0 released 2016-10-28 * Add RawJSON class to allow a faster path for already encoded JSON. https://github.com/simplejson/simplejson/pull/143 Version 3.9.0 released 2016-10-21 * Workaround for bad behavior in string subclasses https://github.com/simplejson/simplejson/issues/144 * Fix warnings flagged by -3 https://github.com/simplejson/simplejson/pull/146 * Update readthedocs documentation links https://github.com/simplejson/simplejson/pull/137 * Add build status badge to README https://github.com/simplejson/simplejson/pull/134 Version 3.8.2 released 2016-02-14 * Fix implicit cast compiler warning in _speedups.c * simplejson is now available as wheels for OS X and Windows thanks to Travis-CI and AppVeyor respectively! Many thanks to @aebrahim for getting this party started. https://github.com/simplejson/simplejson/pull/130 https://github.com/simplejson/simplejson/issues/122 Version 3.8.1 released 2015-10-27 * Fix issue with iterable_as_array and indent option https://github.com/simplejson/simplejson/issues/128 * Fix typo in keyword argument name introduced in 3.8.0 https://github.com/simplejson/simplejson/pull/123 Version 3.8.0 released 2015-07-18 * New iterable_as_array encoder option to perform lazy serialization of any iterable objects, without having to convert to tuple or list. Version 3.7.3 released 2015-05-31 * Fix typo introduced in 3.7.0 (behavior should be indistinguishable) https://github.com/simplejson/simplejson/commit/e18cc09b688ea1f3305c27616fd3cadd2adc6d31#commitcomment-11443842 Version 3.7.2 released 2015-05-22 * Do not cache Decimal class in encoder, only reference the decimal module. This may make reload work in more common scenarios. Version 3.7.1 released 2015-05-18 * Fix compilation with MSVC https://github.com/simplejson/simplejson/pull/119 Version 3.7.0 released 2015-05-18 * simplejson no longer trusts custom str/repr methods for int, long, float subclasses. These instances are now formatted as if they were exact instances of those types. https://github.com/simplejson/simplejson/issues/118 Version 3.6.5 released 2014-10-24 * Importing bug fix for reference leak when an error occurs during dict encoding https://github.com/simplejson/simplejson/issues/109 Version 3.6.4 released 2014-09-29 * Important bug fix for dump when only sort_keys is set https://github.com/simplejson/simplejson/issues/106 Version 3.6.3 released 2014-08-18 * Documentation updates https://github.com/simplejson/simplejson/issues/103 Version 3.6.2 released 2014-08-09 * Documentation updates http://bugs.python.org/issue21514 Version 3.6.1 released 2014-08-09 * Documentation updates https://github.com/simplejson/simplejson/issues/102 Version 3.6.0 released 2014-07-21 * Automatically strip any UTF-8 BOM from input to more closely follow the latest specs https://github.com/simplejson/simplejson/pull/101 Version 3.5.3 released 2014-06-24 * Fix lower bound checking in scan_once / raw_decode API https://github.com/simplejson/simplejson/issues/98 Version 3.5.2 released 2014-05-22 * Fix Windows build with VS2008 https://github.com/simplejson/simplejson/pull/97 Version 3.5.1 released 2014-05-21 * Consistently reject int_as_string_bitcount settings that are not positive integers Version 3.5.0 released 2014-05-20 * Added int_as_string_bitcount encoder option https://github.com/simplejson/pull/96 * Fixed potential crash when encoder created with incorrect options Version 3.4.1 released 2014-04-30 * Fixed tests to run on Python 3.4 Version 3.4.0 released 2014-04-02 * Native setuptools support re-introduced https://github.com/simplejson/simplejson/pull/92 Version 3.3.3 released 2014-02-14 * Improve test suite's Python 3.4 compatibility https://github.com/simplejson/simplejson/issues/87 Version 3.3.2 released 2014-01-06 * Docstring fix for decoded string types https://github.com/simplejson/simplejson/pull/82 Version 3.3.1 released 2013-10-05 * JSONDecodeError exceptions can now be pickled https://github.com/simplejson/simplejson/pull/78 Version 3.3.0 released 2013-05-07 * Unpaired surrogates once again pass through the decoder, to match older behavior and the RFC-4627 spec. https://github.com/simplejson/simplejson/issues/62 Version 3.2.0 released 2013-05-01 * New ignore_nan kwarg in encoder that serializes out of range floats (Infinity, -Infinity, NaN) as null for ECMA-262 compliance. https://github.com/simplejson/simplejson/pull/63 * New for_json kwarg in encoder to make it possible to for subclasses of dict and list to be specialized. https://github.com/simplejson/simplejson/pull/69 Version 3.1.3 released 2013-04-06 * Updated documentation to discourage subclassing whenever possible. default, object_hook, and object_pairs_hook provide almost all of the functionality of subclassing. Version 3.1.2 released 2013-03-20 * Updated documentation to reflect separators behavior when indent is not None https://github.com/simplejson/simplejson/issues/59 * Test suite should be compatible with debug builds of Python 2.x and 3.x https://github.com/simplejson/simplejson/pull/65 Version 3.1.1 released 2013-02-21 * setup.py now has another workaround for Windows machines without MSVC installed http://bugs.python.org/issue7511 Version 3.1.0 released 2013-02-21 * Updated JSON conformance test suite http://bugs.python.org/issue16559 * simplejson.tool tests and bugfix for Python 3.x http://bugs.python.org/issue16549 * Improve error messages for certain kinds of truncated input http://bugs.python.org/issue16009 * Moved JSONDecodeError to json.scanner (still available for import from json.decoder) * Changed scanner to use JSONDecodeError directly rather than StopIteration to improve error messages Version 3.0.9 released 2013-02-21 * Fix an off-by-one error in the colno property of JSONDecodeError (when lineno == 1) http://bugs.python.org/issue17225 Version 3.0.8 released 2013-02-19 * Fix a Python 2.x compiler warning for narrow unicode builds https://github.com/simplejson/simplejson/issues/56 Version 3.0.7 released 2013-01-11 * NOTE: this release only changes the license. * simplejson is now dual-licensed software, MIT or AFL v2.1. It is also made explicit that this code is also licensed to the PSF under a Contributor Agreement. Version 3.0.6 released 2013-01-11 * Fix for major Python 2.x ensure_ascii=False encoding regression introduced in simplejson 3.0.0. If you use this setting, please upgrade immediately. https://github.com/simplejson/simplejson/issues/50 Version 3.0.5 released 2013-01-03 * NOTE: this release only changes the tests, it is not essential to upgrade * Tests now run with deprecation warnings printed * Fixed Python 3 syntax error in simplejson.tool https://github.com/simplejson/simplejson/issues/49 * Fixed Python 3.3 deprecation warnings in test suite https://github.com/simplejson/simplejson/issues/48 Version 3.0.4 released 2013-01-02 * MSVC compatibility for Python 3.3 https://github.com/simplejson/simplejson/pull/47 Version 3.0.3 released 2013-01-01 * Fixes for bugs introduced in 3.0.2 * Fixes for Python 2.5 compatibility * MSVC compatibility for Python 2.x https://github.com/simplejson/simplejson/pull/46 Version 3.0.2 released 2013-01-01 * THIS VERSION HAS BEEN REMOVED * Missed a changeset to _speedups.c in the 3.0.1 branch cut Version 3.0.1 released 2013-01-01 * THIS VERSION HAS BEEN REMOVED * Add accumulator optimization to encoder, equivalent to the usage of `_Py_Accu` in the Python 3.3 json library. Only relevant if encoding very large JSON documents. Version 3.0.0 released 2012-12-30 * Python 3.3 is now supported, thanks to Vinay Sajip https://github.com/simplejson/simplejson/issues/8 * `sort_keys`/`item_sort_key` now sort on the stringified version of the key, rather than the original object. This ensures that the sort only compares string types and makes the behavior consistent between Python 2.x and Python 3.x. * Like other number types, Decimal instances used as keys are now coerced to strings when use_decimal is True. Version 2.6.2 released 2012-09-21 * JSONEncoderForHTML was not exported in the simplejson module https://github.com/simplejson/simplejson/issues/41 Version 2.6.1 released 2012-07-27 * raw_decode() now skips whitespace before the object https://github.com/simplejson/simplejson/pull/38 Version 2.6.0 released 2012-06-26 * Error messages changed to match proposal for Python 3.3.1 http://bugs.python.org/issue5067 Version 2.5.2 released 2012-05-10 * Fix for regression introduced in 2.5.1 https://github.com/simplejson/simplejson/issues/35 Version 2.5.1 released 2012-05-10 * Support for use_decimal=True in environments that use Python sub-interpreters such as uWSGI https://github.com/simplejson/simplejson/issues/34 Version 2.5.0 released 2012-03-29 * New item_sort_key option for encoder to allow fine grained control of sorted output Version 2.4.0 released 2012-03-06 * New bigint_as_string option for encoder to trade JavaScript number precision issues for type issues. https://github.com/simplejson/simplejson/issues/31 Version 2.3.3 released 2012-02-27 * Allow unknown numerical types for indent parameter https://github.com/simplejson/simplejson/pull/29 Version 2.3.2 released 2011-12-30 * Fix crashing regression in speedups introduced in 2.3.1 Version 2.3.1 released 2011-12-29 * namedtuple_as_object now checks _asdict to ensure that it is callable. https://github.com/simplejson/simplejson/issues/26 Version 2.3.0 released 2011-12-05 * Any objects with _asdict() methods are now considered for namedtuple_as_object. https://github.com/simplejson/simplejson/pull/22 Version 2.2.1 released 2011-09-06 * Fix MANIFEST.in issue when building a sdist from a sdist. https://github.com/simplejson/simplejson/issues/16 Version 2.2.0 released 2011-09-04 * Remove setuptools requirement, reverted to pure distutils * use_decimal default for encoding (dump, dumps, JSONEncoder) is now True * tuple encoding as JSON objects can be turned off with new tuple_as_array=False option. https://github.com/simplejson/simplejson/pull/6 * namedtuple (or other tuple subclasses with _asdict methods) are now encoded as JSON objects rather than arrays by default. Can be disabled and treated as a tuple with the new namedtuple_as_object=False option. https://github.com/simplejson/simplejson/pull/6 * JSONDecodeError is now raised instead of ValueError when a document ends with an opening quote and the C speedups are in use. https://github.com/simplejson/simplejson/issues/15 * Updated documentation with information about JSONDecodeError * Force unicode linebreak characters to be escaped (U+2028 and U+2029) http://timelessrepo.com/json-isnt-a-javascript-subset * Moved documentation from a git submodule to https://simplejson.readthedocs.io/ Version 2.1.6 released 2011-05-08 * Prevent segfaults with deeply nested JSON documents https://github.com/simplejson/simplejson/issues/11 * Fix compatibility with Python 2.5 https://github.com/simplejson/simplejson/issues/5 Version 2.1.5 released 2011-04-17 * Built sdist tarball with setuptools_git installed. Argh. Version 2.1.4 released 2011-04-17 * Does not try to build the extension when using PyPy * Trailing whitespace after commas no longer emitted when indent is used * Migrated to github http://github.com/simplejson/simplejson Version 2.1.3 released 2011-01-17 * Support the sort_keys option in C encoding speedups http://code.google.com/p/simplejson/issues/detail?id=86 * Allow use_decimal to work with dump() http://code.google.com/p/simplejson/issues/detail?id=87 Version 2.1.2 released 2010-11-01 * Correct wrong end when object_pairs_hook is used http://code.google.com/p/simplejson/issues/detail?id=85 * Correct output for indent=0 http://bugs.python.org/issue10019 * Correctly raise TypeError when non-string keys are used with speedups http://code.google.com/p/simplejson/issues/detail?id=82 * Fix the endlineno, endcolno attributes of the JSONDecodeError exception. http://code.google.com/p/simplejson/issues/detail?id=81 Version 2.1.1 released 2010-03-31 * Change how setup.py imports ez_setup.py to try and workaround old versions of setuptools. http://code.google.com/p/simplejson/issues/detail?id=75 * Fix compilation on Windows platform (and other platforms with very picky compilers) * Corrected simplejson.__version__ and other minor doc changes. * Do not fail speedups tests if speedups could not be built. http://code.google.com/p/simplejson/issues/detail?id=73 Version 2.1.0 released 2010-03-10 * Decimal serialization officially supported for encoding with use_decimal=True. For encoding this encodes Decimal objects and for decoding it implies parse_float=Decimal * Python 2.4 no longer supported (may still work, but no longer tested) * Decoding performance and memory utilization enhancements http://bugs.python.org/issue7451 * JSONEncoderForHTML class for escaping &, <, > http://code.google.com/p/simplejson/issues/detail?id=66 * Memoization of object keys during encoding (when using speedups) * Encoder changed to use PyIter_Next for list iteration to avoid potential threading issues * Encoder changed to use iteritems rather than PyDict_Next in order to support dict subclasses that have a well defined ordering http://bugs.python.org/issue6105 * indent encoding parameter changed to be a string rather than an integer (integer use still supported for backwards compatibility) http://code.google.com/p/simplejson/issues/detail?id=56 * Test suite (python setup.py test) now automatically runs with and without speedups http://code.google.com/p/simplejson/issues/detail?id=55 * Fixed support for older versions of easy_install (e.g. stock Mac OS X config) http://code.google.com/p/simplejson/issues/detail?id=54 * Fixed str/unicode mismatches when using ensure_ascii=False http://code.google.com/p/simplejson/issues/detail?id=48 * Fixed error message when parsing an array with trailing comma with speedups http://code.google.com/p/simplejson/issues/detail?id=46 * Refactor decoder errors to raise JSONDecodeError instead of ValueError http://code.google.com/p/simplejson/issues/detail?id=45 * New ordered_pairs_hook feature in decoder which makes it possible to preserve key order. http://bugs.python.org/issue5381 * Fixed containerless unicode float decoding (same bug as 2.0.4, oops!) http://code.google.com/p/simplejson/issues/detail?id=43 * Share PosInf definition between encoder and decoder * Minor reformatting to make it easier to backport simplejson changes to Python 2.7/3.1 json module Version 2.0.9 released 2009-02-18 * Adds cyclic GC to the Encoder and Scanner speedups, which could've caused uncollectible cycles in some cases when using custom parser or encoder functions Version 2.0.8 released 2009-02-15 * Documentation fixes * Fixes encoding True and False as keys * Fixes checking for True and False by identity for several parameters Version 2.0.7 released 2009-01-04 * Documentation fixes * C extension now always returns unicode strings when the input string is unicode, even for empty strings Version 2.0.6 released 2008-12-19 * Windows build fixes Version 2.0.5 released 2008-11-23 * Fixes a segfault in the C extension when using check_circular=False and encoding an invalid document Version 2.0.4 released 2008-10-24 * Fixes a parsing error in the C extension when the JSON document is (only) a floating point number. It would consume one too few characters in that case, and claim the document invalid. Version 2.0.3 released 2008-10-11 * Fixes reference leaks in the encoding speedups (sorry about that!) * Fixes doctest suite for Python 2.6 * More optimizations for the decoder Version 2.0.2 released 2008-10-06 * Fixes MSVC2003 build regression * Fixes Python 2.4 compatibility in _speedups.c Version 2.0.1 released 2008-09-29 * Fixes long encoding regression introduced in 2.0.0 * Fixes MinGW build regression introduced in 2.0.0 Version 2.0.0 released 2008-09-27 * optimized Python encoding path * optimized Python decoding path * optimized C encoding path * optimized C decoding path * switched to sphinx docs (nearly the same as the json module in python 2.6) Version 1.9.3 released 2008-09-23 * Decoding is significantly faster (for our internal benchmarks) * Pretty-printing tool changed from simplejson to simplejson.tool for better Python 2.6 comaptibility * Misc. bug fixes Version 1.9 released 2008-05-03 * Rewrote test suite with unittest and doctest (no more nosetest dependency) * Better PEP 7 and PEP 8 source compliance * Removed simplejson.jsonfilter demo module * simplejson.jsonfilter is no longer included Version 1.8.1 released 2008-03-24 * Optional C extension for accelerating the decoding of JSON strings * Command line interface for pretty-printing JSON (via python -msimplejson) * Decoding of integers and floats is now extensible (e.g. to use Decimal) via parse_int, parse_float options. * Subversion and issue tracker moved to google code: http://code.google.com/p/simplejson/ * "/" is no longer escaped, so if you're embedding JSON directly in HTML you'll want to use .replace("/", "\\/") to prevent a close-tag attack. Version 1.7 released 2007-03-18 * Improves encoding performance with an optional C extension to speed up str/unicode encoding (by 10-150x or so), which yields an overall speed boost of 2x+ (JSON is string-heavy). * Support for encoding unicode code points outside the BMP to UTF-16 surrogate code pairs (specified by the Strings section of RFC 4627). Version 1.6 released 2007-03-03 * Improved str support for encoding. Previous versions of simplejson integrated strings directly into the output stream, this version ensures they're of a particular encoding (default is UTF-8) so that the output stream is valid. Version 1.5 released 2007-01-18 * Better Python 2.5 compatibility * Better Windows compatibility * indent encoding parameter for pretty printing * separators encoding parameter for generating optimally compact JSON Version 1.3 released 2006-04-01 * The optional object_hook function is called upon decoding of any JSON object literal, and its return value is used instead of the dict that would normally be used. This can be used to efficiently implement features such as JSON-RPC class hinting, or other custom decodings of JSON. See the documentation for more information. Version 1.1 released 2005-12-31 * Renamed from simple_json to simplejson to comply with PEP 8 module naming guidelines * Full set of documentation * More tests * The encoder and decoder have been extended to understand NaN, Infinity, and -Infinity (but this can be turned off via allow_nan=False for strict JSON compliance) * The decoder's scanner has been fixed so that it no longer accepts invalid JSON documents * The decoder now reports line and column information as well as character numbers for easier debugging * The encoder now has a circular reference checker, which can be optionally disabled with check_circular=False * dump, dumps, load, loads now accept an optional cls kwarg to use an alternate JSONEncoder or JSONDecoder class for convenience. * The read/write compatibility shim for json-py now have deprecation warnings Version 1.0 released 2005-12-25 * Initial release