From 1e86b121ec210a2df4a99b63cd8acb5440126cb2 Mon Sep 17 00:00:00 2001 From: Sam Rushing Date: Sat, 30 Jun 2012 13:35:44 -0700 Subject: [PATCH] backdoor.login(): override to provide a login prompt backdoor.print_result(): override to print the result specially (e.g., pprint) --- coro/backdoor.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/coro/backdoor.py b/coro/backdoor.py index d6c187a..5b6e6c5 100644 --- a/coro/backdoor.py +++ b/coro/backdoor.py @@ -108,9 +108,13 @@ def send_welcome_message(self): lines.append('') self.send (self.line_separator.join (lines)) + def login (self): + "override to provide authentication" + pass + def read_eval_print_loop (self): + self.login() self.send_welcome_message() - if self.global_dict is None: # this does the equivalent of 'from __main__ import *' env = sys.modules['__main__'].__dict__.copy() @@ -134,7 +138,11 @@ def read_eval_print_loop (self): else: self.parse(line, env) - def parse(self, line, env): + def print_result (self, result): + "override to process the result (e.g., pprint)" + print result + + def parse (self, line, env): save = sys.stdout, sys.stderr output = cStringIO.StringIO() try: @@ -143,7 +151,7 @@ def parse(self, line, env): co = compile (line, repr(self), 'eval') result = eval (co, env) if result is not None: - print repr(result) + self.print_result (result) env['_'] = result except SyntaxError: try: