0001"""Signal class.
0002
0003This class is provided as a way to consistently define and document
0004signal types.  Signal classes also have a useful string
0005representation.
0006
0007Louie does not require you to use a subclass of Signal for signals.
0008"""
0009
0010
0011class _SIGNAL(type):
0012    """Base metaclass for signal classes."""
0013
0014    def __str__(cls):
0015        return '<Signal: %s>' % (cls.__name__, )
0016
0017
0018class Signal(object):
0019
0020    __metaclass__ = _SIGNAL
0021
0022
0023class All(Signal):
0024    """Used to represent 'all signals'.
0025
0026    The All class can be used with connect, disconnect, send, or
0027    sendExact to denote that the signal should react to all signals,
0028    not just a particular signal.
0029    """