mirror of
https://github.com/django/django.git
synced 2025-06-05 03:29:12 +00:00
magic-removal: Removed a tiny bit of cruft in django.dispatch.dispatcher because we can assume Python 2.3+
git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2403 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
e7c83b691b
commit
67a3d5207e
@ -25,7 +25,6 @@ Internal attributes:
|
|||||||
deletion, (considerably speeds up the cleanup process
|
deletion, (considerably speeds up the cleanup process
|
||||||
vs. the original code.)
|
vs. the original code.)
|
||||||
"""
|
"""
|
||||||
from __future__ import generators
|
|
||||||
import types, weakref
|
import types, weakref
|
||||||
from django.dispatch import saferef, robustapply, errors
|
from django.dispatch import saferef, robustapply, errors
|
||||||
|
|
||||||
@ -33,12 +32,6 @@ __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
|
|||||||
__cvsid__ = "$Id: dispatcher.py,v 1.8 2004/11/26 06:37:33 mcfletch Exp $"
|
__cvsid__ = "$Id: dispatcher.py,v 1.8 2004/11/26 06:37:33 mcfletch Exp $"
|
||||||
__version__ = "$Revision: 1.8 $"[11:-2]
|
__version__ = "$Revision: 1.8 $"[11:-2]
|
||||||
|
|
||||||
try:
|
|
||||||
True
|
|
||||||
except NameError:
|
|
||||||
True = 1==1
|
|
||||||
False = 1==0
|
|
||||||
|
|
||||||
class _Parameter:
|
class _Parameter:
|
||||||
"""Used to represent default parameter values."""
|
"""Used to represent default parameter values."""
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
@ -91,7 +84,7 @@ def connect(receiver, signal=Any, sender=Any, weak=True):
|
|||||||
if weak is True, then receiver must be weak-referencable
|
if weak is True, then receiver must be weak-referencable
|
||||||
(more precisely saferef.safeRef() must be able to create
|
(more precisely saferef.safeRef() must be able to create
|
||||||
a reference to the receiver).
|
a reference to the receiver).
|
||||||
|
|
||||||
Receivers are fairly flexible in their specification,
|
Receivers are fairly flexible in their specification,
|
||||||
as the machinery in the robustApply module takes care
|
as the machinery in the robustApply module takes care
|
||||||
of most of the details regarding figuring out appropriate
|
of most of the details regarding figuring out appropriate
|
||||||
@ -107,25 +100,25 @@ def connect(receiver, signal=Any, sender=Any, weak=True):
|
|||||||
pre-weakrefed receiver references.
|
pre-weakrefed receiver references.
|
||||||
|
|
||||||
signal -- the signal to which the receiver should respond
|
signal -- the signal to which the receiver should respond
|
||||||
|
|
||||||
if Any, receiver will receive any signal from the
|
if Any, receiver will receive any signal from the
|
||||||
indicated sender (which might also be Any, but is not
|
indicated sender (which might also be Any, but is not
|
||||||
necessarily Any).
|
necessarily Any).
|
||||||
|
|
||||||
Otherwise must be a hashable Python object other than
|
Otherwise must be a hashable Python object other than
|
||||||
None (DispatcherError raised on None).
|
None (DispatcherError raised on None).
|
||||||
|
|
||||||
sender -- the sender to which the receiver should respond
|
sender -- the sender to which the receiver should respond
|
||||||
|
|
||||||
if Any, receiver will receive the indicated signals
|
if Any, receiver will receive the indicated signals
|
||||||
from any sender.
|
from any sender.
|
||||||
|
|
||||||
if Anonymous, receiver will only receive indicated
|
if Anonymous, receiver will only receive indicated
|
||||||
signals from send/sendExact which do not specify a
|
signals from send/sendExact which do not specify a
|
||||||
sender, or specify Anonymous explicitly as the sender.
|
sender, or specify Anonymous explicitly as the sender.
|
||||||
|
|
||||||
Otherwise can be any python object.
|
Otherwise can be any python object.
|
||||||
|
|
||||||
weak -- whether to use weak references to the receiver
|
weak -- whether to use weak references to the receiver
|
||||||
By default, the module will attempt to use weak
|
By default, the module will attempt to use weak
|
||||||
references to the receiver objects. If this parameter
|
references to the receiver objects. If this parameter
|
||||||
@ -156,7 +149,7 @@ def connect(receiver, signal=Any, sender=Any, weak=True):
|
|||||||
senders[senderkey] = weakSender
|
senders[senderkey] = weakSender
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
receiverID = id(receiver)
|
receiverID = id(receiver)
|
||||||
# get current set, remove any current references to
|
# get current set, remove any current references to
|
||||||
# this receiver in the set, including back-references
|
# this receiver in the set, including back-references
|
||||||
@ -200,7 +193,7 @@ def disconnect(receiver, signal=Any, sender=Any, weak=True):
|
|||||||
will remove routes for deleted objects
|
will remove routes for deleted objects
|
||||||
automatically. It's only necessary to disconnect
|
automatically. It's only necessary to disconnect
|
||||||
if you want to stop routing to a live object.
|
if you want to stop routing to a live object.
|
||||||
|
|
||||||
returns None, may raise DispatcherTypeError or
|
returns None, may raise DispatcherTypeError or
|
||||||
DispatcherKeyError
|
DispatcherKeyError
|
||||||
"""
|
"""
|
||||||
@ -305,11 +298,11 @@ def getAllReceivers( sender = Any, signal = Any ):
|
|||||||
|
|
||||||
def send(signal=Any, sender=Anonymous, *arguments, **named):
|
def send(signal=Any, sender=Anonymous, *arguments, **named):
|
||||||
"""Send signal from sender to all connected receivers.
|
"""Send signal from sender to all connected receivers.
|
||||||
|
|
||||||
signal -- (hashable) signal value, see connect for details
|
signal -- (hashable) signal value, see connect for details
|
||||||
|
|
||||||
sender -- the sender of the signal
|
sender -- the sender of the signal
|
||||||
|
|
||||||
if Any, only receivers registered for Any will receive
|
if Any, only receivers registered for Any will receive
|
||||||
the message.
|
the message.
|
||||||
|
|
||||||
@ -369,7 +362,7 @@ def sendExact( signal=Any, sender=Anonymous, *arguments, **named ):
|
|||||||
)
|
)
|
||||||
responses.append((receiver, response))
|
responses.append((receiver, response))
|
||||||
return responses
|
return responses
|
||||||
|
|
||||||
|
|
||||||
def _removeReceiver(receiver):
|
def _removeReceiver(receiver):
|
||||||
"""Remove receiver from connections."""
|
"""Remove receiver from connections."""
|
||||||
@ -395,7 +388,7 @@ def _removeReceiver(receiver):
|
|||||||
del sendersBack[ backKey ]
|
del sendersBack[ backKey ]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _cleanupConnections(senderkey, signal):
|
def _cleanupConnections(senderkey, signal):
|
||||||
"""Delete any empty signals for senderkey. Delete senderkey if empty."""
|
"""Delete any empty signals for senderkey. Delete senderkey if empty."""
|
||||||
try:
|
try:
|
||||||
@ -422,7 +415,7 @@ def _removeSender(senderkey):
|
|||||||
del connections[senderkey]
|
del connections[senderkey]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
# Senderkey will only be in senders dictionary if sender
|
# Senderkey will only be in senders dictionary if sender
|
||||||
# could be weakly referenced.
|
# could be weakly referenced.
|
||||||
try: del senders[senderkey]
|
try: del senders[senderkey]
|
||||||
except: pass
|
except: pass
|
||||||
@ -473,8 +466,8 @@ def _removeOldBackRefs(senderkey, signal, receiver, receivers):
|
|||||||
_killBackref( oldReceiver, senderkey )
|
_killBackref( oldReceiver, senderkey )
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _killBackref( receiver, senderkey ):
|
def _killBackref( receiver, senderkey ):
|
||||||
"""Do the actual removal of back reference from receiver to senderkey"""
|
"""Do the actual removal of back reference from receiver to senderkey"""
|
||||||
receiverkey = id(receiver)
|
receiverkey = id(receiver)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user