2020from common .utils .rsa_util import rsa_long_decrypt
2121from common .utils .tool_code import ToolExecutor
2222from maxkb .const import CONFIG
23- from system_manage .models import AuthTargetType
24- from system_manage .serializers .user_resource_permission import UserResourcePermissionSerializer
2523from tools .models import Tool
2624
2725function_executor = ToolExecutor (CONFIG .get ('SANDBOX' ))
@@ -48,23 +46,30 @@ def get_field_value(debug_field_list, name, is_required):
4846
4947
5048def valid_reference_value (_type , value , name ):
51- if _type == 'int' :
52- instance_type = int | float
53- elif _type == 'float' :
54- instance_type = float | int
55- elif _type == 'dict' :
56- instance_type = dict
57- elif _type == 'array' :
58- instance_type = list
59- elif _type == 'string' :
60- instance_type = str
61- else :
62- raise Exception (_ ('Field: {name} Type: {_type} Value: {value} Unsupported types' ).format (name = name ,
63- _type = _type ))
49+ try :
50+ if _type == 'int' :
51+ instance_type = int | float
52+ elif _type == 'float' :
53+ instance_type = float | int
54+ elif _type == 'dict' :
55+ value = json .loads (value ) if isinstance (value , str ) else value
56+ instance_type = dict
57+ elif _type == 'array' :
58+ value = json .loads (value ) if isinstance (value , str ) else value
59+ instance_type = list
60+ elif _type == 'string' :
61+ instance_type = str
62+ else :
63+ raise Exception (_ (
64+ 'Field: {name} Type: {_type} Value: {value} Unsupported types'
65+ ).format (name = name , _type = _type ))
66+ except :
67+ return value
6468 if not isinstance (value , instance_type ):
65- raise Exception (
66- _ ('Field: {name} Type: {_type} Value: {value} Type error' ).format (name = name , _type = _type ,
67- value = value ))
69+ raise Exception (_ (
70+ 'Field: {name} Type: {_type} Value: {value} Type error'
71+ ).format (name = name , _type = _type , value = value ))
72+ return value
6873
6974
7075def convert_value (name : str , value , _type , is_required , source , node ):
@@ -76,12 +81,8 @@ def convert_value(name: str, value, _type, is_required, source, node):
7681 value = node .workflow_manage .get_reference_field (
7782 value [0 ],
7883 value [1 :])
79- if isinstance (value , str ):
80- try :
81- value = json .loads (value )
82- except :
83- pass
84- valid_reference_value (_type , value , name )
84+
85+ value = valid_reference_value (_type , value , name )
8586 if _type == 'int' :
8687 return int (value )
8788 if _type == 'float' :
0 commit comments