From: <mcf...@us...> - 2003-07-01 04:25:47
|
Update of /cvsroot/pydispatcher/dispatch In directory sc8-pr-cvs1:/tmp/cvs-serv7731 Modified Files: dispatcher.py Log Message: Merged Patrick's changes from the "event" package, fairly minimal differences, note that the Anonymous sender is not given a _removeSender callback, which differs from the operation of the event version. Index: dispatcher.py =================================================================== RCS file: /cvsroot/pydispatcher/dispatch/dispatcher.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** dispatcher.py 1 Jul 2003 03:52:28 -0000 1.1.1.1 --- dispatcher.py 1 Jul 2003 04:25:44 -0000 1.2 *************** *** 27,35 **** self.args = args ! class _Any: ! pass - Any = _Any() WEAKREF_TYPES = (weakref.ReferenceType, saferef.BoundMethodWeakref) --- 27,47 ---- self.args = args + try: + True + except NameError: + True = 1==1 + False = 1==0 ! class _Parameter: ! """Used to represent default parameter values.""" ! def __repr__(self): ! return self.__class__.__name__ ! ! class Any(_Parameter): pass ! Any = Any() ! ! class Anonymous(_Parameter): pass ! Anonymous = Anonymous() WEAKREF_TYPES = (weakref.ReferenceType, saferef.BoundMethodWeakref) *************** *** 39,43 **** ! def connect(receiver, signal=Any, sender=Any, weak=1): """Connect receiver to sender for signal. --- 51,55 ---- ! def connect(receiver, signal=Any, sender=Any, weak=True): """Connect receiver to sender for signal. *************** *** 50,53 **** --- 62,66 ---- signal from any sender. If weak is true, weak references will be used.""" + if signal is None: raise DispatcherError, 'signal cannot be None' *************** *** 61,65 **** connections[senderkey] = signals # Keep track of senders for cleanup. ! if sender not in (None, Any): def remove(object, senderkey=senderkey): _removeSender(senderkey=senderkey) --- 74,79 ---- connections[senderkey] = signals # Keep track of senders for cleanup. ! # Is Anonymous something we want to clean up? ! if sender not in (None, Anonymous, Any): def remove(object, senderkey=senderkey): _removeSender(senderkey=senderkey) *************** *** 81,85 **** receivers.append(receiver) ! def disconnect(receiver, signal=Any, sender=Any, weak=1): """Disconnect receiver from sender for signal. --- 95,99 ---- receivers.append(receiver) ! def disconnect(receiver, signal=Any, sender=Any, weak=True): """Disconnect receiver from sender for signal. *************** *** 150,154 **** pass ! def send(signal=Any, sender=None, *arguments, **named): """Send signal from sender to all connected receivers. --- 164,168 ---- pass ! def send(signal=Any, sender=Anonymous, *arguments, **named): """Send signal from sender to all connected receivers. *************** *** 174,178 **** responses.append((receiver, response)) return responses ! def sendExact( signal=Any, sender=None, *arguments, **named ): """Send signal only to those receivers registered for exact message --- 188,192 ---- responses.append((receiver, response)) return responses ! def sendExact( signal=Any, sender=Anonymous, *arguments, **named ): """Send signal only to those receivers registered for exact message |