Custom tools【CustomAction】

Hello, I found another problem today. I hope to get your guidance.
line1_min and line1_max in update_input1_data() are not updated to Custom_label_line. So line1_min and line1_max in code is always an empty list.

global source_line1
source_line1 = ColumnDataSource(data=dict(x=[0]))   
line1_min = []
line1_max = []

def update_input1_data(attrname, old, new):
        x1 = np.linspace(0,slt_strc_DF1.shape[0]-1, slt_strc_DF1.shape[0])
        nums = list(slt_strc_DF1.keys())
        nums_str1 = [str(x) for x in nums] 

        source_line1 = ColumnDataSource(data=dict(x=x1))
        for i, num in enumerate(nums_str1):
            source_line1.add(slt_strc_DF1[i], num)
            p_line1.line('x', num, line_color="navy",line_width=1, source=source_line1)
        global line1_min
        global line1_max        
        line1_min = source_line1.data[nums_str1[0]].min()
        line1_max = source_line1.data[nums_str1[-1]].max()
select_strce_1.on_change('value', update_input1_data)   

Custom_label_line = CustomAction(action_tooltip=" label_line ",icon="vertical.png",
                                callback=CustomJS(
                                    args=dict(
                                        line1_min = line1_min,
                                        line1_max = line1_max,                                       
                                        source_table1 = source_table1, 
                                        source_toline1 = source_toline1), 
                                    code="""
        x_line1 = source_table1.data["x"];
        len_x_line = x_line1.length;

        var x_lines_2 = new Array();
        for(var i=0;i<len_x_line;i++){       
            x_lines_2[i] = new Array();
            x_lines_2[i][0] = x_lines[i];
            x_lines_2[i][1] = x_lines[i];
        }
        var y_lines1 = new Array();
        for(var i=0;i<len_x_line;i++){       
            y_lines1[i] = new Array();
            y_lines1[i][0] = line1_min;
            y_lines1[i][1] = line1_max;               
        }  
        source_toline1.data['x'] = x_lines_2;
        source_toline1.data['y'] = y_lines1;
        source_toline1.change.emit();
    """))
p_line1.add_tools(Custom_label_line)