Browse Source

Fixed #24205 -- Deprecated Signal.disconnect weak parameter.

Florian Apolloner 10 years ago
parent
commit
16ee52d21d

+ 6 - 4
django/dispatch/dispatcher.py

@@ -1,7 +1,9 @@
 import sys
 import threading
+import warnings
 import weakref
 
+from django.utils.deprecation import RemovedInDjango21Warning
 from django.utils.six.moves import range
 
 if sys.version_info < (3, 4):
@@ -133,7 +135,7 @@ class Signal(object):
                 self.receivers.append((lookup_key, receiver))
             self.sender_receivers_cache.clear()
 
-    def disconnect(self, receiver=None, sender=None, weak=True, dispatch_uid=None):
+    def disconnect(self, receiver=None, sender=None, weak=None, dispatch_uid=None):
         """
         Disconnect receiver from sender for signal.
 
@@ -149,12 +151,12 @@ class Signal(object):
             sender
                 The registered sender to disconnect
 
-            weak
-                The weakref state to disconnect
-
             dispatch_uid
                 the unique identifier of the receiver to disconnect
         """
+        if weak is not None:
+            warnings.warn("Passing `weak` to disconnect has no effect.",
+                RemovedInDjango21Warning, stacklevel=2)
         if dispatch_uid:
             lookup_key = (dispatch_uid, _make_id(sender))
         else:

+ 2 - 1
docs/internals/deprecation.txt

@@ -15,7 +15,8 @@ about each item can often be found in the release notes of two versions prior.
 See the :ref:`Django 1.9 release notes<deprecated-features-1.9>` for more
 details on these changes.
 
-* ...
+* The ``weak`` argument to ``django.dispatch.signals.Signal.disconnect()`` will
+  be removed.
 
 .. _deprecation-removed-in-2.0:
 

+ 5 - 1
docs/releases/1.9.txt

@@ -177,7 +177,11 @@ Miscellaneous
 Features deprecated in 1.9
 ==========================
 
-...
+Miscellaneous
+~~~~~~~~~~~~~
+
+* The ``weak`` argument to ``django.dispatch.signals.Signal.disconnect()`` has
+  been deprecated as it has no effect.
 
 .. removed-features-1.9:
 

+ 6 - 1
docs/topics/signals.txt

@@ -275,7 +275,7 @@ error instance is returned in the tuple pair for the receiver that raised the er
 Disconnecting signals
 =====================
 
-.. method:: Signal.disconnect([receiver=None, sender=None, weak=True, dispatch_uid=None])
+.. method:: Signal.disconnect([receiver=None, sender=None, dispatch_uid=None])
 
 To disconnect a receiver from a signal, call :meth:`Signal.disconnect`. The
 arguments are as described in :meth:`.Signal.connect`. The method returns
@@ -287,3 +287,8 @@ may be ``None`` if ``dispatch_uid`` is used to identify the receiver.
 .. versionchanged:: 1.8
 
     The boolean return value was added.
+
+.. deprecated:: 1.9
+
+    The ``weak`` argument is deprecated as it has no effect. It will be removed
+    in Django 2.1.