* Mon Dec 15 2025 Markéta Machová <mmachova@suse.com>
- Exclude testing with pandas on Leap 16.0
* Mon Sep 29 2025 Dirk Müller <dmueller@suse.com>
- update to 4.1.1:
* Maintenance release to omit upcoming breaking changes.
* An error in the jsonpickle pandas extension when decoding
objects that were encoded before jsonpickle v3.4.0 was fixed,
and warnings were added. (+562)
* Added jsonpickle.ext.yaml for forwards-compatibility, but the
yaml module continues to be registered by default. v5.0.0
will no longer register jsonpickle.ext.yaml by default.
* Deprecation warnings were added to certain simple functions
in jsonpickle/util.py. These functions will be removed in
5.0.0 to ease the transition into typing everything.
* The test_multindex_dataframe_roundtrip test in the pandas
extension had been failing on 32-bit architectures in
Debian's test suite. This has been resolved. (+560)
* pyproject.toml was updated to include the
project.license.text field so that pypi continues to list our
license.
* pyproject.toml was updated to avoid specifying the license
file. This avoids breaking older setuptools versions while
also avoiding the deprecated tool.setuptools.license-files
field. setuptools will find our LICENSE file automatically,
so there is no need to specify it.
* Documentation warnings from furo have been fixed.
* Numpy datetime64 objects with nanosecond precision are now
supported. (+556)
* Mon Feb 24 2025 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 4.0.2
* The unpickler is now more resilient to malformed "py/id" and "py/repr" data. (+546)
* The unpickler is now more resilient to invalid "py/b85" and "py/b64" data. (+547)
* The unpickler's support for read-only str attributes was improved. (+548) (#478)
* Wed Feb 05 2025 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 4.0.1
* The unpickler is now more resilient to malformed "py/reduce", "py/set",
"py/tuple", "py/b64", "py/b85", and "py/iterator" input data. (+544) (+545)
* The test suite was updated to leverage more pytest features.
* The ``jsonpickle.compat`` module is no longer used. It is still provided
for backwards compatibility but it may be removed in a future version.
* Wed Nov 20 2024 Dirk Müller <dmueller@suse.com>
- update to 4.0.0:
* Breaking Change: Python 3.7 is no longer supported.
* Breaking Change: Support for pre-0.7.0 repr-serialized
objects is no longer enabled by default. The safe option to
decode() was changed from False to True. Users can still pass
safe=False to decode() in order to enable this feature for
the purposes of loading older files, but beware that this
feature relies on unsafe behavior through its use of eval().
Users are encouraged to re-pickle old data in order to
migrate away from the the unsafe loading feature. (+514)
* The pickler no longer produces py/repr tags when pickling
modules. py/mod is used instead, as it is clearer and uses
one less byte. (+514)
* The test suite no longer uses the deprecated
datetime.datetime.utcnow() function. (+539)
* The breaking changes from v4 were inadvertedly included in
v3.4.1, which has been yanked. This release remedies this by
reverting the v4 changes.
* Support decoding pandas dataframes encoded with versions
3.3.0 and older. (+536)
* Officially support Python 3.12 in the GitHub Actions testing
matrix, and update GHA package versions used. (+524)
* Improve reproducibility of benchmarking commands on Linux by
using taskset and adding a "HOWTO" run benchmarks section in
benchmarking/README.md. (+526)
* The setup.cfg packaging configuration has been replaced by
pyproject.toml. (+527)
* yaml is now supported as a jsonpickle backend. (+528)
* OSSFuzz scripts are now available in the fuzzing/ directory.
(+525)
* Pure-python dtypes are now preserved across encode()/decode()
roundtrips for the pandas extension.
* Pandas dataframe columns with an object dtype that contain
multiple different types within (e.g. a column of type
list[Union[str, int]]) now preserve the types upon being
roundtripped. (#457)
* Fix warnings in the test suite regarding numpy.compat usage.
* The unpickler was updated to avoid using eval, which helps
improve its security. Users can still pass safe=False to
decode to use the old behavior, though this is not
recommended. (+513)
* Objects can now exclude specific attributes from pickling by
providing a _jsonpickle_exclude class or instance attribute.
This attribute should contain the list of attribute names to
exclude when pickling the object.
* Sun Jun 30 2024 Dirk Müller <dmueller@suse.com>
- update to 3.2.2:
* A bug with the incorrect (de)serialization of NoneType
objects has been fixed. (+507)
* tests/benchmark.py was updated to avoid Python 2 syntax.
(+508)
* The unpickler was updated to avoid creating temporary
functions. (+508)
* Some basic scripts have been made to analyze benchmark
results. (+511)
* Fix test suite compatibility with Numpy 2.x (+512)
* setup.cfg was updated to use license_files instead of
license_file.
* Wed Jun 19 2024 Dirk Müller <dmueller@suse.com>
- update to 3.2.1:
* The ``ignorereserved`` parameter to the private
``_restore_from_dict()`` function has been restored for
backwards compatibility. (+501)
* Nested dictionaries in `py/state` are now correctly restored when
tracking object references. (+501) (#500)
* `jsonpickle.ext.numpy.register_handlers` now provides options
that are forwarded to the `NumpyNDArrayHandler` constructor.
* Fix bug of not handling ``classes`` argument to
`jsonpickle.decode` being a dict. Previously, the keys were
ignored and only values were used. (+494)
* Allow the ``classes`` argument to `jsonpickle.pickle` to have
class objects as keys. This extends the current functionality
of only having class name strings as keys. (+494)
* The ``garden setup/dev`` action and ``requirements-dev.txt``
requirements file now include test dependencies for use
during development.
* Added support for Python 3.13. (+505) (#504)
* Sun Apr 14 2024 Dirk Müller <dmueller@suse.com>
- update to 3.0.4:
* Fixed an issue with django.SafeString and other classes
inheriting from str having read-only attribute errors
* The test suite was made compatible with pytest-ruff>=0.3.0
* A `garden.yaml` file was added for use with the
`garden` command runner.
* The test suite was updated to avoid deprecated SQLALchemy APIs.
* The `jaraco.packaging.sphinx` documentation dependency was
removed.
* Thu Mar 28 2024 ecsos <ecsos@opensuse.org>
- Fix build error for Leap.
* Sat Mar 16 2024 Dirk Müller <dmueller@suse.com>
- update to 3.0.3:
* Compatibilty with Pandas and Cython 3.0 was added.
* Fixed a bug where pickling some built-in classes (e.g. zoneinfo)
Version: 1.3-bp155.2.13
* Sat Mar 14 2020 Tomáš Chvátal <tchvatal@suse.com>
- Fix build without python2
* Mon Jun 17 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.2:
* support new sqlalchemy
- Remove merged patch sqlalchemy13.patch
* Tue Mar 19 2019 Tomáš Chvátal <tchvatal@suse.com>
- Add patch to work with sqlalchemy 1.3:
* sqlalchemy13.patch
* Fri Mar 15 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.1:
* Python 3.7 collections.Iterator deprecation warnings have been fixed. (#229).
* Improved Pandas support for datetime and complex numbers. (#245)
* NOTE jsonpickle no longer supports Python2.6, or Python3 < 3.4. The officially supported Python versions are now 2.7 and 3.4+.
* Improved Pandas and Numpy support. (#227)
* Improved support for pickling iterators. (#216)
* Better support for the stdlib json module when simplejson is not installed. (#217)
* jsonpickle will now output python3-style module names when pickling builtins methods or functions. (#223)
* jsonpickle will always flatten primitives, even when max_depth is reached, which avoids encoding unicode strings into their u'string' representation.
* Nested classes are now supported on Python 3. (#206, #176).
* Better support for older (pre-1.9) versions of numpy (#195).
Version: 1.3-bp152.2.2
* Sat Mar 14 2020 Tomá? Chvátal <tchvatal@suse.com>
- Fix build without python2
* Fri Feb 28 2020 Matej Cepl <mcepl@suse.com>
- Add PR292-Python38.patch to fix Python 3.8 incompatibilities
(gh#jsonpickle/jsonpickle#281).
* Thu Dec 05 2019 Matej Cepl <mcepl@suse.com>
- Exclude tests failing with python 3.8 (test_thing_with_fd,
test_list_with_fd, and test_dict_with_fd). gh#jsonpickle/jsonpickle#281
* Mon Jun 17 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 1.2:
* support new sqlalchemy
- Remove merged patch sqlalchemy13.patch
* Tue Mar 19 2019 Tomá? Chvátal <tchvatal@suse.com>
- Add patch to work with sqlalchemy 1.3:
* sqlalchemy13.patch
* Fri Mar 15 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 1.1:
* Python 3.7 collections.Iterator deprecation warnings have been fixed. (#229).
* Improved Pandas support for datetime and complex numbers. (#245)
* NOTE jsonpickle no longer supports Python2.6, or Python3 < 3.4. The officially supported Python versions are now 2.7 and 3.4+.
* Improved Pandas and Numpy support. (#227)
* Improved support for pickling iterators. (#216)
* Better support for the stdlib json module when simplejson is not installed. (#217)
* jsonpickle will now output python3-style module names when pickling builtins methods or functions. (#223)
* jsonpickle will always flatten primitives, even when max_depth is reached, which avoids encoding unicode strings into their u'string' representation.
* Nested classes are now supported on Python 3. (#206, #176).
* Better support for older (pre-1.9) versions of numpy (#195).
Version: 0.9.6-bp151.1.2
* Tue Dec 04 2018 Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
* Wed May 23 2018 toddrme2178@gmail.com
- Update to version 0.9.6
* Better support for SQLAlchemy (#180).
* Better support for NumPy and SciKit-Learn. (#184).
- Update to version 0.9.5
* Better support for objects that implement the reduce protocol. (#170).
- Remove no longer relevant handle_more_than_two_args.patch
- Spec file cleanups
* Wed Apr 26 2017 toddrme2178@gmail.com
- Implement single-spec version.
- Fix source URL.
- Update to Version 0.9.4
* Arbitrary byte streams are now better supported.
(`#143 <https://github.com/jsonpickle/jsonpickle/issues/143>`_).
* Better support for NumPy data types. The Python3 NumPy support
is especially robust.
* Fortran-ordered based NumPy arrays are now properly serialized.
- Update to Version 0.9.3
* UUID objects can now be serialized
(`#130 <https://github.com/jsonpickle/jsonpickle/issues/130>`_).
* Added `set_decoder_options` method to allow decoder specific options
equal to `set_encoder_options`.
* Int keys can be encoded directly by e.g. demjson by passing
`numeric_keys=True` and setting its backend options via
`jsonpickle.set_encoder_options('demjson', strict=False)`.
* Newer Numpy versions (v1.10+) are now supported.
- Update to Version 0.9.2
* Fixes for serializing objects with custom handlers.
* We now properly serialize deque objects constructed with a `maxlen` parameter.
* Test suite fixes
- Update to Version 0.9.1
* Support datetime objects with FixedOffsets.
- Update to Version 0.9.0
* 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/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).
- Update to Version 0.8.0
* We now support serializing objects that contain references to
module-level functions
(`#77 <https://github.com/jsonpickle/jsonpickle/issues/77>`_).
* Better Pickle Protocol v2 support
(`#78 <https://github.com/jsonpickle/jsonpickle/issues/78>`_).
* Support for string __slots__ and iterable __slots__
(`#67 <https://github.com/jsonpickle/jsonpickle/issues/66>`_)
(`#68 <https://github.com/jsonpickle/jsonpickle/issues/67>`_).
* `encode()` now has a `warn` option that makes jsonpickle emit warnings
when encountering objects that cannot be pickled.
* A Javascript implementation of jsonpickle is now included
in the jsonpickleJS directory.
- Update to Version 0.7.2
* 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.
- Update to Version 0.7.1
* Added support for Python 3.4.
* Added support for :class:`posix.stat_result`.
- Update to Version 0.7.0
* Added ``handles`` decorator to :class:`jsonpickle.handlers.BaseHandler`,
enabling simple declaration of a handler for a class.
* `__getstate__()` and `__setstate__()` are now honored
when pickling objects that subclass :class:`dict`.
* jsonpickle can now serialize :class:`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)`
- Update to Version 0.6.1
* Python 3.2 support, and additional fixes for Python 3.
- Update to Version 0.6.0
* Python 3 support!
* :class:`time.struct_time` is now serialized using the built-in
:class:`jsonpickle.handlers.SimpleReduceHandler`.
- Update to Version 0.5.0
* Non-string dictionary keys (e.g. ints, objects) are now supported
by passing `keys=True` to :func:`jsonpickle.encode` and
:func:`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
:func:`jsonpickle.encode`.
- Add handle_more_than_two_args.patch
Needed for python 3.6 compatibility. Note that only the first
part of the upstream patch is used. The second part is travis CI
changes.
* Mon Jun 17 2013 speilicke@suse.com
- Buildrequire python-simplejson to fix unit tests
- Recommend simplejson instead of demjson (moved to suggests)
* Tue May 21 2013 speilicke@suse.com
- Drop requirement on simplejson, the json module is part of Python-2.6
- feedparser runtime requirement was bogus
- Only suggest demjson and recommend yajl / jsonlib experimental bindings
* Fri Sep 23 2011 saschpe@suse.de
- Update to version 0.4.0:
* Switch build from setuptools to distutils
* Consistent dictionary key ordering
* Fix areas with improper support for unpicklable=False
* Added support for cyclical data structures (#16).
* Experimental support for jsonlib and py-yajl backends.
* New contributers David K. Hess and Alec Thomas
- Set license to BSD-3-Clause (SPDX style)
- Run testsuite and added needed (Build)Requires
* Mon Dec 14 2009 jfunk@funktronics.ca
- Update to 0.3.1
- Include tests and docs directories in sdist for distribution packages.
- Version 0.3.0 - December 11, 2009
- Officially migrated to git from subversion. Project home now at
http://jsonpickle.github.com/. Thanks to Michael Jone’s sphinx-to-github.
- Fortified jsonpickle against common error conditions.
- Added support for:
- 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!
- Version 0.2.0 - January 10, 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)
- Version 0.1.0 - August 21, 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
* Mon Aug 11 2008 jfunk@funktronics.ca
- Initial release