future fails to build with Python 3.8.0b1. See https://copr.fedorainfracloud.org/coprs/g/python/python3.8/package/future/ for actual logs. This report is automated and not very verbose, but I'll get back here with details.
There's one failed test: =================================== FAILURES =================================== _____________________________ BuiltinTest.test_pow _____________________________ self = <test_future.test_builtins.BuiltinTest testMethod=test_pow> def test_pow(self): self.assertEqual(pow(0,0), 1) self.assertEqual(pow(0,1), 0) self.assertEqual(pow(1,0), 1) self.assertEqual(pow(1,1), 1) self.assertEqual(pow(2,0), 1) self.assertEqual(pow(2,10), 1024) self.assertEqual(pow(2,20), 1024*1024) self.assertEqual(pow(2,30), 1024*1024*1024) self.assertEqual(pow(-2,0), 1) self.assertEqual(pow(-2,1), -2) self.assertEqual(pow(-2,2), 4) self.assertEqual(pow(-2,3), -8) self.assertAlmostEqual(pow(0.,0), 1.) self.assertAlmostEqual(pow(0.,1), 0.) self.assertAlmostEqual(pow(1.,0), 1.) self.assertAlmostEqual(pow(1.,1), 1.) self.assertAlmostEqual(pow(2.,0), 1.) self.assertAlmostEqual(pow(2.,10), 1024.) self.assertAlmostEqual(pow(2.,20), 1024.*1024.) self.assertAlmostEqual(pow(2.,30), 1024.*1024.*1024.) self.assertAlmostEqual(pow(-2.,0), 1.) self.assertAlmostEqual(pow(-2.,1), -2.) self.assertAlmostEqual(pow(-2.,2), 4.) self.assertAlmostEqual(pow(-2.,3), -8.) for x in 2, int(2), 2.0: for y in 10, int(10), 10.0: for z in 1000, int(1000), 1000.0: if isinstance(x, float) or \ isinstance(y, float) or \ isinstance(z, float): self.assertRaises(TypeError, pow, x, y, z) else: self.assertAlmostEqual(pow(x, y, z), 24.0) self.assertAlmostEqual(pow(-1, 0.5), 1j) self.assertAlmostEqual(pow(-1, 1/3), 0.5 + 0.8660254037844386j) # Raises TypeError in Python < v3.5, ValueError in v3.5: > self.assertRaises((TypeError, ValueError), pow, -1, -2, 3) E AssertionError: (<class 'TypeError'>, <class 'ValueError'>) not raised by pow tests/test_future/test_builtins.py:1289: AssertionError
$ python3.7 Python 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> pow(-1, -2, 3) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: pow() 2nd argument cannot be negative when 3rd argument specified >>> $ python3.8 Python 3.8.0b1 (default, Jun 5 2019, 14:47:51) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> pow(-1, -2, 3) 1 >>>
https://docs.python.org/3.8/library/functions.html#pow Changed in version 3.8: For int operands, the three-argument form of pow now allows the second argument to be negative, permitting computation of modular inverses.
https://github.com/PythonCharmers/python-future/issues/474
Upstream is notified, let's deselect the test for now?
https://src.fedoraproject.org/rpms/future/pull-request/4