forked from pool/python-cloudpickle
- Add Move-builtin-classmethod_descriptor-to-a-different-t.patch to fix the
tests with python 3.10.8 gh#cloudpipe/cloudpickle#486 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cloudpickle?expand=0&rev=41
This commit is contained in:
parent
f2b813ee8b
commit
ec0d73250d
69
Move-builtin-classmethod_descriptor-to-a-different-t.patch
Normal file
69
Move-builtin-classmethod_descriptor-to-a-different-t.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From 9b332800fa09bec1f03fd4dd10ca69d1655c809c Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Garcia Moreno <daniel.garcia@suse.com>
|
||||
Date: Fri, 28 Oct 2022 13:55:45 +0200
|
||||
Subject: [PATCH] Move builtin classmethod_descriptor to a different test
|
||||
|
||||
This patch mvoes the builtin classmethod descriptor test to a different
|
||||
one and mark it to skip for python >= 3.10.8. The classmethod descriptor
|
||||
serializarion was removed from python in these releases:
|
||||
https://docs.python.org/3.10/whatsnew/changelog.html#id3
|
||||
|
||||
More information in the github issue:
|
||||
https://github.com/python/cpython/issues/95196
|
||||
|
||||
Fix https://github.com/cloudpipe/cloudpickle/issues/485
|
||||
---
|
||||
tests/cloudpickle_test.py | 20 +++++++++++++++-----
|
||||
1 file changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/cloudpickle_test.py b/tests/cloudpickle_test.py
|
||||
index 7bb0322..2701852 100644
|
||||
--- a/tests/cloudpickle_test.py
|
||||
+++ b/tests/cloudpickle_test.py
|
||||
@@ -868,21 +868,16 @@ class CloudPickleTest(unittest.TestCase):
|
||||
assert depickled_unbound_meth is unbound_classicmethod
|
||||
assert depickled_clsdict_meth is clsdict_classicmethod
|
||||
|
||||
-
|
||||
def test_builtin_classmethod(self):
|
||||
obj = 1.5 # float object
|
||||
|
||||
bound_clsmethod = obj.fromhex # builtin_function_or_method
|
||||
unbound_clsmethod = type(obj).fromhex # builtin_function_or_method
|
||||
- clsdict_clsmethod = type(
|
||||
- obj).__dict__['fromhex'] # classmethod_descriptor
|
||||
|
||||
depickled_bound_meth = pickle_depickle(
|
||||
bound_clsmethod, protocol=self.protocol)
|
||||
depickled_unbound_meth = pickle_depickle(
|
||||
unbound_clsmethod, protocol=self.protocol)
|
||||
- depickled_clsdict_meth = pickle_depickle(
|
||||
- clsdict_clsmethod, protocol=self.protocol)
|
||||
|
||||
# float.fromhex takes a string as input.
|
||||
arg = "0x1"
|
||||
@@ -893,6 +888,21 @@ class CloudPickleTest(unittest.TestCase):
|
||||
assert depickled_bound_meth(arg) == bound_clsmethod(arg)
|
||||
assert depickled_unbound_meth(arg) == unbound_clsmethod(arg)
|
||||
|
||||
+ @pytest.mark.skipif(
|
||||
+ sys.version_info >= (3, 10, 8),
|
||||
+ reason="Disabled classmethod_descriptor pickle https://github.com/python/cpython/issues/95196"
|
||||
+ )
|
||||
+ def test_builtin_classmethod_descriptor(self):
|
||||
+ obj = 1.5 # float object
|
||||
+
|
||||
+ clsdict_clsmethod = type(
|
||||
+ obj).__dict__['fromhex'] # classmethod_descriptor
|
||||
+
|
||||
+ depickled_clsdict_meth = pickle_depickle(
|
||||
+ clsdict_clsmethod, protocol=self.protocol)
|
||||
+
|
||||
+ # float.fromhex takes a string as input.
|
||||
+ arg = "0x1"
|
||||
if platform.python_implementation() == 'CPython':
|
||||
# Roundtripping a classmethod_descriptor results in a
|
||||
# builtin_function_or_method (CPython upstream issue).
|
||||
--
|
||||
2.38.0
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 28 12:04:27 UTC 2022 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add Move-builtin-classmethod_descriptor-to-a-different-t.patch to fix the
|
||||
tests with python 3.10.8 gh#cloudpipe/cloudpickle#486
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 1 11:24:59 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
|
@ -25,6 +25,8 @@ Summary: Extended pickling support for Python objects
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/cloudpipe/cloudpickle
|
||||
Source: https://files.pythonhosted.org/packages/source/c/cloudpickle/cloudpickle-%{version}.tar.gz
|
||||
# PATCH-FIX-UPSTREAM Move-builtin-classmethod_descriptor-to-a-different-t.patch gh#cloudpipe/cloudpickle#486
|
||||
Patch0: Move-builtin-classmethod_descriptor-to-a-different-t.patch
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
@ -53,7 +55,7 @@ Among other things, cloudpickle supports pickling for lambda expressions,
|
||||
functions and classes defined interactively in the __main__ module.
|
||||
|
||||
%prep
|
||||
%setup -q -n cloudpickle-%{version}
|
||||
%autosetup -p1 -n cloudpickle-%{version}
|
||||
|
||||
%build
|
||||
%python_build
|
||||
@ -71,6 +73,7 @@ export PYTHONPATH=':./tests/cloudpickle_testpkg'
|
||||
%files %{python_files}
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{python_sitelib}/*
|
||||
%{python_sitelib}/cloudpickle
|
||||
%{python_sitelib}/cloudpickle-%{version}*-info
|
||||
|
||||
%changelog
|
||||
|
Loading…
x
Reference in New Issue
Block a user