Don't use SetPropagatingDict in the built in console
Passing a dict subclass to eval is not supported in Python 2. This was causing weird issues where the C-x would break the UI (I am not clear exactly how it caused those issues). The point of SetPropagatingDict is to combine globals and locals into a single dictionary for things like code.InteractiveConsole and rlcompleter.Completer, which take a single dictionary, but to allow changes to propagate, so that assignments in the shell can modify global names. However, this is completely unnecessary for the built in shell, as we call eval() ourselves, so we can just pass the exact globals and locals dicts separately. This fixes #166.
Loading
Please sign in to comment