The package rpms/python-tables.git has added or updated architecture specific content in
its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/python-tables.git/commit/?id=3285....
Change:
+%ifarch s390x
Thanks.
Full change:
============
commit d43a32b28ece11f7683b8d3343f54317e9120a18
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Sat Jun 1 22:36:19 2019 +0200
Update to 3.5.2
diff --git a/737.patch b/737.patch
deleted file mode 100644
index f0a365e..0000000
--- a/737.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From cd97f5ebe937b892f0582fc3440d43a38b625b18 Mon Sep 17 00:00:00 2001
-From: Tom Kooij <tomkooij(a)tomkooij.nl>
-Date: Sat, 25 May 2019 19:02:45 +0200
-Subject: [PATCH] Cast cache to list: cache changes during iteration
-
-Cache items are changed while looping over the cache items, this causes an
-`Dictionary keys changed during iteration` error in python>=3.8.
-
-Cast the cache to a list first and iterate over the list to prevent the error.
----
- tables/file.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tables/file.py b/tables/file.py
-index ac9d6accc..d924e3626 100644
---- a/tables/file.py
-+++ b/tables/file.py
-@@ -2849,7 +2849,7 @@ def _update_node_locations(self, oldpath, newpath):
-
- # Update alive and dead descendents.
- for cache in [self._node_manager.cache, self._node_manager.registry]:
-- for nodepath in cache:
-+ for nodepath in list(cache):
- if nodepath.startswith(oldprefix) and nodepath != oldprefix:
- nodesuffix = nodepath[oldprefix_len:]
- newnodepath = join_path(newpath, nodesuffix)
diff --git a/python-tables.spec b/python-tables.spec
index 87a5970..b1f65a8 100644
--- a/python-tables.spec
+++ b/python-tables.spec
@@ -6,7 +6,7 @@
Summary: HDF5 support in Python
Name: python-tables
-Version: 3.5.1
+Version: 3.5.2
Release: 1%{?dist}%{?gitcommit:.git%{shortcommit}}
#Source0:
https://github.com/PyTables/PyTables/archive/%{commit}/PyTables-%{commit}...
Source0:
https://github.com/PyTables/PyTables/archive/v%{version}/python-tables-%{...
@@ -18,9 +18,6 @@ Source1:
https://github.com/PyTables/PyTables/releases/download/v%{manual
Patch0: always-use-blosc.diff
Patch1: skip-tests-on-s390x.diff
-# Python 3.8 support
-Patch2:
https://github.com/PyTables/PyTables/pull/737.patch
-
License: BSD
URL:
http://www.pytables.org
@@ -88,8 +85,6 @@ The %{name}-doc package contains the documentation for %{name}.
%patch1 -p1
%endif
-%patch2 -p1
-
cp -a %{SOURCE1} pytablesmanual.pdf
echo "import sys, tables; sys.exit(tables.test(verbose=1))" >
bench/check_all.py
@@ -138,8 +133,12 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3}
bench/check_all.py
%doc examples/
%changelog
+* Sat Jun 1 2019 Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl> - 3.5.2-1
+- Update to latest version (#1715694)
+
* Wed May 22 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-1
- Update to 3.5.1 (#1687831)
+- Fix build under python3.8 (#1712818)
* Sat Mar 16 2019 Orion Poplawski <orion(a)nwra.com> - 3.4.4-5
- Rebuild for hdf5 1.10.5
diff --git a/sources b/sources
index 2d2b531..55ab7ce 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (pytablesmanual-3.3.0.pdf) =
beb068a301e20370fdab9f942bed271b94872f409087cba8f7127967a51e45a233d8e6df1aaa12aad532282aec324b0c823b1646be31a5b71e5e7c035ba06270
-SHA512 (python-tables-3.5.1.tar.gz) =
ffbfb058280f115dbab1e91301573197edb08567203a1bfcf329c0871ed164c9a185a56f8218b0071af8e72ea133d28973a4ea3110e437e10a32bc553e481cd0
+SHA512 (python-tables-3.5.2.tar.gz) =
72598482c5824b79a5bd60e5ca544f874936be9ce38de6d8f4297d895635cb2522fe0af07788a3370813a8bf04142edf1503cdef87cf570581da9915ced5ad93
commit 32853b17b9f10204b55bd58c2d355dca0d2addb7
Author: Zbigniew Jdrzejewski-Szmek <zbyszek(a)in.waw.pl>
Date: Wed May 22 16:15:37 2019 +0200
Skip tests failing on s390x
diff --git a/python-tables.spec b/python-tables.spec
index 1e49cc1..87a5970 100644
--- a/python-tables.spec
+++ b/python-tables.spec
@@ -16,9 +16,10 @@ Source0:
https://github.com/PyTables/PyTables/archive/v%{version}/python-
Source1:
https://github.com/PyTables/PyTables/releases/download/v%{manual_version}...
Patch0: always-use-blosc.diff
+Patch1: skip-tests-on-s390x.diff
# Python 3.8 support
-Patch1:
https://github.com/PyTables/PyTables/pull/737.patch
+Patch2:
https://github.com/PyTables/PyTables/pull/737.patch
License: BSD
URL:
http://www.pytables.org
@@ -79,7 +80,16 @@ BuildArch: noarch
The %{name}-doc package contains the documentation for %{name}.
%prep
-%autosetup -n PyTables-%{version} -p1
+%setup -n PyTables-%{version} -q
+%patch0 -p1
+
+#
https://github.com/PyTables/PyTables/issues/735
+%ifarch s390x
+%patch1 -p1
+%endif
+
+%patch2 -p1
+
cp -a %{SOURCE1} pytablesmanual.pdf
echo "import sys, tables; sys.exit(tables.test(verbose=1))" >
bench/check_all.py
diff --git a/skip-tests-on-s390x.diff b/skip-tests-on-s390x.diff
new file mode 100644
index 0000000..64858df
--- /dev/null
+++ b/skip-tests-on-s390x.diff
@@ -0,0 +1,167 @@
+diff --git PyTables-3.5.1/tables/tests/test_index_backcompat.py~
PyTables-3.5.1/tables/tests/test_index_backcompat.py
+index 058bd2f0aa..7aaf5e8836 100644
+--- PyTables-3.5.1/tables/tests/test_index_backcompat.py~
++++ PyTables-3.5.1/tables/tests/test_index_backcompat.py
+@@ -9,162 +9,8 @@ from tables.tests.common import unittest, test_filename
+ from tables.tests.common import PyTablesTestCase as TestCase
+ from six.moves import range
+
+-
+-# Check indexes from PyTables version 2.0
+-class IndexesTestCase(common.TestFileMixin, TestCase):
+-
+- def setUp(self):
+- super(IndexesTestCase, self).setUp()
+- self.table1 = self.h5file.root.table1
+- self.table2 = self.h5file.root.table2
+- self.il = 0
+- self.sl = self.table1.cols.var1.index.slicesize
+-
+- def test00_version(self):
+- """Checking index version."""
+-
+- t1var1 = self.table1.cols.var1
+- if "2_0" in self.h5fname:
+- self.assertEqual(t1var1.index._v_version, "2.0")
+- elif "2_1" in self.h5fname:
+- self.assertEqual(t1var1.index._v_version, "2.1")
+-
+- def test01_string(self):
+- """Checking string indexes."""
+-
+- if common.verbose:
+- print('\n', '-=' * 30)
+- print("Running %s.test01_string..." % self.__class__.__name__)
+-
+- table1 = self.table1
+- table2 = self.table2
+-
+- # Convert the limits to the appropriate type
+- il = str(self.il).encode('ascii')
+- sl = str(self.sl).encode('ascii')
+-
+- # Do some selections and check the results
+- # First selection
+- t1var1 = table1.cols.var1
+- self.assertTrue(t1var1 is not None)
+- results1 = [p["var1"] for p in
+- table1.where('(il<=t1var1)&(t1var1<=sl)')]
+- results2 = [p["var1"] for p in table2 if il <= p["var1"]
<= sl]
+- results1.sort()
+- results2.sort()
+- if verbose:
+- print("Should look like:", results2)
+- print("Length results:", len(results1))
+- print("Should be:", len(results2))
+- self.assertEqual(len(results1), len(results2))
+- self.assertEqual(results1, results2)
+-
+- def test02_bool(self):
+- """Checking bool indexes."""
+-
+- if common.verbose:
+- print('\n', '-=' * 30)
+- print("Running %s.test02_bool..." % self.__class__.__name__)
+-
+- table1 = self.table1
+- table2 = self.table2
+-
+- # Do some selections and check the results
+- t1var2 = table1.cols.var2
+- self.assertTrue(t1var2 is not None)
+- results1 = [p["var2"] for p in table1.where('t1var2 ==
True')]
+- results2 = [p["var2"] for p in table2 if p["var2"] is True]
+- if verbose:
+- print("Selection results (index):", results1)
+- print("Should look like:", results2)
+- print("Length results:", len(results1))
+- print("Should be:", len(results2))
+- self.assertEqual(len(results1), len(results2))
+- self.assertEqual(results1, results2)
+-
+- def test03_int(self):
+- """Checking int indexes."""
+-
+- if common.verbose:
+- print('\n', '-=' * 30)
+- print("Running %s.test03_int..." % self.__class__.__name__)
+-
+- table1 = self.table1
+- table2 = self.table2
+-
+- # Convert the limits to the appropriate type
+- il = int(self.il)
+- sl = int(self.sl)
+-
+- # Do some selections and check the results
+- t1col = table1.cols.var3
+- self.assertTrue(t1col is not None)
+-
+- # First selection
+- results1 = [p["var3"] for p in
table1.where('(il<=t1col)&(t1col<=sl)')]
+- results2 = [p["var3"] for p in table2
+- if il <= p["var3"] <= sl]
+- # sort lists (indexing does not guarantee that rows are returned in
+- # order)
+- results1.sort()
+- results2.sort()
+- if verbose:
+- print("Length results:", len(results1))
+- print("Should be:", len(results2))
+- self.assertEqual(len(results1), len(results2))
+- self.assertEqual(results1, results2)
+-
+- def test04_float(self):
+- """Checking float indexes."""
+-
+- if common.verbose:
+- print('\n', '-=' * 30)
+- print("Running %s.test04_float..." % self.__class__.__name__)
+-
+- table1 = self.table1
+- table2 = self.table2
+-
+- # Convert the limits to the appropriate type
+- il = float(self.il)
+- sl = float(self.sl)
+-
+- # Do some selections and check the results
+- t1col = table1.cols.var4
+- self.assertTrue(t1col is not None)
+-
+- # First selection
+- results1 = [p["var4"] for p in
table1.where('(il<=t1col)&(t1col<=sl)')]
+- results2 = [p["var4"] for p in table2
+- if il <= p["var4"] <= sl]
+- # sort lists (indexing does not guarantee that rows are returned in
+- # order)
+- results1.sort()
+- results2.sort()
+- if verbose:
+- print("Length results:", len(results1))
+- print("Should be:", len(results2))
+- self.assertEqual(len(results1), len(results2))
+- self.assertEqual(results1.sort(), results2.sort())
+-
+-
+-# Check indexes from PyTables version 2.0
+-class Indexes2_0TestCase(IndexesTestCase):
+- h5fname = test_filename("indexes_2_0.h5")
+-
+-
+-# Check indexes from PyTables version 2.1
+-class Indexes2_1TestCase(IndexesTestCase):
+- h5fname = test_filename("indexes_2_1.h5")
+-
+-
+ def suite():
+ theSuite = unittest.TestSuite()
+- niter = 1
+-
+- for n in range(niter):
+- theSuite.addTest(unittest.makeSuite(Indexes2_0TestCase))
+- theSuite.addTest(unittest.makeSuite(Indexes2_1TestCase))
+-
+ return theSuite
+
+