History

v1.4.1

20 Apr 2020

v1.4

13 Apr 2020

v1.2

15 May 2019

v1.1

22 Jan 2019

v1.0

01 Sep 2018

v0.9.5

16 Jul 2017

v0.9.4

10 Jan 2017

v0.9.3

09 Mar 2016

v0.9.2

20 Mar 2015
  • Fixes for serializing objects with custom handlers.

  • We now properly serialize deque objects constructed with a maxlen parameter.

  • Test suite fixes

v0.9.1

12 Mar 2015

  • Support datetime objects with FixedOffsets.

v0.9.0

16 Jan 2015
  • Support for Pickle Protocol v4.

  • We now support serializing defaultdict subclasses that use self as their default factory.

  • We now have a decorator syntax for registering custom handlers, and allow custom handlers to register themselves for all subclasses. (``#104 <https://github.com/jsonpickle/jsonpickle/issues/104>`_ <https://github.com/jsonpickle/jsonpickle/pull/104>`_).

  • We now support serializing types with metaclasses and their instances (e.g., Python 3 enum).

  • We now support serializing bytestrings in both Python 2 and Python 3. In Python 2, the str type is decoded to UTF-8 whenever possible and serialized as a true bytestring elsewise; in Python 3, bytestrings are explicitly encoded/decoded as bytestrings. Unicode strings are always encoded as is in both Python 2 and Python 3.

  • Added support for serializing numpy arrays, dtypes and scalars (see jsonpickle.ext.numpy module).

v0.8.0

06 Sep 2014

v0.7.2

06 Aug 2014

  • We now properly serialize classes that inherit from classes that use __slots__ and add additional slots in the derived class.

  • jsonpickle can now serialize objects that implement __getstate__() but not __setstate__(). The result of __getstate__() is returned as-is when doing a round-trip from Python objects to jsonpickle and back.

  • Better support for collections.defaultdict with custom factories.

  • Added support for queue.Queue objects.

v0.7.1

06 May 2014

  • Added support for Python 3.4.

  • Added support for posix.stat_result.

v0.7.0

15 Mar 2014

  • Added handles decorator to jsonpickle.handlers.BaseHandler, enabling simple declaration of a handler for a class.

  • __getstate__() and __setstate__() are now honored when pickling objects that subclass dict.

  • jsonpickle can now serialize collections.Counter objects.

  • Object references are properly handled when using integer keys.

  • Object references are now supported when using custom handlers.

  • Decimal objects are supported in Python 3.

  • jsonpickle’s “fallthrough-on-error” behavior can now be disabled.

  • Simpler API for registering custom handlers.

  • A new “safe-mode” is provided which avoids eval(). Backwards-compatible deserialization of repr-serialized objects is disabled in this mode. e.g. decode(string, safe=True)

v0.6.1

25 Aug 2013

  • Python 3.2 support, and additional fixes for Python 3.

v0.6.0

24 Aug 2013

  • Python 3 support!

  • time.struct_time is now serialized using the built-in jsonpickle.handlers.SimpleReduceHandler.

v0.5.0

22 Aug 2013

  • Non-string dictionary keys (e.g. ints, objects) are now supported by passing keys=True to jsonpickle.encode() and jsonpickle.decode().

  • We now support namedtuple, deque, and defaultdict.

  • Datetimes with timezones are now fully supported.

  • Better support for complicated structures e.g. datetime inside dicts.

  • jsonpickle added support for references and cyclical data structures in 0.4.0. This can be disabled by passing make_refs=False to jsonpickle.encode().

0.4.0

21 Jun 2011

Warning

To support cyclical data structures (``#16 <https://github.com/jsonpickle/jsonpickle/issues/16>`_ <https://github.com/jsonpickle/jsonpickle/issues/16>`_), the storage format has been modified. Efforts have been made to ensure backwards-compatibility. jsonpickle 0.4.0 can read data encoded by jsonpickle 0.3.1, but earlier versions of jsonpickle may be unable to read data encoded by jsonpickle 0.4.0.

0.3.1

12 Dec 2009

  • Include tests and docs directories in sdist for distribution packages.

0.3.0

11 Dec 2009

  • List and set subclasses.

  • Objects with module references.

  • Newstyle classes with __slots__.

  • Objects implementing __setstate__() and __getstate__() (follows the pickle protocol).

  • Improved support for Zope objects via pre-fetch.

  • Support for user-defined serialization handlers via the jsonpickle.handlers registry.

  • Removed cjson support per John Millikin’s recommendation.

  • General improvements to style, including PEP 257 compliance and refactored project layout.

  • Steps towards Python 2.3 and Python 3 support.

  • New contributors Dan Buch and Ian Schenck.

  • Thanks also to Kieran Darcy, Eoghan Murray, and Antonin Hildebrand for their assistance!

0.2.0

10 Jan 2009

  • Support for all major Python JSON backends (including json in Python 2.6, simplejson, cjson, and demjson)

  • Handle several datetime objects using the repr() of the objects (Thanks to Antonin Hildebrand).

  • Sphinx documentation

  • Added support for recursive data structures

  • Unicode dict-keys support

  • Support for Google App Engine and Django

  • Tons of additional testing and bug reports (Antonin Hildebrand, Sorin, Roberto Saccon, Faber Fedor, FirePython, and Joose)

0.1.0

22 Aug 2008

  • Added long as basic primitive (thanks Adam Fisk)

  • Prefer python-cjson to simplejson, if available

  • Major API change, use python-cjson’s decode/encode instead of simplejson’s load/loads/dump/dumps

  • Added benchmark.py to compare simplejson and python-cjson

0.0.5

22 Jul 2008

  • Changed prefix of special fields to conform with CouchDB requirements (Thanks Dean Landolt). Break backwards compatibility.

  • Moved to Google Code subversion

  • Fixed unit test imports

0.0.3

  • Convert back to setup.py from pavement.py (issue found by spidaman)

0.0.2

  • Handle feedparser’s FeedParserDict

  • Converted project to Paver

  • Restructured directories

  • Increase test coverage

0.0.1

Initial release