- 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)
OBS-URL: https://build.opensuse.org/request/show/1225333
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=19
* 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)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=42
- 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.
OBS-URL: https://build.opensuse.org/request/show/1184137
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=18
* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=40
- 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)
OBS-URL: https://build.opensuse.org/request/show/1181704
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=17
* 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)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=38
- 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.
OBS-URL: https://build.opensuse.org/request/show/1167627
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=16
* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=36
- Update to 3.0.2
* Properly raise warning if a custom pickling handler returns
None. (#433)
* Fix issue with serialization of certain sklearn objects
breaking when the numpy handler was enabled. (#431) (+434)
* Allow custom backends to not implement _encoder_options (#436)
(+446)
* Implement compatibility with pandas 2 (+446)
* Fix encoding/decoding of dictionary subclasses with referencing
(+455)
* Fix depth tracking for list/dict referencing (+456)
- Drop pandas2.patch
- Skip a noncritical test due to pandas built with Cython 3
gh#jsonpickle/jsonpickle#460
OBS-URL: https://build.opensuse.org/request/show/1132921
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=28
- Update to 3.0.1
* Remove accidental pin of setuptools to versions below 59. This
allows jsonpickle to build with CPython 3.11 and 3.12 alphas.
(#424)
* Remove accidental dependency on pytz in pandas tests. (+421)
* Fix issue with decoding bson.bson.Int64 objects (#422)
- Release 3.0.0
* Drop support for CPython<3.7. CPython 3.6 and below have
reached EOL and no longer receive security updates. (#375)
* Add support for CPython 3.11. (#395) (+396)
* Remove jsonlib and yajl backends (py2 only)
* Add `include_properties` option to the pickler. This should
only be used if analyzing generated json outside of Python.
(#297) (+387)
* Allow the `classes` argument to `jsonpickle.decode` to be a
dict of class name to class object. This lets you decode
arbitrary dumps into different classes. (#148) (+392)
* Fix bug with deserializing `numpy.poly1d`. (#391)
* Allow frozen dataclasses to be deserialized. (#240)
* Fixed a bug where pickling a function could return a `None`
module. (#399)
* Removed old bytes/quopri and ref decoding abaility from the
unpickler. These were last used in jsonpickle<1. Removing them
causes a slight speedup in unpickling lists (~5%). (+403)
* Fixed a bug with namedtuples encoding on CPython 3.11. (#411)
* When using the `sort_keys` option for the `simplejson` backend,
jsonpickle now produces correct object references with py/id
tags. (#408)
* Speed up the internal method `_restore_tags` by ~10%. This
should speed up unpickling of almost every object.
- Release 2.2.0
* Classes with a custom `__getitem__()` and `append()` now pickle
properly. (#362) (+379)
* Remove the demjson backend, as demjson hasn't been maintained
for 5 years. (+379)
* Added new handler for numpy objects when using
unpickleable=False. (#381) (+382)
* Added exception handling for class attributes that can't be
accessed. (#301) (+383)
* Added a long-requested on_missing attribute to the Unpickler
class. This lets you choose behavior for when jsonpickle can't
find a class to deserialize to. (#190) (#193) (+384)
* Private members of `__slots__` are no longer skipped when
encoding. Any objects encoded with versions prior to 2.2.0
should still decode properly. (#318) (+385)
- Release 2.1.0
* Python 3.10 is now officially supported. (+376)
* `is_reducible()` was sped up by ~80%. (+353) (+354)
* `_restore_tags()` was sped up by ~100%. Unpickling items with a
lot of tuples and sets will benefit most. Python 2 users and
users deserializing pickles from jsonpickle <= 0.9.6 may see a
slight performance decrease if using a lot of bytes, ref,
and/or repr objects. (+354)
* `is_iterator()` was sped up by ~20% by removing an unnecessary
variable assignment. (+354)
* `jsonpickle.decode` has a new option, `v1_decode` to assist in
decoding objects created in jsonpickle version 1. (#364)
* The `encode()` documentation has been updated to help sklearn
users.
* `SQLALchemy<1.2` is no longer being tested by jsonpickle. Users
of sqlalchemy + jsonpickle can always use 1.2 or 1.3. When
jsonpickle v3 is released we will add SQLAlchemy 1.4 to the
test suite alongside removal of support for Python 3.5 and
earlier.
- Remove testing skip conditionals:
* no python36 anymore
* jsonpickle not in Ring1 anymore
OBS-URL: https://build.opensuse.org/request/show/1060463
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=23
- Update to version 2.0.0
* Major release: the serialized JSON format now preserves
dictionary identity, which is a subtle change in the
serialized format. (#351)
* Dictionary identity is now preserved. For example, if the same
dictionary appears twice in a list, the reconstituted list
will now contain two references to the same dictionary. (#255)
(+332)
- Changes in v1.5.2
* Patch release to avoid the change in behavior from the
preservation of dict identity. The next release will be
v2.0.0. (#351)
* This relese does not include the performance improvements from
v1.5.1.
* Pandas DataFrame objects with multilevel columns are now
supported. (#346) (+347)
* Numpy 1.20 is now officially supported. (#336)
* Python 3.9 is now officially supported. (+348)
* Achieved a small speedup for _get_flattener by merging type
checks. (+349)
- Changes in v1.5.1
* The performance of the unpickler was drastically improved by
avoiding tag checks for basic Python types. (+340)
* decode() documentation improvements. (+341)
* Serialization of Pandas DataFrame objects that contain
timedelta64[ns] dtypes are now supported. (+330) (#331)
* Dictionary identity is now preserved. For example, if the same
dictionary appears twice in a list, the reconstituted list
will now contain two references to the same dictionary. (#255)
(+332)
* Unit tests were added to ensure that sklearn.tree.
DecisionTreeClassifier objects are properly serialized. (#155)
(+344)
* The is_reducible() utility function used by encode() is now 4x
faster! Objects that provide __getstate__(), __setstate__(),
and __slots__ benefit most from these improvements. (+343)
* Improved pickler flatten()/encode() performance. (+345)
- Changes in v1.5.0
* Previous versions of jsonpickle with make_refs=False would
emit null when encountering an object it had already seen when
traversing objects. All instances of the object are now
serialized. While this is arguably an improvement in the vast
majority of scenarios, it is a change in behavior and is thus
considered a minor-level change. (#333) (#334) (#337) (+338)
* Multiple enums are now serialized correctly with
make_refs=False. (#235)
- Changes in v1.4.2
* Use importlib.metadata from the stdlib on Python 3.8. (+305)
(#303)
* Micro-optimize type checks to use a set for lookups. (+327)
* Documentation improvements.
- Changes in v1.4.1
* Patch release for Python 3.8 importlib_metadata support. (#300)
- Changes in v1.4
* Python 3.8 support. (#292)
* jsonpickle.encode now supports the standard indent and
separators arguments, and passes them through to the active
JSON backend library. (#183)
* We now include a custom handler for array.array objects. (#199)
* Dict key order is preserved when pickling dictionaries on
Python3. (#193)
* Improved serialization of dictionaries with non-string keys.
Previously, using an enum that was both the key and a value in
a dictionary could end up with incorrect references to other
objects. The references are now properly maintained for dicts
with object keys that are also referenced in the dict's
values. (#286)
* Improved serialization of pandas.Series objects. (#287)
- Don't test numpy and pandas in python36 flavor, because
they are no longer available on Tumbleweed (NEP 29)
- Test some extras, but not in lettered staging if they are not
in Ring1.
- Drop PR292-Python38.patch merged upstream
OBS-URL: https://build.opensuse.org/request/show/872816
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=8
- Update to version 2.0.0
* Major release: the serialized JSON format now preserves
dictionary identity, which is a subtle change in the
serialized format. (#351)
* Dictionary identity is now preserved. For example, if the same
dictionary appears twice in a list, the reconstituted list
will now contain two references to the same dictionary. (#255)
(+332)
- Changes in v1.5.2
* Patch release to avoid the change in behavior from the
preservation of dict identity. The next release will be
v2.0.0. (#351)
* This relese does not include the performance improvements from
v1.5.1.
* Pandas DataFrame objects with multilevel columns are now
supported. (#346) (+347)
* Numpy 1.20 is now officially supported. (#336)
* Python 3.9 is now officially supported. (+348)
* Achieved a small speedup for _get_flattener by merging type
checks. (+349)
- Changes in v1.5.1
* The performance of the unpickler was drastically improved by
avoiding tag checks for basic Python types. (+340)
* decode() documentation improvements. (+341)
* Serialization of Pandas DataFrame objects that contain
timedelta64[ns] dtypes are now supported. (+330) (#331)
* Dictionary identity is now preserved. For example, if the same
dictionary appears twice in a list, the reconstituted list
will now contain two references to the same dictionary. (#255)
(+332)
OBS-URL: https://build.opensuse.org/request/show/872669
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=20
- Add patch to work with sqlalchemy 1.3:
* sqlalchemy13.patch
- 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).
OBS-URL: https://build.opensuse.org/request/show/686312
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=3
* 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).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=7