summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2015-01-21 19:26:51 +0100
committerTim Graham <timograham@gmail.com>2015-01-23 14:37:12 -0500
commit16ee52d21d6835302bcd5ee594c5d6a0ef22d138 (patch)
treef2a61a5482e70d08e1ec71b4da02073c0363a02b
parent851f5bd413a93708436a129442007448755b34f3 (diff)
Fixed #24205 -- Deprecated Signal.disconnect weak parameter.
-rw-r--r--django/dispatch/dispatcher.py10
-rw-r--r--docs/internals/deprecation.txt3
-rw-r--r--docs/releases/1.9.txt6
-rw-r--r--docs/topics/signals.txt7
4 files changed, 19 insertions, 7 deletions
diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py
index b02adb8e80..a8181b7ec6 100644
--- a/django/dispatch/dispatcher.py
+++ b/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:
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt
index cc8548a713..250ef1f6d3 100644
--- a/docs/internals/deprecation.txt
+++ b/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:
diff --git a/docs/releases/1.9.txt b/docs/releases/1.9.txt
index 61107583b0..a3ba70562c 100644
--- a/docs/releases/1.9.txt
+++ b/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:
diff --git a/docs/topics/signals.txt b/docs/topics/signals.txt
index 7722379769..623e595daf 100644
--- a/docs/topics/signals.txt
+++ b/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.