From b901d092d2d759aab626209611c2815773f1ffb734418e2d9fc98d0191f76db9 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 19 Dec 2025 21:59:41 +0000 Subject: [PATCH] - Exclude testing with pandas on Leap 16.0 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-jsonpickle?expand=0&rev=50 --- .gitattributes | 23 ++ .gitignore | 1 + enable_gmpy_test.patch | 12 + jsonpickle-4.0.2.tar.gz | 3 + jsonpickle-4.1.1.tar.gz | 3 + python-jsonpickle.changes | 595 ++++++++++++++++++++++++++++++++++++++ python-jsonpickle.spec | 96 ++++++ 7 files changed, 733 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 enable_gmpy_test.patch create mode 100644 jsonpickle-4.0.2.tar.gz create mode 100644 jsonpickle-4.1.1.tar.gz create mode 100644 python-jsonpickle.changes create mode 100644 python-jsonpickle.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/enable_gmpy_test.patch b/enable_gmpy_test.patch new file mode 100644 index 0000000..25f58bb --- /dev/null +++ b/enable_gmpy_test.patch @@ -0,0 +1,12 @@ +Index: jsonpickle-3.0.2/tests/ecdsa_test.py +=================================================================== +--- jsonpickle-3.0.2.orig/tests/ecdsa_test.py ++++ jsonpickle-3.0.2/tests/ecdsa_test.py +@@ -7,6 +7,7 @@ import pytest + from helper import SkippableTest + + import jsonpickle ++import jsonpickle.ext.gmpy + + + @pytest.fixture(scope='module', autouse=True) diff --git a/jsonpickle-4.0.2.tar.gz b/jsonpickle-4.0.2.tar.gz new file mode 100644 index 0000000..87fe46f --- /dev/null +++ b/jsonpickle-4.0.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e650b9853adcdab9d9d62a88412b6d36e9a59ba423b01cacf0cd4ee80733aca +size 315121 diff --git a/jsonpickle-4.1.1.tar.gz b/jsonpickle-4.1.1.tar.gz new file mode 100644 index 0000000..080859a --- /dev/null +++ b/jsonpickle-4.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f86e18f13e2b96c1c1eede0b7b90095bbb61d99fedc14813c44dc2f361dbbae1 +size 316885 diff --git a/python-jsonpickle.changes b/python-jsonpickle.changes new file mode 100644 index 0000000..9e054a7 --- /dev/null +++ b/python-jsonpickle.changes @@ -0,0 +1,595 @@ +------------------------------------------------------------------- +Mon Dec 15 10:20:21 UTC 2025 - Markéta Machová + +- Exclude testing with pandas on Leap 16.0 + +------------------------------------------------------------------- +Mon Sep 29 11:33:04 UTC 2025 - Dirk Müller + +- 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 13:37:56 UTC 2025 - John Paul Adrian Glaubitz + +- 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 5 07:24:26 UTC 2025 - John Paul Adrian Glaubitz + +- 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 16:10:49 UTC 2024 - Dirk Müller + +- 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 20:34:24 UTC 2024 - Dirk Müller + +- 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 08:55:02 UTC 2024 - Dirk Müller + +- 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 08:29:04 UTC 2024 - Dirk Müller + +- 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 09:33:40 UTC 2024 - ecsos + +- Fix build error for Leap. + +------------------------------------------------------------------- +Sat Mar 16 08:34:57 UTC 2024 - Dirk Müller + +- 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) + +------------------------------------------------------------------- +Fri Dec 29 13:52:24 UTC 2023 - Antonio Larrosa + +- Add patch to enable the gmpy test correctly: + * enable_gmpy_test.patch +- Disable BuildRequies pandas and scikit-learn in SLE where + they're not available and only used for tests +- Use python-bson instead of python-pymongo in SLE +- Do not search for tests recursively in SLE but explicitly name + the directory/files containing tests. This solves an issue + building the package without pandas in SLE. + +------------------------------------------------------------------- +Wed Dec 13 16:18:51 UTC 2023 - Ben Greiner + +- 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 + +------------------------------------------------------------------- +Wed Jun 14 10:48:59 UTC 2023 - Markéta Machová + +- Add patch pandas2.patch to fix compatibility +- Skip flaky test + +------------------------------------------------------------------- +Sat Jun 10 17:30:51 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Sat Jan 21 19:24:29 UTC 2023 - Ben Greiner + +- 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 + +------------------------------------------------------------------- +Thu Jan 6 19:51:47 UTC 2022 - Ben Greiner + +- Don't test and recommend unmaintained packages demjson and + feedparser + +------------------------------------------------------------------- +Mon Feb 15 21:52:25 UTC 2021 - Ben Greiner + +- 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 + +------------------------------------------------------------------- +Sat Mar 14 08:25:54 UTC 2020 - Tomáš Chvátal + +- Fix build without python2 + +------------------------------------------------------------------- +Fri Feb 28 18:31:13 CET 2020 - Matej Cepl + +- Add PR292-Python38.patch to fix Python 3.8 incompatibilities + (gh#jsonpickle/jsonpickle#281). + +------------------------------------------------------------------- +Thu Dec 5 18:13:07 CET 2019 - Matej Cepl + +- 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 11:54:50 UTC 2019 - Tomáš Chvátal + +- Update to 1.2: + * support new sqlalchemy +- Remove merged patch sqlalchemy13.patch + +------------------------------------------------------------------- +Tue Mar 19 08:12:54 UTC 2019 - Tomáš Chvátal + +- Add patch to work with sqlalchemy 1.3: + * sqlalchemy13.patch + +------------------------------------------------------------------- +Fri Mar 15 13:00:30 UTC 2019 - Tomáš Chvátal + +- 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). + +------------------------------------------------------------------- +Tue Dec 4 12:49:37 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Wed May 23 04:19:13 UTC 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 03:51:53 UTC 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 `_). + * 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 `_). + * 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 `_). + * 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 `_). + * Better Pickle Protocol v2 support + (`#78 `_). + * Support for string __slots__ and iterable __slots__ + (`#67 `_) + (`#68 `_). + * `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 09:17:39 UTC 2013 - speilicke@suse.com + +- Buildrequire python-simplejson to fix unit tests +- Recommend simplejson instead of demjson (moved to suggests) + +------------------------------------------------------------------- +Tue May 21 12:35:14 UTC 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 13:14:31 UTC 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 19:57:37 UTC 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 diff --git a/python-jsonpickle.spec b/python-jsonpickle.spec new file mode 100644 index 0000000..768b400 --- /dev/null +++ b/python-jsonpickle.spec @@ -0,0 +1,96 @@ +# +# spec file for package python-jsonpickle +# +# Copyright (c) 2025 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-jsonpickle +Version: 4.1.1 +Release: 0 +Summary: Python library for serializing any arbitrary object graph into JSON +License: BSD-3-Clause +URL: https://github.com/jsonpickle/jsonpickle +Source: https://files.pythonhosted.org/packages/source/j/jsonpickle/jsonpickle-%{version}.tar.gz +Patch1: enable_gmpy_test.patch +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module importlib_metadata if %python-base < 3.8} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools >= 42} +BuildRequires: %{python_module setuptools_scm >= 3.4.1} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +%if %python_version_nodots < 38 +Requires: python-importlib_metadata +%endif +BuildArch: noarch +# SECTION test requirements +%if 0%{?suse_version} <= 1600 +BuildRequires: %{python_module tzdata} +%endif +BuildRequires: %{python_module SQLAlchemy} +BuildRequires: %{python_module ecdsa} +BuildRequires: %{python_module feedparser} +BuildRequires: %{python_module gmpy2 if %python-base < 3.12} +BuildRequires: %{python_module numpy} +%if 0%{?suse_version} >= 1550 && 0%{?suse_version} < 1600 || 0%{?suse_version} >= 1699 +BuildRequires: %{python_module pandas} +BuildRequires: %{python_module pymongo} +BuildRequires: %{python_module scikit-learn} +%else +BuildRequires: %{python_module bson} +%endif +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module simplejson} +BuildRequires: %{python_module ujson} +# /SECTION +%python_subpackages + +%description +Python library for serializing any arbitrary object graph into JSON. +It can take almost any Python object and turn the object into JSON. +Additionally, it can reconstitute the object back into Python. + +%prep +%autosetup -p1 -n jsonpickle-%{version} +sed -i 's/ --cov//' pytest.ini + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +rm -rv fuzzing +# test_multindex_dataframe_roundtrip is flaky on i586 +donttest="test_multindex_dataframe_roundtrip" +# https://github.com/jsonpickle/jsonpickle/issues/460 +donttest+=" or test_timedelta_index_roundtrip" +%if 0%{?suse_version} >= 1550 && 0%{?suse_version} < 1600 || 0%{?suse_version} >= 1699 +%pytest -ra -k "not ($donttest)" +%else +%pytest -ra -k "not ($donttest)" tests jsonpickle/pickler.py jsonpickle/unpickler.py jsonpickle/util.py +%endif + +%files %{python_files} +%license LICENSE +%doc README.rst CHANGES.rst +%{python_sitelib}/jsonpickle +%{python_sitelib}/jsonpickle-%{version}.dist-info + +%changelog