diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py index 5ad0659f835..c9d5788fa92 100644 --- a/django/dispatch/dispatcher.py +++ b/django/dispatch/dispatcher.py @@ -1,9 +1,7 @@ import logging import threading -import warnings import weakref -from django.utils.deprecation import RemovedInDjango40Warning from django.utils.inspect import func_accepts_kwargs logger = logging.getLogger('django.dispatch') @@ -30,19 +28,11 @@ class Signal: receivers { receiverkey (id) : weakref(receiver) } """ - def __init__(self, providing_args=None, use_caching=False): + def __init__(self, use_caching=False): """ Create a new signal. """ self.receivers = [] - if providing_args is not None: - warnings.warn( - 'The providing_args argument is deprecated. As it is purely ' - 'documentational, it has no replacement. If you rely on this ' - 'argument as documentation, you can move the text to a code ' - 'comment or docstring.', - RemovedInDjango40Warning, stacklevel=2, - ) self.lock = threading.Lock() self.use_caching = use_caching # For convenience we create empty caches even if they are not used. diff --git a/docs/releases/4.0.txt b/docs/releases/4.0.txt index ba03109b303..c71d66f4a8c 100644 --- a/docs/releases/4.0.txt +++ b/docs/releases/4.0.txt @@ -299,3 +299,5 @@ to remove usage of these features. * The ``get_request`` argument for ``django.utils.deprecation.MiddlewareMixin.__init__()`` is required and doesn't accept ``None``. + +* The ``providing_args`` argument for ``django.dispatch.Signal`` is removed. diff --git a/tests/signals/test_deprecation.py b/tests/signals/test_deprecation.py deleted file mode 100644 index b961dafd8a7..00000000000 --- a/tests/signals/test_deprecation.py +++ /dev/null @@ -1,22 +0,0 @@ -import warnings - -from django.dispatch import Signal -from django.test import SimpleTestCase -from django.utils.deprecation import RemovedInDjango40Warning - - -class SignalDeprecationTests(SimpleTestCase): - def test_providing_args_warning(self): - msg = ( - 'The providing_args argument is deprecated. As it is purely ' - 'documentational, it has no replacement. If you rely on this ' - 'argument as documentation, you can move the text to a code ' - 'comment or docstring.' - ) - with self.assertWarnsMessage(RemovedInDjango40Warning, msg): - Signal(providing_args=['arg1', 'arg2']) - - def test_without_providing_args_does_not_warn(self): - with warnings.catch_warnings(record=True) as recorded: - Signal() - self.assertEqual(len(recorded), 0)