From 058448ea0805945e93ff2e3d1a3a11330ca992bf022538a9f7b1dd7ed453a825 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Wed, 25 Nov 2020 14:12:34 +0000 Subject: [PATCH] - Update to 1.1.1: - Fixed regression where the serialization and deserialization functions could be inadvertently turned into instance methods with an unexpected argument signature, namely when pickle.dumps and pickle.loads are the pure Python version as is the case in pypy. - Reworked the means by which values are serialized and deserialized from backends, and provided for custom serialization of values. Added the CacheRegion.serializer and CacheRegion.deserializer parameters which may be set to any serializer. - Serialization and deserialization now take place within the CacheRegion so that backends may now assume string values in all cases. This simplifies the existing backends and also makes custom backends easier to write and maintain. - Additionally, the serializer is now applied to the user-defined value portion of the CachedValue and not to the metadata or other portions of CachedValue object itself, so the serialized portion is effectively a "payload" within the larger CachedValue structure that is passed as part of the larger string format. The overall format is a separate JSON of the cached value metadata, followed by the serialized form. This allows for end-user serialization schemes that are hardwired to the values themselves without the need to serialize dogpile's internal structures as well. - Existing custom backends should continue to work without issue; they now have the option to forego any separate serialization steps, and can also subclass a new backend BytesBackend that marks them as a backend that only deals with bytes coming in and out; all internal serialization logic from such a backend can be removed. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-dogpile.cache?expand=0&rev=60 --- dogpile.cache-1.0.2.tar.gz | 3 --- dogpile.cache-1.1.1.tar.gz | 3 +++ python-dogpile.cache.changes | 31 +++++++++++++++++++++++++++++++ python-dogpile.cache.spec | 9 ++++++--- 4 files changed, 40 insertions(+), 6 deletions(-) delete mode 100644 dogpile.cache-1.0.2.tar.gz create mode 100644 dogpile.cache-1.1.1.tar.gz diff --git a/dogpile.cache-1.0.2.tar.gz b/dogpile.cache-1.0.2.tar.gz deleted file mode 100644 index d5c4d5c..0000000 --- a/dogpile.cache-1.0.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64fda39d25b46486a4876417ca03a4af06f35bfadba9f59613f9b3d748aa21ef -size 351221 diff --git a/dogpile.cache-1.1.1.tar.gz b/dogpile.cache-1.1.1.tar.gz new file mode 100644 index 0000000..132fb8e --- /dev/null +++ b/dogpile.cache-1.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56d34c36419caa38cea940175998f72f4d26c7c8eefb5b6272861b9b67b0c55f +size 98082 diff --git a/python-dogpile.cache.changes b/python-dogpile.cache.changes index 36de0c5..50b8c95 100644 --- a/python-dogpile.cache.changes +++ b/python-dogpile.cache.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Wed Nov 25 14:10:35 UTC 2020 - Matej Cepl + +- Update to 1.1.1: + - Fixed regression where the serialization and deserialization + functions could be inadvertently turned into instance methods with + an unexpected argument signature, namely when pickle.dumps and + pickle.loads are the pure Python version as is the case in pypy. + - Reworked the means by which values are serialized and deserialized + from backends, and provided for custom serialization of values. + Added the CacheRegion.serializer and CacheRegion.deserializer + parameters which may be set to any serializer. + - Serialization and deserialization now take place within the + CacheRegion so that backends may now assume string values in all + cases. This simplifies the existing backends and also makes custom + backends easier to write and maintain. + - Additionally, the serializer is now applied to the user-defined + value portion of the CachedValue and not to the metadata or other + portions of CachedValue object itself, so the serialized portion is + effectively a "payload" within the larger CachedValue structure that + is passed as part of the larger string format. The overall format is + a separate JSON of the cached value metadata, followed by the + serialized form. This allows for end-user serialization schemes that + are hardwired to the values themselves without the need to serialize + dogpile's internal structures as well. + - Existing custom backends should continue to work without issue; they + now have the option to forego any separate serialization steps, and + can also subclass a new backend BytesBackend that marks them as + a backend that only deals with bytes coming in and out; all internal + serialization logic from such a backend can be removed. + ------------------------------------------------------------------- Mon Sep 21 05:40:07 UTC 2020 - Dirk Mueller diff --git a/python-dogpile.cache.spec b/python-dogpile.cache.spec index 0248afe..e97fa39 100644 --- a/python-dogpile.cache.spec +++ b/python-dogpile.cache.spec @@ -19,14 +19,17 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %global skip_python2 1 Name: python-dogpile.cache -Version: 1.0.2 +Version: 1.1.1 Release: 0 +%define modname dogpile.cache +%define modver 1_1_1 Summary: A caching front-end based on the Dogpile lock License: BSD-3-Clause Group: Development/Languages/Python URL: https://github.com/sqlalchemy/dogpile.cache -Source: https://files.pythonhosted.org/packages/source/d/dogpile.cache/dogpile.cache-%{version}.tar.gz +Source: https://github.com/sqlalchemy/%{modname}/archive/rel_%{modver}.tar.gz#/%{modname}-%{version}.tar.gz BuildRequires: %{python_module Mako} +BuildRequires: %{python_module dbm} BuildRequires: %{python_module decorator >= 4.0.0} BuildRequires: %{python_module mock} BuildRequires: %{python_module pytest} @@ -48,7 +51,7 @@ continued access to an expiring data value while a single thread generates a new value. %prep -%setup -q -n dogpile.cache-%{version} +%setup -q -n %{modname}-rel_%{modver} %build %python_build