diff frontends/src/jp/output_std.py @ 2161:62dfa6e02f54

jp (base, blog, output(std)): fixed bad unicode handling in stdout, use of jp.disp instead of simple print
author Goffi <goffi@goffi.org>
date Tue, 21 Feb 2017 21:01:40 +0100
parents 8f96c242fa89
children 9061c7247964
line wrap: on
line diff
--- a/frontends/src/jp/output_std.py	Tue Feb 21 21:01:40 2017 +0100
+++ b/frontends/src/jp/output_std.py	Tue Feb 21 21:01:40 2017 +0100
@@ -31,37 +31,39 @@
 class Simple(object):
     """Default outputs"""
 
-    def __init__(self, jp):
-        jp.register_output(C.OUTPUT_TEXT, SIMPLE, self.simple_print)
-        jp.register_output(C.OUTPUT_LIST, SIMPLE, self.list)
-        jp.register_output(C.OUTPUT_DICT, SIMPLE, self.dict)
-        jp.register_output(C.OUTPUT_COMPLEX, SIMPLE, self.simple_print)
+    def __init__(self, host):
+        self.host = host
+        host.register_output(C.OUTPUT_TEXT, SIMPLE, self.simple_print)
+        host.register_output(C.OUTPUT_LIST, SIMPLE, self.list)
+        host.register_output(C.OUTPUT_DICT, SIMPLE, self.dict)
+        host.register_output(C.OUTPUT_COMPLEX, SIMPLE, self.simple_print)
 
     def simple_print(self, data):
-        print data
+        self.host.disp(data)
 
     def list(self, data):
-        print u'\n'.join(data)
+        self.host.disp(u'\n'.join(data))
 
     def dict(self, data):
         for k, v in data:
-            print(u'{key}: {value}'.format(key=k, value=v))
+            self.host.disp((u'{key}: {value}'.format(key=k, value=v)))
 
 
 class Json(object):
     """outputs in json format"""
 
-    def __init__(self, jp):
-        jp.register_output(C.OUTPUT_TEXT, JSON, self.dump)
-        jp.register_output(C.OUTPUT_LIST, JSON, self.dump_pretty)
-        jp.register_output(C.OUTPUT_LIST, JSON_RAW, self.dump)
-        jp.register_output(C.OUTPUT_DICT, JSON, self.dump_pretty)
-        jp.register_output(C.OUTPUT_DICT, JSON_RAW, self.dump)
-        jp.register_output(C.OUTPUT_COMPLEX, JSON, self.dump_pretty)
-        jp.register_output(C.OUTPUT_COMPLEX, JSON_RAW, self.dump)
+    def __init__(self, host):
+        self.host = host
+        host.register_output(C.OUTPUT_TEXT, JSON, self.dump)
+        host.register_output(C.OUTPUT_LIST, JSON, self.dump_pretty)
+        host.register_output(C.OUTPUT_LIST, JSON_RAW, self.dump)
+        host.register_output(C.OUTPUT_DICT, JSON, self.dump_pretty)
+        host.register_output(C.OUTPUT_DICT, JSON_RAW, self.dump)
+        host.register_output(C.OUTPUT_COMPLEX, JSON, self.dump_pretty)
+        host.register_output(C.OUTPUT_COMPLEX, JSON_RAW, self.dump)
 
     def dump(self, data):
-        print json.dumps(data, default=str)
+        self.host.disp(json.dumps(data, default=str))
 
     def dump_pretty(self, data):
-        print json.dumps(data, indent=4, default=str)
+        self.host.disp(json.dumps(data, indent=4, default=str))