'Create a communication channel with a particular application.
Addressing the application is done by specifying either a
4-byte signature, an AEDesc or an object that will __aepack__
to an AEDesc.'

def __init__(self, signature=None, start=0, timeout=0):

    self.target_signature = None
    if (signature is None):
        signature = self._signature
    if (type(signature) == AEDescType):
        self.target = signature
    elif ((type(signature) == InstanceType) and hasattr(signature, '__aepack__')):
        self.target = signature.__aepack__()
    elif ((type(signature) == StringType) and (len(signature) == 4)):
        self.target = AE.AECreateDesc(AppleEvents.typeApplSignature, signature)
        self.target_signature = signature
    else:
        raise TypeError, 'signature    should    be    4-char    string    or    AEDesc'
    self.send_flags = AppleEvents.kAEWaitReply
    self.send_priority = AppleEvents.kAENormalPriority
    if timeout:
        self.send_timeout = timeout
    else:
        self.send_timeout = AppleEvents.kAEDefaultTimeout
    if start:
        self._start()
