bumped embedded pydispatch to 2.0.1

This commit is contained in:
Pablo Hoffman 2010-05-14 16:38:04 -03:00
parent 02b7ca7e8c
commit 1868ede549
2 changed files with 25 additions and 24 deletions

View File

@ -30,7 +30,7 @@ import types, weakref
from scrapy.xlib.pydispatch import saferef, robustapply, errors
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__cvsid__ = "$Id: dispatcher.py,v 1.1.1.1 2006/07/07 15:59:38 mcfletch Exp $"
__version__ = "$Revision: 1.1.1.1 $"[11:-2]
try:
@ -377,28 +377,29 @@ def _removeReceiver(receiver):
# During module cleanup the mapping will be replaced with None
return False
backKey = id(receiver)
for senderkey in sendersBack.get(backKey,()):
try:
signals = connections[senderkey].keys()
except KeyError,err:
pass
else:
for signal in signals:
try:
receivers = connections[senderkey][signal]
except KeyError:
pass
else:
try:
receivers.remove( receiver )
except Exception, err:
pass
_cleanupConnections(senderkey, signal)
try:
del sendersBack[ backKey ]
except KeyError:
pass
backSet = sendersBack.pop(backKey)
except KeyError, err:
return False
else:
for senderkey in backSet:
try:
signals = connections[senderkey].keys()
except KeyError,err:
pass
else:
for signal in signals:
try:
receivers = connections[senderkey][signal]
except KeyError:
pass
else:
try:
receivers.remove( receiver )
except Exception, err:
pass
_cleanupConnections(senderkey, signal)
def _cleanupConnections(senderkey, signal):
"""Delete any empty signals for senderkey. Delete senderkey if empty."""
try:

View File

@ -22,7 +22,7 @@ def safeRef(target, onDelete = None):
onDelete=onDelete
)
return reference
if callable(onDelete):
if onDelete is not None:
return weakref.ref(target, onDelete)
else:
return weakref.ref( target )
@ -120,7 +120,7 @@ class BoundMethodWeakref(object):
self.key = self.calculateKey( target )
self.weakSelf = weakref.ref(target.im_self, remove)
self.weakFunc = weakref.ref(target.im_func, remove)
self.selfName = str(target.im_self)
self.selfName = target.im_self.__class__.__name__
self.funcName = str(target.im_func.__name__)
def calculateKey( cls, target ):
"""Calculate the reference key for this reference