From 442e04b3d8744608771dfc06df1acf71f422c9d3 Mon Sep 17 00:00:00 2001 From: Gard Spreemann Date: Sun, 21 Nov 2021 15:13:35 +0100 Subject: Add patch for Python 3.10 compatibility --- debian/changelog | 6 ++ .../0002-Python-3.10-compatibility-fix.patch | 109 +++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 116 insertions(+) create mode 100644 debian/patches/0002-Python-3.10-compatibility-fix.patch diff --git a/debian/changelog b/debian/changelog index 91fd3ad..4877515 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +python-pyspike (0.6.0-5) unstable; urgency=medium + + * Add patch to fix Python 3.10 compatibility. + + -- Gard Spreemann Sun, 21 Nov 2021 15:14:28 +0100 + python-pyspike (0.6.0-4) unstable; urgency=medium * Fix broken watch file. diff --git a/debian/patches/0002-Python-3.10-compatibility-fix.patch b/debian/patches/0002-Python-3.10-compatibility-fix.patch new file mode 100644 index 0000000..52ffb09 --- /dev/null +++ b/debian/patches/0002-Python-3.10-compatibility-fix.patch @@ -0,0 +1,109 @@ +From: Gard Spreemann +Date: Sun, 21 Nov 2021 15:12:18 +0100 +Subject: Python 3.10 compatibility fix + +Importing Sequence et al. from collections has been deprecated since +Python 3.7. +--- + pyspike/DiscreteFunc.py | 6 +++--- + pyspike/PieceWiseConstFunc.py | 8 ++++---- + pyspike/PieceWiseLinFunc.py | 8 ++++---- + 3 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/pyspike/DiscreteFunc.py b/pyspike/DiscreteFunc.py +index caad290..48bc787 100644 +--- a/pyspike/DiscreteFunc.py ++++ b/pyspike/DiscreteFunc.py +@@ -5,7 +5,7 @@ + from __future__ import absolute_import, print_function + + import numpy as np +-import collections ++import collections.abc + import pyspike + + +@@ -155,11 +155,11 @@ class DiscreteFunc(object): + multiplicity = np.sum(self.mp[1:-1]) + else: + # check if interval is as sequence +- assert isinstance(interval, collections.Sequence), \ ++ assert isinstance(interval, collections.abc.Sequence), \ + "Invalid value for `interval`. None, Sequence or Tuple \ + expected." + # check if interval is a sequence of intervals +- if not isinstance(interval[0], collections.Sequence): ++ if not isinstance(interval[0], collections.abc.Sequence): + # find the indices corresponding to the interval + start_ind, end_ind = get_indices(interval) + value = np.sum(self.y[start_ind:end_ind]) +diff --git a/pyspike/PieceWiseConstFunc.py b/pyspike/PieceWiseConstFunc.py +index 17fdd3f..e33c61d 100644 +--- a/pyspike/PieceWiseConstFunc.py ++++ b/pyspike/PieceWiseConstFunc.py +@@ -5,7 +5,7 @@ + from __future__ import absolute_import, print_function + + import numpy as np +-import collections ++import collections.abc + import pyspike + + +@@ -39,7 +39,7 @@ class PieceWiseConstFunc(object): + + ind = np.searchsorted(self.x, t, side='right') + +- if isinstance(t, collections.Sequence): ++ if isinstance(t, collections.abc.Sequence): + # t is a sequence of values + # correct the cases t == x[0], t == x[-1] + ind[ind == 0] = 1 +@@ -173,10 +173,10 @@ class PieceWiseConstFunc(object): + return self.integral() / (self.x[-1]-self.x[0]) + + # check if interval is as sequence +- assert isinstance(interval, collections.Sequence), \ ++ assert isinstance(interval, collections.abc.Sequence), \ + "Invalid value for `interval`. None, Sequence or Tuple expected." + # check if interval is a sequence of intervals +- if not isinstance(interval[0], collections.Sequence): ++ if not isinstance(interval[0], collections.abc.Sequence): + # just one interval + a = self.integral(interval) / (interval[1]-interval[0]) + else: +diff --git a/pyspike/PieceWiseLinFunc.py b/pyspike/PieceWiseLinFunc.py +index 8faaec4..b3b503b 100644 +--- a/pyspike/PieceWiseLinFunc.py ++++ b/pyspike/PieceWiseLinFunc.py +@@ -5,7 +5,7 @@ + from __future__ import absolute_import, print_function + + import numpy as np +-import collections ++import collections.abc + import pyspike + + +@@ -46,7 +46,7 @@ class PieceWiseLinFunc: + + ind = np.searchsorted(self.x, t, side='right') + +- if isinstance(t, collections.Sequence): ++ if isinstance(t, collections.abc.Sequence): + # t is a sequence of values + # correct the cases t == x[0], t == x[-1] + ind[ind == 0] = 1 +@@ -211,10 +211,10 @@ class PieceWiseLinFunc: + return self.integral() / (self.x[-1]-self.x[0]) + + # check if interval is as sequence +- assert isinstance(interval, collections.Sequence), \ ++ assert isinstance(interval, collections.abc.Sequence), \ + "Invalid value for `interval`. None, Sequence or Tuple expected." + # check if interval is a sequence of intervals +- if not isinstance(interval[0], collections.Sequence): ++ if not isinstance(interval[0], collections.abc.Sequence): + # just one interval + a = self.integral(interval) / (interval[1]-interval[0]) + else: diff --git a/debian/patches/series b/debian/patches/series index e2a97f9..b13244f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ 0001-Use-assert_allclose-instead-of-assert_equal-in-tests.patch +0002-Python-3.10-compatibility-fix.patch -- cgit v1.2.3