diff --git a/Doc/library/random.rst b/Doc/library/random.rst index 291eca3a3f1..43a9902f6c1 100644 --- a/Doc/library/random.rst +++ b/Doc/library/random.rst @@ -208,6 +208,9 @@ Functions for sequences generated. For example, a sequence of length 2080 is the largest that can fit within the period of the Mersenne Twister random number generator. + .. deprecated-removed:: 3.9 3.11 + The optional parameter *random*. + .. function:: sample(population, k) diff --git a/Lib/random.py b/Lib/random.py index 8f840e1abb9..f2c4f39fb60 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -321,6 +321,10 @@ class Random(_random.Random): j = randbelow(i+1) x[i], x[j] = x[j], x[i] else: + _warn('The *random* parameter to shuffle() has been deprecated\n' + 'since Python 3.9 and will be removed in a subsequent ' + 'version.', + DeprecationWarning, 2) _int = int for i in reversed(range(1, len(x))): # pick an element in x[:i+1] with which to exchange x[i] diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index 6d87d21cf22..bb95ca0884a 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -103,7 +103,8 @@ class TestBasicOps: shuffle = self.gen.shuffle mock_random = unittest.mock.Mock(return_value=0.5) seq = bytearray(b'abcdefghijk') - shuffle(seq, mock_random) + with self.assertWarns(DeprecationWarning): + shuffle(seq, mock_random) mock_random.assert_called_with() def test_choice(self): diff --git a/Misc/NEWS.d/next/Library/2020-05-02-12-00-28.bpo-40465.qfCjOD.rst b/Misc/NEWS.d/next/Library/2020-05-02-12-00-28.bpo-40465.qfCjOD.rst new file mode 100644 index 00000000000..7ce9a44c712 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-05-02-12-00-28.bpo-40465.qfCjOD.rst @@ -0,0 +1 @@ +Deprecated the optional *random* argument to *random.shuffle()*.