Exemple #1
0
    def callback_wrapper(self, _request, _reply):
        _parameters, _attributes = aetools.unpackevent(_request)
        _class = _attributes["evcl"].type
        _type = _attributes["evid"].type

        if (_class, _type) in self.ae_handlers:
            _function = self.ae_handlers[(_class, _type)]
        elif (_class, "****") in self.ae_handlers:
            _function = self.ae_handlers[(_class, "****")]
        elif ("****", "****") in self.ae_handlers:
            _function = self.ae_handlers[("****", "****")]
        else:
            raise "Cannot happen: AE callback without handler", (_class, _type)

        # XXXX Do key-to-name mapping here

        _parameters["_attributes"] = _attributes
        _parameters["_class"] = _class
        _parameters["_type"] = _type
        if "----" in _parameters:
            _object = _parameters["----"]
            del _parameters["----"]
            # The try/except that used to be here can mask programmer errors.
            # Let the program crash, the programmer can always add a **args
            # to the formal parameter list.
            rv = _function(_object, **_parameters)
        else:
            # Same try/except comment as above
            rv = _function(**_parameters)

        if rv is None:
            aetools.packevent(_reply, {})
        else:
            aetools.packevent(_reply, {"----": rv})
 def callback_wrapper(self, _request, _reply):
     _parameters, _attributes = aetools.unpackevent(_request)
     _class = _attributes["evcl"].type
     _type = _attributes["evid"].type
     if (_class, _type) in self.ae_handlers:
         _function = self.ae_handlers[_class, _type]
     elif (_class, "****") in self.ae_handlers:
         _function = self.ae_handlers[_class, "****"]
     elif ("****", "****") in self.ae_handlers:
         _function = self.ae_handlers[("****", "****")]
     else:
         raise "Cannot happen: AE callback without handler", (_class, _type)
     _parameters["_attributes"] = _attributes
     _parameters["_class"] = _class
     _parameters["_type"] = _type
     if "----" in _parameters:
         _object = _parameters["----"]
         del _parameters["----"]
         rv = _function(_object, **_parameters)
     else:
         rv = _function(**_parameters)
     if rv is None:
         aetools.packevent(_reply, {})
     else:
         aetools.packevent(_reply, {"----": rv})
     return
    def callback_wrapper(self, _request, _reply):
        _parameters, _attributes = aetools.unpackevent(_request)
        _class = _attributes['evcl'].type
        _type = _attributes['evid'].type

        if self.ae_handlers.has_key((_class, _type)):
            _function = self.ae_handlers[(_class, _type)]
        elif self.ae_handlers.has_key((_class, '****')):
            _function = self.ae_handlers[(_class, '****')]
        elif self.ae_handlers.has_key(('****', '****')):
            _function = self.ae_handlers[('****', '****')]
        else:
            raise 'Cannot happen: AE callback without handler', (_class, _type)

        # XXXX Do key-to-name mapping here

        _parameters['_attributes'] = _attributes
        _parameters['_class'] = _class
        _parameters['_type'] = _type
        if _parameters.has_key('----'):
            _object = _parameters['----']
            del _parameters['----']
            # The try/except that used to be here can mask programmer errors.
            # Let the program crash, the programmer can always add a **args
            # to the formal parameter list.
            rv = _function(_object, **_parameters)
        else:
            #Same try/except comment as above
            rv = _function(**_parameters)

        if rv == None:
            aetools.packevent(_reply, {})
        else:
            aetools.packevent(_reply, {'----':rv})
Exemple #4
0
 def callback_wrapper(self, _request, _reply):
     _parameters, _attributes = aetools.unpackevent(_request)
     _class = _attributes['evcl'].type
     _type = _attributes['evid'].type
     if (_class, _type) in self.ae_handlers:
         _function = self.ae_handlers[_class, _type]
     elif (_class, '****') in self.ae_handlers:
         _function = self.ae_handlers[_class, '****']
     elif ('****', '****') in self.ae_handlers:
         _function = self.ae_handlers[('****', '****')]
     else:
         raise 'Cannot happen: AE callback without handler', (_class, _type)
     _parameters['_attributes'] = _attributes
     _parameters['_class'] = _class
     _parameters['_type'] = _type
     if '----' in _parameters:
         _object = _parameters['----']
         del _parameters['----']
         rv = _function(_object, **_parameters)
     else:
         rv = _function(**_parameters)
     if rv is None:
         aetools.packevent(_reply, {})
     else:
         aetools.packevent(_reply, {'----': rv})
     return
    def callback_wrapper(self, _request, _reply):
        _parameters, _attributes = aetools.unpackevent(_request)
        _class = _attributes['evcl'].type
        _type = _attributes['evid'].type

        if (_class, _type) in self.ae_handlers:
            _function = self.ae_handlers[(_class, _type)]
        elif (_class, '****') in self.ae_handlers:
            _function = self.ae_handlers[(_class, '****')]
        elif ('****', '****') in self.ae_handlers:
            _function = self.ae_handlers[('****', '****')]
        else:
            raise 'Cannot happen: AE callback without handler', (_class, _type)

        # XXXX Do key-to-name mapping here

        _parameters['_attributes'] = _attributes
        _parameters['_class'] = _class
        _parameters['_type'] = _type
        if '----' in _parameters:
            _object = _parameters['----']
            del _parameters['----']
            # The try/except that used to be here can mask programmer errors.
            # Let the program crash, the programmer can always add a **args
            # to the formal parameter list.
            rv = _function(_object, **_parameters)
        else:
            #Same try/except comment as above
            rv = _function(**_parameters)

        if rv is None:
            aetools.packevent(_reply, {})
        else:
            aetools.packevent(_reply, {'----': rv})
Exemple #6
0
 def callback_wrapper(self, _request, _reply):
     _parameters, _attributes = aetools.unpackevent(_request)
     _class = _attributes['evcl'].type
     _type = _attributes['evid'].type
     if (_class, _type) in self.ae_handlers:
         _function = self.ae_handlers[_class, _type]
     elif (_class, '****') in self.ae_handlers:
         _function = self.ae_handlers[_class, '****']
     elif ('****', '****') in self.ae_handlers:
         _function = self.ae_handlers[('****', '****')]
     else:
         raise 'Cannot happen: AE callback without handler', (_class, _type)
     _parameters['_attributes'] = _attributes
     _parameters['_class'] = _class
     _parameters['_type'] = _type
     if '----' in _parameters:
         _object = _parameters['----']
         del _parameters['----']
         rv = _function(_object, **_parameters)
     else:
         rv = _function(**_parameters)
     if rv is None:
         aetools.packevent(_reply, {})
     else:
         aetools.packevent(_reply, {'----': rv})
     return
Exemple #7
0
def corehandler(req, rep):
	print 'core event!'
	parameters, attributes = aetools.unpackevent(req)
	print "event class =", attributes['evcl']
	print "event id =", attributes['evid']
	print 'parameters:', parameters
	# echo the arguments, to see how Script Editor formats them
	aetools.packevent(rep, parameters)
Exemple #8
0
	def aehandler(self, request, reply):
		print "Apple Event",
		parameters, attributes = aetools.unpackevent(request)
		print "class =", `attributes['evcl'].type`,
		print "id =", `attributes['evid'].type`
		print "Parameters:"
		keys = parameters.keys()
		keys.sort()
		for key in keys:
			print "%s: %.150s" % (`key`, `parameters[key]`)
			print "      :", str(parameters[key])
		print "Attributes:"
		keys = attributes.keys()
		keys.sort()
		for key in keys:
			print "%s: %.150s" % (`key`, `attributes[key]`)
		aetools.packevent(reply, parameters)
Exemple #9
0
def passtothink(list):
	target = AE.AECreateDesc(typeApplSignature, 'KAHL')
	event = AE.AECreateAppleEvent(kCoreEventClass,
	                              kAEOpenDocuments,
	                              target,
	                              kAutoGenerateReturnID,
	                              kAnyTransactionID)
	aetools.packevent(event, {keyDirectObject: list})
	reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
	                     kAENormalPriority,
	                     kAEDefaultTimeout)
	#print "Reply:", aetools.unpackevent(reply)
	return
	event = AE.AECreateAppleEvent(kCoreEventClass,
	                              kAEOpenApplication,
	                              target,
	                              kAutoGenerateReturnID,
	                              kAnyTransactionID)
	reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
	                     kAENormalPriority,
	                     kAEDefaultTimeout)
Exemple #10
0
def _executePython(theAppleEvent, theReply):
	import aetools
	import cStringIO
	import traceback
	import sys
	parms, attrs = aetools.unpackevent(theAppleEvent)
	source = parms.get("----")
	if source is None:
		return
	stdout = cStringIO.StringIO()
	#print "<executing remote command>"
	save = sys.stdout, sys.stderr
	sys.stdout = sys.stderr = stdout
	namespace = {}
	try:
		try:
			exec source in namespace
		except:
			traceback.print_exc()
	finally:
		sys.stdout, sys.stderr = save
	output = stdout.getvalue()
	aetools.packevent(theReply, {"----": output})
Exemple #11
0
def _executePython(theAppleEvent, theReply):
    import aetools
    import cStringIO
    import traceback
    import sys
    parms, attrs = aetools.unpackevent(theAppleEvent)
    source = parms.get("----")
    if source is None:
        return
    stdout = cStringIO.StringIO()
    #print "<executing remote command>"
    save = sys.stdout, sys.stderr
    sys.stdout = sys.stderr = stdout
    namespace = {}
    try:
        try:
            exec source in namespace
        except:
            traceback.print_exc()
    finally:
        sys.stdout, sys.stderr = save
    output = stdout.getvalue()
    aetools.packevent(theReply, {"----": output})
Exemple #12
0
"""'echo' -- an AppleEvent handler which handles all events the same.
Exemple #13
0
"""'echo' -- an AppleEvent handler which handles all events the same.
Exemple #14
0
"""AEservertest - Test AppleEvent server interface
Exemple #15
0
"""MiniAEFrame - A minimal AppleEvent Application framework.
Exemple #16
0
# (Slightly less) primitive operations for sending Apple Events to applications.
Exemple #17
0
	def newevent(self, code, subcode, parameters = {}, attributes = {}):
		event = AECreateAppleEvent(code, subcode, self.target,
		                      kAutoGenerateReturnID, kAnyTransactionID)
		aetools.packevent(event, parameters, attributes)
		return event
Exemple #18
0
# (Slightly less) primitive operations for sending Apple Events to applications.
Exemple #19
0
"""AEservertest - Test AppleEvent server interface