1950
+ − 1 #! /usr/bin/python
+ − 2 # -*- coding: utf-8 -*-
+ − 3
+ − 4 # jp: a SàT command line tool
+ − 5 # Copyright (C) 2009-2016 Jérôme Poisson (goffi@goffi.org)
+ − 6
+ − 7 # This program is free software: you can redistribute it and/or modify
+ − 8 # it under the terms of the GNU Affero General Public License as published by
+ − 9 # the Free Software Foundation, either version 3 of the License, or
+ − 10 # (at your option) any later version.
+ − 11
+ − 12 # This program is distributed in the hope that it will be useful,
+ − 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ − 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ − 15 # GNU Affero General Public License for more details.
+ − 16
+ − 17 # You should have received a copy of the GNU Affero General Public License
+ − 18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ − 19 """Standard outputs"""
+ − 20
+ − 21
+ − 22 from sat_frontends.jp.constants import Const as C
+ − 23 import json
+ − 24
+ − 25 __outputs__ = [ "Default" , "Json" ]
+ − 26 DEFAULT = u 'default'
+ − 27 JSON = u 'json'
+ − 28 JSON_RAW = u 'json_raw'
+ − 29
+ − 30
+ − 31 class Default ( object ):
+ − 32 """Default outputs"""
+ − 33
+ − 34 def __init__ ( self , jp ):
+ − 35 jp . register_output ( C . OUTPUT_TEXT , DEFAULT , self . text )
+ − 36 jp . register_output ( C . OUTPUT_LIST , DEFAULT , self . list )
+ − 37
+ − 38 def text ( self , data ):
+ − 39 print data
+ − 40
+ − 41 def list ( self , data ):
+ − 42 print u ' \n ' . join ( data )
+ − 43
+ − 44
+ − 45 class Json ( object ):
+ − 46 """outputs in json format"""
+ − 47
+ − 48 def __init__ ( self , jp ):
+ − 49 jp . register_output ( C . OUTPUT_LIST , JSON , self . dump_pretty )
+ − 50 jp . register_output ( C . OUTPUT_LIST , JSON_RAW , self . dump )
+ − 51 jp . register_output ( C . OUTPUT_DICT , JSON , self . dump_pretty )
+ − 52 jp . register_output ( C . OUTPUT_DICT , JSON_RAW , self . dump )
+ − 53
+ − 54 def dump ( self , data ):
+ − 55 print json . dumps ( data )
+ − 56
+ − 57 def dump_pretty ( self , data ):
+ − 58 print json . dumps ( data , indent = 4 )