@@ -655,14 +655,21 @@ def check_sql(self, res: str) -> tuple[any]:
655
655
if json_str is None :
656
656
raise SingleMessageError (orjson .dumps ({'message' : 'Cannot parse sql from answer' ,
657
657
'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 ())
666
673
667
674
if sql .strip () == '' :
668
675
raise SingleMessageError ("SQL query is empty" )
@@ -682,31 +689,36 @@ def check_save_chart(self, res: str) -> Dict[str, Any]:
682
689
if json_str is None :
683
690
raise SingleMessageError (orjson .dumps ({'message' : 'Cannot parse chart config from answer' ,
684
691
'traceback' : "Cannot parse chart config from answer:\n " + res }).decode ())
685
- data = orjson . loads ( json_str )
692
+ data : dict
686
693
687
694
chart : Dict [str , Any ] = {}
688
695
message = ''
689
696
error = False
690
697
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 :
709
719
error = True
720
+ message = orjson .dumps ({'message' : 'Cannot parse chart config from answer' ,
721
+ 'traceback' : "Cannot parse chart config from answer:\n " + res }).decode ()
710
722
711
723
if error :
712
724
raise SingleMessageError (message )
0 commit comments