summaryrefslogtreecommitdiff
path: root/dev-python/future
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-06-27 13:35:02 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-06-27 13:35:02 +0100
commitef593d1ec529be89d755077eee3869006d8c18ae (patch)
treee17a9fcd71c371059f0168cbdfe109c563536c27 /dev-python/future
parent61faa1ea0e8302df305bc281038fc00dc7eb1dd4 (diff)
gentoo auto-resync : 27:06:2023 - 13:35:02
Diffstat (limited to 'dev-python/future')
-rw-r--r--dev-python/future/Manifest6
-rw-r--r--dev-python/future/files/future-0.18.2-cve-2022-40899.patch52
-rw-r--r--dev-python/future/files/future-0.18.2-tests.patch269
-rw-r--r--dev-python/future/future-0.18.2-r3.ebuild46
-rw-r--r--dev-python/future/future-0.18.3.ebuild2
5 files changed, 2 insertions, 373 deletions
diff --git a/dev-python/future/Manifest b/dev-python/future/Manifest
index fd28ba29ab1a..cfe83b8918b8 100644
--- a/dev-python/future/Manifest
+++ b/dev-python/future/Manifest
@@ -1,11 +1,7 @@
-AUX future-0.18.2-cve-2022-40899.patch 2057 BLAKE2B 3ceaac51709be84a594474a35b8cb688c7e4382c7e625f328aa891c7f788efffba093daeff6551567425e7b9b2d1a4a5ed70df99dd5a6d0666bbc9915f72972f SHA512 7bd6743680ed69326eefd61ae517ebacebe2b175879367a66a1fa9729f75f77e2c632c3c50f64be197e71d09446a4ad01b733b15dc3508466ebd0cf06d7b6734
AUX future-0.18.2-py3.10.patch 850 BLAKE2B 79c51778686c03a0b2fa6ed084b38039d9e5c14312cbf534da51a9da66e8fb50f0b619912414439f9975db43d5686e80150e82642d64963d16384fce339a09d4 SHA512 438e7092c4e9ece575e1d4cb341e52e45d6506fed348511266b7a583731516ad5e5eac43bc8b81ff7a24e29a8495612f5bbcb0984f6e428dee2b7dcfbf241ae2
AUX future-0.18.2-py39-fileurl.patch 1005 BLAKE2B 9446c90649e5c06c1d603041c07e81ca96ea982fcf6ac9d7aaf48141015574ca2f81bd4da02c994e41ce96ef2e37290ae45f4ec70e332632e7086d08ce2feca0 SHA512 7d469a212b36828d20f65964aa52db30ab2c82f92b4411d39de054ba6ea7b7860413609b426f3f30dcc715be517e25e99f2b8afc05cc629c9a8e149fee2421b4
AUX future-0.18.2-py39.patch 2789 BLAKE2B db6c0cb0a030d166f01b95721e560d346f8a80ec63f81c58e5fca663f975b8f8f771d169742a421c34c08b0de01069bb5455b5fafdab440af6e73746df0bb24c SHA512 7bb140d526d2e728d5a988898977e8bf87934f68c42a38f97717b3e5fc040ddc736cdb2b366a8dbbb95c857bffee9f448ff1883dff9c61cb46582d3a01aad65f
-AUX future-0.18.2-tests.patch 11773 BLAKE2B e2b9321ab2a04e4567c312beaccd23886c87f8b78c1de5d480205181a68b77d8c8b1582a57f43e510d5cd3ecc54252bb85130fe6d7e82756c9f1db11263fdf7b SHA512 d884d6b4e320a6e2aeca2c0c46576d9b0fd0d31aaa6f8f9a79f2007ecbc949f1393aa0b9254f0c51616ca4e8d3fb3f11d828879e4e8c01549acd4ecf04e2cf68
-DIST future-0.18.2.tar.gz 829220 BLAKE2B 68574b589bf54aa8dacbd162a54885589faa32829ccf212f50de5bf036ebd8b9aba0c13e63e80d34e507cc0dae4d8d3d47fea33433b17d2c2e6dbf6c37f66d8f SHA512 91c025f7d94bcdf93df838fab67053165a414fc84e8496f92ecbb910dd55f6b6af5e360bbd051444066880c5a6877e75157bd95e150ead46e5c605930dfc50f2
DIST future-0.18.3-tests.patch.xz 2736 BLAKE2B 55f9f233fb65f006d2055adf8b5d5b3ab00b4cd9b9f5a78d09b3fa2c1e347ef2d8370569fa5374968bf3e84b4fcbc220ad8da1cc2b32da57c46d36050ba1440a SHA512 c18434bc6efe88381aed8c86ed494352a2749c5680a52f62ae043bec70e3adb0163f91a971daa04134508d59172fe2e71ebbf694a74afce060b7fa1e7c385810
DIST future-0.18.3.tar.gz 840896 BLAKE2B 13172c639b0eee80581133a2d46b9fa3a38fb9c47ea6eecc8f0715782536be5965bbd153d6a6dda49d8fa9cfea29231c6cc60a4b3b3a6c0cc5406f02c494a425 SHA512 6de56a5aa5c5dd56a0dc5a6732c753530f9868036bd97e9d355f9ee6e1305e266a60c167de779cba93f09b5b3fae615193074caba2afe857ca7ea944532ef910
-EBUILD future-0.18.2-r3.ebuild 1227 BLAKE2B 245f0952236720af7d8bcdc17f4975ec74236337e617e2e54b7bb554a708dd7b8e15f8615a5a8ac6e573bd83442bd33d1df72333da9b9523dd9d4b6df0f21385 SHA512 6f5a3adf25bda88915425bbf047dea5a6fd3751e2328d7ff49ac941d5cb79a6e565a8fa95b1e4980620a453134bf21f4e78cc1036e234815e330eed512fd3cf2
-EBUILD future-0.18.3.ebuild 1320 BLAKE2B 8b34eed060277e1c3f299de92a499d36b97de4fd7c928bb989d15fc0d2d0113837cdbd21c2f6c78db8f9916e0964510f55dfa2abd9cfd8103dc86c0510e5c2e7 SHA512 371605240f6cc4fa2d974d0f45a7a848b3e5cd7ce8e0adc763d47859089386f6620ee805494e61ac690708da06eb1a481906efc9799f9ade1b6b6755873dc259
+EBUILD future-0.18.3.ebuild 1313 BLAKE2B c648f919af12535a34da49e1b402e3ad52a2c0c3f79843042c86e294d63edeed024aedf0743b0d1ca859808ce75ad638b34141f0caa28167df21763b4b81e31f SHA512 b3500710942d8b6ad18f687cb2f7d294a85c9f1c7307342c291e5019365f637eb29545ec8cd5285ef1562dc48a61bd7fd5af569b8df9bb4190eb6577e9a79459
MISC metadata.xml 402 BLAKE2B 84957a57a39c658794b57e41e2e683d826a6e5b7e1006f0430034a29b82d12f2983b021c63e9d519fe6ea21a90f30822b5561001c7e9283ea770fedb1d40ad9c SHA512 e1a2dfb08304d2cd0751dbde1e1410be0805493bf7624db17b3631dc10051fb443758a0c750ced2846a2769a3d33da752002ad7e92f95d88b4060f7a8be995bd
diff --git a/dev-python/future/files/future-0.18.2-cve-2022-40899.patch b/dev-python/future/files/future-0.18.2-cve-2022-40899.patch
deleted file mode 100644
index c7341e0d6fdb..000000000000
--- a/dev-python/future/files/future-0.18.2-cve-2022-40899.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From c91d70b34ef0402aef3e9d04364ba98509dca76f Mon Sep 17 00:00:00 2001
-From: Will Shanks <wshaos@posteo.net>
-Date: Fri, 23 Dec 2022 13:38:26 -0500
-Subject: [PATCH] Backport fix for bpo-38804
-
-The regex http.cookiejar.LOOSE_HTTP_DATE_RE was vulnerable to regular
-expression denial of service (REDoS). The regex contained multiple
-overlapping \s* capture groups. A long sequence of spaces can trigger
-bad performance.
-
-See https://github.com/python/cpython/pull/17157 and https://pyup.io/posts/pyup-discovers-redos-vulnerabilities-in-top-python-packages/
----
- src/future/backports/http/cookiejar.py | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/src/future/backports/http/cookiejar.py b/src/future/backports/http/cookiejar.py
-index af3ef415..0ad80a02 100644
---- a/src/future/backports/http/cookiejar.py
-+++ b/src/future/backports/http/cookiejar.py
-@@ -225,10 +225,14 @@ def _str2time(day, mon, yr, hr, min, sec, tz):
- (?::(\d\d))? # optional seconds
- )? # optional clock
- \s*
-- ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+)? # timezone
-+ (?:
-+ ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+) # timezone
-+ \s*
-+ )?
-+ (?:
-+ \(\w+\) # ASCII representation of timezone in parens.
- \s*
-- (?:\(\w+\))? # ASCII representation of timezone in parens.
-- \s*$""", re.X | re.ASCII)
-+ )?$""", re.X | re.ASCII)
- def http2time(text):
- """Returns time in seconds since epoch of time represented by a string.
-
-@@ -298,9 +302,11 @@ def http2time(text):
- (?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional)
- )? # optional clock
- \s*
-- ([-+]?\d\d?:?(:?\d\d)?
-- |Z|z)? # timezone (Z is "zero meridian", i.e. GMT)
-- \s*$""", re.X | re. ASCII)
-+ (?:
-+ ([-+]?\d\d?:?(:?\d\d)?
-+ |Z|z) # timezone (Z is "zero meridian", i.e. GMT)
-+ \s*
-+ )?$""", re.X | re. ASCII)
- def iso2time(text):
- """
- As for http2time, but parses the ISO 8601 formats:
diff --git a/dev-python/future/files/future-0.18.2-tests.patch b/dev-python/future/files/future-0.18.2-tests.patch
deleted file mode 100644
index 3742adb72821..000000000000
--- a/dev-python/future/files/future-0.18.2-tests.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-diff --git a/tests/test_future/test_backports.py b/tests/test_future/test_backports.py
-index 9eeb741..63b1afe 100644
---- a/tests/test_future/test_backports.py
-+++ b/tests/test_future/test_backports.py
-@@ -87,7 +87,8 @@ class TestChainMap(unittest.TestCase):
- d['b'] = 20
- d['c'] = 30
- self.assertEqual(d.maps, [{'b':20, 'c':30}, {'a':1, 'b':2}]) # check internal state
-- self.assertEqual(d.items(), dict(a=1, b=20, c=30).items()) # check items/iter/getitem
-+ self.assertEqual(sorted(d.items()),
-+ sorted(dict(a=1, b=20, c=30).items())) # check items/iter/getitem
- self.assertEqual(len(d), 3) # check len
- for key in 'abc': # check contains
- self.assertIn(key, d)
-@@ -96,7 +97,8 @@ class TestChainMap(unittest.TestCase):
-
- del d['b'] # unmask a value
- self.assertEqual(d.maps, [{'c':30}, {'a':1, 'b':2}]) # check internal state
-- self.assertEqual(d.items(), dict(a=1, b=2, c=30).items()) # check items/iter/getitem
-+ self.assertEqual(sorted(d.items()),
-+ sorted(dict(a=1, b=2, c=30).items())) # check items/iter/getitem
- self.assertEqual(len(d), 3) # check len
- for key in 'abc': # check contains
- self.assertIn(key, d)
-diff --git a/tests/test_future/test_builtins.py b/tests/test_future/test_builtins.py
-index ca07b9e..944d97b 100644
---- a/tests/test_future/test_builtins.py
-+++ b/tests/test_future/test_builtins.py
-@@ -8,7 +8,7 @@ from future.builtins import (bytes, dict, int, range, round, str, super,
- ascii, chr, hex, input, next, oct, open, pow,
- filter, map, zip, min, max)
-
--from future.utils import PY3, exec_, native_str, implements_iterator
-+from future.utils import PYPY, PY2, PY3, exec_, native_str, implements_iterator
- from future.tests.base import (unittest, skip26, expectedFailurePY2,
- expectedFailurePY26)
-
-@@ -699,12 +699,13 @@ class BuiltinTest(unittest.TestCase):
- self.assertEqual(eval('dir()', g, m), list('xyz'))
- self.assertEqual(eval('globals()', g, m), g)
- self.assertEqual(eval('locals()', g, m), m)
-- self.assertRaises(TypeError, eval, 'a', m)
-+ if not (PYPY and PY2):
-+ self.assertRaises(TypeError, eval, 'a', m)
- class A:
- "Non-mapping"
- pass
- m = A()
-- self.assertRaises(TypeError, eval, 'a', g, m)
-+ self.assertRaises((AttributeError, TypeError), eval, 'a', g, m)
-
- # Verify that dict subclasses work as well
- class D(dict):
-@@ -784,8 +785,9 @@ class BuiltinTest(unittest.TestCase):
- # self.assertRaisesRegex(NameError, "name 'print' is not defined",
- # exec_, code, {'__builtins__': {}})
- # Now:
-- self.assertRaises(NameError,
-- exec_, code, {'__builtins__': {}})
-+ if not PYPY:
-+ self.assertRaises(NameError,
-+ exec_, code, {'__builtins__': {}})
- # __builtins__ must be a mapping type
- # Was:
- # self.assertRaises(TypeError,
-@@ -797,8 +799,9 @@ class BuiltinTest(unittest.TestCase):
- # Was:
- # self.assertRaisesRegex(NameError, "__build_class__ not found",
- # exec_, code, {'__builtins__': {}})
-- self.assertRaises(NameError,
-- exec_, code, {'__builtins__': {}})
-+ if not PYPY:
-+ self.assertRaises(NameError,
-+ exec_, code, {'__builtins__': {}})
-
- class frozendict_error(Exception):
- pass
-@@ -1304,8 +1307,9 @@ class BuiltinTest(unittest.TestCase):
- 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)
-+ if sys.hexversion < 0x03080000:
-+ # Raises TypeError in Python < v3.5, ValueError in v3.5:
-+ self.assertRaises((TypeError, ValueError), pow, -1, -2, 3)
- self.assertRaises(ValueError, pow, 1, 2, 0)
-
- self.assertRaises(TypeError, pow)
-diff --git a/tests/test_future/test_futurize.py b/tests/test_future/test_futurize.py
-index 0d7c42d..4590185 100644
---- a/tests/test_future/test_futurize.py
-+++ b/tests/test_future/test_futurize.py
-@@ -13,7 +13,7 @@ from lib2to3.pygram import token
-
- from future.tests.base import (CodeHandler, unittest, skip26, reformat_code,
- order_future_lines, expectedFailurePY26)
--from future.utils import PY2
-+from future.utils import PY2, PY3, PYPY
-
-
- class TestLibFuturize(unittest.TestCase):
-@@ -565,6 +565,7 @@ class TestFuturizeSimple(CodeHandler):
- # tarball.write(r2.content)
-
- @expectedFailurePY26
-+ @unittest.skipIf(PYPY and PY3, '')
- def test_raw_input(self):
- """
- Passes in a string to the waiting input() after futurize
-diff --git a/tests/test_future/test_int.py b/tests/test_future/test_int.py
-index 573a0d5..6172e48 100644
---- a/tests/test_future/test_int.py
-+++ b/tests/test_future/test_int.py
-@@ -6,7 +6,7 @@ from __future__ import (absolute_import, division,
- print_function, unicode_literals)
- from future.builtins import *
- from future.tests.base import unittest, expectedFailurePY2
--from future.utils import PY26, PY2, raise_from
-+from future.utils import PY26, PY2, PY3, PYPY, raise_from
-
- import sys
- import random
-@@ -357,7 +357,8 @@ class IntTestCases(unittest.TestCase):
- self.assertEqual(int(Foo0()), 42)
- self.assertEqual(int(Foo1()), 42)
- self.assertEqual(int(Foo2()), 42)
-- self.assertEqual(int(Foo3()), 0)
-+ if not (PYPY and PY3):
-+ self.assertEqual(int(Foo3()), 0)
- self.assertEqual(int(Foo4()), 42)
- self.assertRaises(TypeError, int, Foo5())
-
-diff --git a/tests/test_future/test_isinstance.py b/tests/test_future/test_isinstance.py
-index 33c0a58..ccda709 100644
---- a/tests/test_future/test_isinstance.py
-+++ b/tests/test_future/test_isinstance.py
-@@ -4,6 +4,7 @@ From the Python 3.3 test suite
-
- from __future__ import (absolute_import, division, unicode_literals)
- from future.builtins import *
-+from future.utils import PYPY
-
- # Tests some corner cases with isinstance() and issubclass(). While these
- # tests use new style classes and properties, they actually do whitebox
-@@ -264,11 +265,13 @@ class TestIsInstanceIsSubclass(unittest.TestCase):
- self.assertEqual(True, issubclass(int, (int, (float, int))))
- self.assertEqual(True, issubclass(str, (str, (Child, NewChild, str))))
-
-+ @unittest.skipIf(PYPY, '')
- def test_subclass_recursion_limit(self):
- # make sure that issubclass raises RuntimeError before the C stack is
- # blown
- self.assertRaises(RuntimeError, blowstack, issubclass, str, str)
-
-+ @unittest.skipIf(PYPY, '')
- def test_isinstance_recursion_limit(self):
- # make sure that issubclass raises RuntimeError before the C stack is
- # blown
-diff --git a/tests/test_future/test_str.py b/tests/test_future/test_str.py
-index 5108548..eac602f 100644
---- a/tests/test_future/test_str.py
-+++ b/tests/test_future/test_str.py
-@@ -201,6 +201,7 @@ class TestStr(unittest.TestCase):
- with self.assertRaises(TypeError):
- s.join(byte_strings2)
-
-+ @unittest.skipIf(utils.PYPY and utils.PY2, '')
- def test_str_join_staticmethod(self):
- """
- Issue #33
-@@ -430,10 +431,11 @@ class TestStr(unittest.TestCase):
- e = s * long(4)
- self.assertTrue(isinstance(e, str))
- self.assertEqual(e, u'ABCABCABCABC')
-- with self.assertRaises(TypeError):
-- s * 3.3
-- with self.assertRaises(TypeError):
-- s * (3.3 + 3j)
-+ if not (utils.PYPY and utils.PY2):
-+ with self.assertRaises(TypeError):
-+ s * 3.3
-+ with self.assertRaises(TypeError):
-+ s * (3.3 + 3j)
-
- def test_rmul(self):
- s = str(u'XYZ')
-@@ -447,10 +449,11 @@ class TestStr(unittest.TestCase):
- e = long(3) * s
- self.assertTrue(isinstance(e, str))
- self.assertEqual(e, u'XYZXYZXYZ')
-- with self.assertRaises(TypeError):
-- 3.3 * s
-- with self.assertRaises(TypeError):
-- (3.3 + 3j) * s
-+ if not (utils.PYPY and utils.PY2):
-+ with self.assertRaises(TypeError):
-+ 3.3 * s
-+ with self.assertRaises(TypeError):
-+ (3.3 + 3j) * s
-
- @unittest.skip('Fails on Python <= 2.7.6 due to string subclass slicing bug')
- def test_slice(self):
-diff --git a/tests/test_future/test_urllib2.py b/tests/test_future/test_urllib2.py
-index 2d69dad..3750737 100644
---- a/tests/test_future/test_urllib2.py
-+++ b/tests/test_future/test_urllib2.py
-@@ -691,10 +691,7 @@ class HandlerTests(unittest.TestCase):
- h = NullFTPHandler(data)
- h.parent = MockOpener()
-
-- # MIME guessing works in Python 3.8!
- guessed_mime = None
-- if sys.hexversion >= 0x03080000:
-- guessed_mime = "image/gif"
- for url, host, port, user, passwd, type_, dirs, filename, mimetype in [
- ("ftp://localhost/foo/bar/baz.html",
- "localhost", ftplib.FTP_PORT, "", "", "I",
-diff --git a/tests/test_past/test_builtins.py b/tests/test_past/test_builtins.py
-index d16978e..f37b26c 100644
---- a/tests/test_past/test_builtins.py
-+++ b/tests/test_past/test_builtins.py
-@@ -21,6 +21,7 @@ import random
- from os import unlink
- from operator import neg
- from future.tests.base import unittest, expectedFailurePY3, skip26
-+from future.utils import PYPY, PY2
-
- # count the number of test runs.
- # used to skip running test_execfile() multiple times
-@@ -423,6 +424,7 @@ class BuiltinTest(unittest.TestCase):
- self.assertRaises(TypeError, eval, ())
-
- @expectedFailurePY3
-+ @unittest.skipIf(PYPY and PY2, '')
- def test_general_eval(self):
- # Tests that general mappings can be used for the locals argument
-
-@@ -1174,7 +1176,8 @@ class BuiltinTest(unittest.TestCase):
- def __cmp__(self, other):
- raise RuntimeError
- __hash__ = None # Invalid cmp makes this unhashable
-- self.assertRaises(RuntimeError, range, a, a + 1, badzero(1))
-+ if not (PYPY and PY2):
-+ self.assertRaises(RuntimeError, range, a, a + 1, badzero(1))
-
- # Reject floats.
- self.assertRaises(TypeError, range, 1., 1., 1.)
-diff --git a/tests/test_past/test_olddict.py b/tests/test_past/test_olddict.py
-index 9f21060..539c277 100644
---- a/tests/test_past/test_olddict.py
-+++ b/tests/test_past/test_olddict.py
-@@ -7,7 +7,7 @@ from __future__ import absolute_import, unicode_literals, print_function
- import os
- import sys
-
--from future.utils import implements_iterator, PY3
-+from future.utils import implements_iterator, PYPY, PY2, PY3
- from future.tests.base import unittest, skip26
- from past.builtins import dict
-
-@@ -415,6 +415,7 @@ class Py2DictTest(unittest.TestCase):
- self.assertRaises(Exc, d.setdefault, x, [])
-
- @skip26
-+ @unittest.skipIf(PYPY, '')
- def test_setdefault_atomic(self):
- # Issue #13521: setdefault() calls __hash__ and __eq__ only once.
- class Hashed(object):
diff --git a/dev-python/future/future-0.18.2-r3.ebuild b/dev-python/future/future-0.18.2-r3.ebuild
deleted file mode 100644
index 65a5f973d309..000000000000
--- a/dev-python/future/future-0.18.2-r3.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9..11} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Easy, clean, reliable Python 2/3 compatibility"
-HOMEPAGE="
- https://python-future.org/
- https://github.com/PythonCharmers/python-future/
- https://pypi.org/project/future/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-
-BDEPEND="
- test? (
- $(python_gen_cond_dep '
- dev-python/numpy[${PYTHON_USEDEP}]
- ' 'python*')
- )
-"
-
-distutils_enable_tests pytest
-distutils_enable_sphinx docs dev-python/sphinx-bootstrap-theme
-
-PATCHES=(
- "${FILESDIR}"/${P}-tests.patch
- "${FILESDIR}"/${P}-py39.patch
- "${FILESDIR}"/${P}-py39-fileurl.patch
- "${FILESDIR}"/${P}-py3.10.patch
- "${FILESDIR}"/${P}-cve-2022-40899.patch
-)
-
-EPYTEST_DESELECT=(
- # tests requiring network access
- tests/test_future/test_requests.py
- tests/test_future/test_standard_library.py::TestStandardLibraryReorganization::test_moves_urllib_request_http
- tests/test_future/test_standard_library.py::TestStandardLibraryReorganization::test_urllib_request_http
-)
diff --git a/dev-python/future/future-0.18.3.ebuild b/dev-python/future/future-0.18.3.ebuild
index f6793f03233f..37ee871979b9 100644
--- a/dev-python/future/future-0.18.3.ebuild
+++ b/dev-python/future/future-0.18.3.ebuild
@@ -18,7 +18,7 @@ SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.18.3-
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
BDEPEND="
test? (