from code import InteractiveInterpreter
import dispatcher
import introspect
-
-try:
- True
-except NameError:
- True = 1==1
- False = 1==0
-
+import wx
class Interpreter(InteractiveInterpreter):
"""Interpreter based on code.InteractiveInterpreter."""
revision = __revision__
def __init__(self, locals=None, rawin=None,
- stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr):
+ stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr,
+ showInterpIntro=True):
"""Create an interactive interpreter object."""
InteractiveInterpreter.__init__(self, locals=locals)
self.stdin = stdin
import __builtin__
__builtin__.raw_input = rawin
del __builtin__
- copyright = 'Type "help", "copyright", "credits" or "license"'
- copyright += ' for more information.'
- self.introText = 'Python %s on %s%s%s' % \
- (sys.version, sys.platform, os.linesep, copyright)
+ if showInterpIntro:
+ copyright = 'Type "help", "copyright", "credits" or "license"'
+ copyright += ' for more information.'
+ self.introText = 'Python %s on %s%s%s' % \
+ (sys.version, sys.platform, os.linesep, copyright)
try:
sys.ps1
except AttributeError:
self.more = 0
# List of lists to support recursive push().
self.commandBuffer = []
- self.startupScript = os.environ.get('PYTHONSTARTUP')
+ self.startupScript = None
+
def push(self, command):
"""Send command to the interpreter to be executed.
command we keep appending the pieces to the last list in
commandBuffer until we have a complete command. If not, we
delete that last list."""
- command = str(command) # In case the command is unicode.
+
+ # In case the command is unicode try encoding it
+ if type(command) == unicode:
+ try:
+ command = command.encode(wx.GetDefaultPyEncoding())
+ except UnicodeEncodeError:
+ pass # otherwise leave it alone
+
if not self.more:
try: del self.commandBuffer[-1]
except IndexError: pass