diff options
| author | Kurt B. Kaiser <kbk@shore.net> | 2002-10-10 08:25:24 (GMT) | 
|---|---|---|
| committer | Kurt B. Kaiser <kbk@shore.net> | 2002-10-10 08:25:24 (GMT) | 
| commit | 5afa1dfb72311b8360904363cc3ebb7cbfc8b6e4 (patch) | |
| tree | 33287ebdb0fd27d9fdea4a8210b1a259df26c5b7 /Lib/idlelib/run.py | |
| parent | 853ddd5cb96981966b935ed75bf8af0cfd0bee24 (diff) | |
| download | cpython-5afa1dfb72311b8360904363cc3ebb7cbfc8b6e4.zip cpython-5afa1dfb72311b8360904363cc3ebb7cbfc8b6e4.tar.gz cpython-5afa1dfb72311b8360904363cc3ebb7cbfc8b6e4.tar.bz2  | |
M CallTips.py      Add support for getting calltip from subprocess,
                   refactor a bit and clean up.
M PyShell.py       Cosmetic changes, delete blank lines, add # on some
                   blank lines.
M rpc.py           Add more debugging capability
M run.py           Add support for getting calltip from subprocess
                   Move import statements
Diffstat (limited to 'Lib/idlelib/run.py')
| -rw-r--r-- | Lib/idlelib/run.py | 38 | 
1 files changed, 23 insertions, 15 deletions
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 5b3c733..5b9864c 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -1,23 +1,31 @@  import sys  import time  import socket + +import CallTips +import RemoteDebugger +import RemoteObjectBrowser +import StackViewer  import rpc +import __main__ +  def main():      """Start the Python execution server in a subprocess -    In Idle, RPCServer is instantiated with handlerclass MyHandler, which -    inherits register/unregister methods from RPCHandler via the mix-in class -    SocketIO. +    In the Python subprocess, RPCServer is instantiated with handlerclass +    MyHandler, which inherits register/unregister methods from RPCHandler via +    the mix-in class SocketIO. -    When the RPCServer is instantiated, the TCPServer initialization creates an -    instance of run.MyHandler and calls its handle() method.  handle() -    instantiates a run.Executive, passing it a reference to the MyHandler -    object.  That reference is saved as an attribute of the Executive instance. -    The Executive methods have access to the reference and can pass it on to -    entities that they command (e.g. RemoteDebugger.Debugger.start_debugger()). -    The latter, in turn, can call MyHandler(SocketIO) register/unregister -    methods via the reference to register and unregister themselves. +    When the RPCServer svr is instantiated, the TCPServer initialization +    creates an instance of run.MyHandler and calls its handle() method. +    handle() instantiates a run.Executive object, passing it a reference to the +    MyHandler object.  That reference is saved as attribute rpchandler of the +    Executive instance.  The Executive methods have access to the reference and +    can pass it on to entities that they command +    (e.g. RemoteDebugger.Debugger.start_debugger()).  The latter, in turn, can +    call MyHandler(SocketIO) register/unregister methods via the reference to +    register and unregister themselves.      """      port = 8833 @@ -55,28 +63,28 @@ class Executive:      def __init__(self, rpchandler):          self.rpchandler = rpchandler -        import __main__          self.locals = __main__.__dict__ +        self.calltip = CallTips.CallTips()      def runcode(self, code):          exec code in self.locals      def start_the_debugger(self, gui_adap_oid): -        import RemoteDebugger          return RemoteDebugger.start_debugger(self.rpchandler, gui_adap_oid)      def stop_the_debugger(self, idb_adap_oid):          "Unregister the Idb Adapter.  Link objects and Idb then subject to GC"          self.rpchandler.unregister(idb_adap_oid) +    def get_the_calltip(self, name): +        return self.calltip.fetch_tip(name) +      def stackviewer(self, flist_oid=None):          if not hasattr(sys, "last_traceback"):              return None          flist = None          if flist_oid is not None:              flist = self.rpchandler.get_remote_proxy(flist_oid) -        import RemoteObjectBrowser -        import StackViewer          tb = sys.last_traceback          while tb and tb.tb_frame.f_globals["__name__"] in ["rpc", "run"]:              tb = tb.tb_next  | 
