> How does IDLE clean up it's local scope on startup? By that I mean the > following. When you start IDLE and do a dir() you get the following: > > Python 2.2.2 (#1, Oct 28 2002, 17:22:19) > [GCC 3.2 (Mandrake Linux 9.0 3.2-1mdk)] on linux2 > Type "copyright", "credits" or "license" for more information. > GRPC IDLE Fork 0.8.9 ^^^^ ^This is a clue. > >>> dir() > ['__builtins__', '__doc__', '__name__'] > >>> > > Only three items are returned by dir(), just like in the regular Python > interpreter. Now I know how IDLE sets this up in its code, but I can't > seem to achieve the exact same results with PyCrust. And when I add a > print statement to the IDLE source code (PyShell.py): > > class ModifiedInterpreter(InteractiveInterpreter): > > def __init__(self, tkconsole): > self.tkconsole = tkconsole > locals = sys.modules['__main__'].__dict__ > print locals.keys() > InteractiveInterpreter.__init__(self, locals=locals) > self.save_warnings_filters = None > > I can see that locals contains a bunch of stuff (well, one extra item > when you run idle.py, and a bunch of stuff when you run PyShell.py), > similar to what I see in PyCrust. So where does it all go by the time > IDLE is up and running? Where does locals get "cleaned up"? Every one > of my hunches has lead to me down a dead end. I give up! Please help. IDLE doesn't use these locals any more; they're decoys. The GRPC version runs the interpreter in a subprocess and the subprocess is more careful. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4