@@ -655,14 +655,21 @@ def check_sql(self, res: str) -> tuple[any]:
655655 if json_str is None :
656656 raise SingleMessageError (orjson .dumps ({'message' : 'Cannot parse sql from answer' ,
657657 'traceback' : "Cannot parse sql from answer:\n " + res }).decode ())
658- data : dict = orjson .loads (json_str )
659- sql = ''
660- message = ''
661- if data ['success' ]:
662- sql = data ['sql' ]
663- else :
664- message = data ['message' ]
665- raise SingleMessageError (message )
658+ sql : str
659+ data : dict
660+ try :
661+ data = orjson .loads (json_str )
662+
663+ if data ['success' ]:
664+ sql = data ['sql' ]
665+ else :
666+ message = data ['message' ]
667+ raise SingleMessageError (message )
668+ except SingleMessageError as e :
669+ raise e
670+ except Exception :
671+ raise SingleMessageError (orjson .dumps ({'message' : 'Cannot parse sql from answer' ,
672+ 'traceback' : "Cannot parse sql from answer:\n " + res }).decode ())
666673
667674 if sql .strip () == '' :
668675 raise SingleMessageError ("SQL query is empty" )
@@ -682,31 +689,36 @@ def check_save_chart(self, res: str) -> Dict[str, Any]:
682689 if json_str is None :
683690 raise SingleMessageError (orjson .dumps ({'message' : 'Cannot parse chart config from answer' ,
684691 'traceback' : "Cannot parse chart config from answer:\n " + res }).decode ())
685- data = orjson . loads ( json_str )
692+ data : dict
686693
687694 chart : Dict [str , Any ] = {}
688695 message = ''
689696 error = False
690697
691- if data ['type' ] and data ['type' ] != 'error' :
692- # todo type check
693- chart = data
694- if chart .get ('columns' ):
695- for v in chart .get ('columns' ):
696- v ['value' ] = v .get ('value' ).lower ()
697- if chart .get ('axis' ):
698- if chart .get ('axis' ).get ('x' ):
699- chart .get ('axis' ).get ('x' )['value' ] = chart .get ('axis' ).get ('x' ).get ('value' ).lower ()
700- if chart .get ('axis' ).get ('y' ):
701- chart .get ('axis' ).get ('y' )['value' ] = chart .get ('axis' ).get ('y' ).get ('value' ).lower ()
702- if chart .get ('axis' ).get ('series' ):
703- chart .get ('axis' ).get ('series' )['value' ] = chart .get ('axis' ).get ('series' ).get ('value' ).lower ()
704- elif data ['type' ] == 'error' :
705- message = data ['reason' ]
706- error = True
707- else :
708- message = 'Chart is empty'
698+ try :
699+ data = orjson .loads (json_str )
700+ if data ['type' ] and data ['type' ] != 'error' :
701+ # todo type check
702+ chart = data
703+ if chart .get ('columns' ):
704+ for v in chart .get ('columns' ):
705+ v ['value' ] = v .get ('value' ).lower ()
706+ if chart .get ('axis' ):
707+ if chart .get ('axis' ).get ('x' ):
708+ chart .get ('axis' ).get ('x' )['value' ] = chart .get ('axis' ).get ('x' ).get ('value' ).lower ()
709+ if chart .get ('axis' ).get ('y' ):
710+ chart .get ('axis' ).get ('y' )['value' ] = chart .get ('axis' ).get ('y' ).get ('value' ).lower ()
711+ if chart .get ('axis' ).get ('series' ):
712+ chart .get ('axis' ).get ('series' )['value' ] = chart .get ('axis' ).get ('series' ).get ('value' ).lower ()
713+ elif data ['type' ] == 'error' :
714+ message = data ['reason' ]
715+ error = True
716+ else :
717+ raise Exception ('Chart is empty' )
718+ except Exception :
709719 error = True
720+ message = orjson .dumps ({'message' : 'Cannot parse chart config from answer' ,
721+ 'traceback' : "Cannot parse chart config from answer:\n " + res }).decode ()
710722
711723 if error :
712724 raise SingleMessageError (message )
0 commit comments