summaryrefslogtreecommitdiffstats
path: root/Mac/Contrib/BBPy/PythonSlave.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Contrib/BBPy/PythonSlave.py')
-rw-r--r--Mac/Contrib/BBPy/PythonSlave.py129
1 files changed, 0 insertions, 129 deletions
diff --git a/Mac/Contrib/BBPy/PythonSlave.py b/Mac/Contrib/BBPy/PythonSlave.py
deleted file mode 100644
index b60f034..0000000
--- a/Mac/Contrib/BBPy/PythonSlave.py
+++ /dev/null
@@ -1,129 +0,0 @@
-"""PythonSlave.py
-An application that responds to three types of apple event:
- 'pyth'/'EXEC': execute direct parameter as Python
- 'aevt', 'quit': quit
- 'aevt', 'odoc': perform python scripts
-
-Copyright © 1996, Just van Rossum, Letterror
-"""
-
-__version__ = "0.1.3"
-
-import FrameWork
-import sys
-import traceback
-import aetools
-import string
-from Carbon import AE
-import EasyDialogs
-import os
-from Carbon import Qd
-from types import *
-from Carbon.Events import charCodeMask, cmdKey
-import MacOS
-from Carbon import Evt
-
-def dummyfunc(): pass
-
-modulefilename = dummyfunc.func_code.co_filename
-
-def Interact(timeout = 50000000): # timeout after 10 days...
- AE.AEInteractWithUser(timeout)
-
-
-class PythonSlave(FrameWork.Application):
- def __init__(self):
- FrameWork.Application.__init__(self)
- AE.AEInstallEventHandler('pyth', 'EXEC', ExecHandler)
- AE.AEInstallEventHandler('aevt', 'quit', QuitHandler)
- AE.AEInstallEventHandler('aevt', 'odoc', OpenDocumentHandler)
-
- def makeusermenus(self):
- self.filemenu = m = FrameWork.Menu(self.menubar, "File")
- self._quititem = FrameWork.MenuItem(m, "Quit", "Q", self._quit)
-
- def do_kHighLevelEvent(self, event):
- (what, message, when, where, modifiers) = event
- try:
- AE.AEProcessAppleEvent(event)
- except AE.Error, detail:
- print "Apple Event was not handled, error:", detail
-
- def do_key(self, event):
- (what, message, when, where, modifiers) = event
- c = chr(message & charCodeMask)
- if modifiers & cmdKey and c == '.':
- return
- FrameWork.Application.do_key(self, event)
-
- def idle(self, event):
- Qd.InitCursor()
-
- def quit(self, *args):
- raise self
-
- def getabouttext(self):
- return "About PythonSlaveƒ"
-
- def do_about(self, id, item, window, event):
- EasyDialogs.Message("PythonSlave " + __version__ + "\rCopyright © 1996, Letterror, JvR")
-
-
-def ExecHandler(theAppleEvent, theReply):
- parameters, args = aetools.unpackevent(theAppleEvent)
- if parameters.has_key('----'):
- if parameters.has_key('NAME'):
- print '--- executing "' + parameters['NAME'] + '" ---'
- else:
- print '--- executing "<unknown>" ---'
- stuff = parameters['----']
- MyExec(stuff + "\n") # execute input
- print '--- done ---'
- return 0
-
-def MyExec(stuff):
- stuff = string.splitfields(stuff, '\r') # convert return chars
- stuff = string.joinfields(stuff, '\n') # to newline chars
- Interact()
- saveyield = MacOS.EnableAppswitch(1)
- try:
- exec stuff in {}
- except:
- MacOS.EnableAppswitch(saveyield)
- traceback.print_exc()
- MacOS.EnableAppswitch(saveyield)
-
-def OpenDocumentHandler(theAppleEvent, theReply):
- parameters, args = aetools.unpackevent(theAppleEvent)
- docs = parameters['----']
- if type(docs) <> ListType:
- docs = [docs]
- for doc in docs:
- fss, a = doc.Resolve()
- path = fss.as_pathname()
- if path <> modulefilename:
- MyExecFile(path)
- return 0
-
-def MyExecFile(path):
- saveyield = MacOS.EnableAppswitch(1)
- savewd = os.getcwd()
- os.chdir(os.path.split(path)[0])
- print '--- Executing file "' + os.path.split(path)[1] + '"'
- try:
- execfile(path, {"__name__": "__main__"})
- except:
- traceback.print_exc()
- MacOS.EnableAppswitch(saveyield)
- MacOS.EnableAppswitch(saveyield)
- os.chdir(savewd)
- print "--- done ---"
-
-def QuitHandler(theAppleEvent, theReply):
- slave.quit()
- return 0
-
-
-slave = PythonSlave()
-print "PythonSlave", __version__, "ready."
-slave.mainloop()