diff --git a/src/app_layout.py b/src/app_layout.py index 5f1ddbf..5664c1b 100644 --- a/src/app_layout.py +++ b/src/app_layout.py @@ -1,6 +1,5 @@ from dash import Dash, html, dcc import dash_bootstrap_components as dbc -from dash import dcc from dash_iconify import DashIconify from dash.long_callback import DiskcacheLongCallbackManager import plotly.graph_objects as go @@ -23,6 +22,8 @@ DOCKER_DATA = pathlib.Path.home() / 'data' #/app/work/data UPLOAD_FOLDER_ROOT = DOCKER_DATA / 'upload' #/app/work/data/upload +# DATA_CLINIC_OPTION = + #### SETUP DASH APP #### cache = diskcache.Cache("./cache") long_callback_manager = DiskcacheLongCallbackManager(cache) @@ -54,8 +55,6 @@ dbc.Label('Or select Data Clinic modal', className='mr-2'), dcc.Dropdown( id='feature-vector-model-list', - #options=DATA_OPTION, - #value = DATA_OPTION[0]['value'], clearable=False, style={'margin-bottom': '1rem'} ), @@ -211,12 +210,6 @@ max_intervals=-1, # keep triggering indefinitely, None n_intervals=0, ), - dcc.Interval( - id='interval-for-dc', - interval=1000, # in milliseconds - max_intervals=-1, # keep triggering indefinitely, None - n_intervals=0, - ), ] ) diff --git a/src/frontend.py b/src/frontend.py index 2646781..5018236 100755 --- a/src/frontend.py +++ b/src/frontend.py @@ -405,8 +405,14 @@ def update_scatter_plot(latent_vectors, selected_cluster, selected_label, scatte n_components = children['props']['children'][0]["props"]["children"][1]["props"]["value"] + # if selected_data is not None and len(selected_data.get('points', [])) > 0: + # selected_indices = [point['customdata'][0] for point in selected_data['points']] if selected_data is not None and len(selected_data.get('points', [])) > 0: - selected_indices = [point['customdata'][0] for point in selected_data['points']] + selected_indices = [] + for point in selected_data['points']: + if 'customdata' in point and len(point['customdata']): + selected_indices.append(point['customdata'][0]) + print("selected indices: ", selected_indices) else: selected_indices = None @@ -509,7 +515,7 @@ def update_heatmap(click_data, selected_data, display_option, input_data): [ State('clusters', 'data'), State('input_labels', 'data'), - State('label_schema', 'data') + State('label_schema', 'data'), ] ) def update_statistics(selected_data, clusters, assigned_labels, label_names): @@ -523,12 +529,16 @@ def update_statistics(selected_data, clusters, assigned_labels, label_names): Returns: [num_images, clusters, labels]: statistics ''' + clusters = np.array(clusters) assigned_labels = np.array(assigned_labels) + if selected_data is not None and len(selected_data['points']) > 0: selected_indices = [point['customdata'][0] for point in selected_data['points']] # Access customdata for the original indices - selected_clusters = clusters[selected_indices] + selected_clusters = [] + if clusters: + selected_clusters = clusters[selected_indices] selected_labels = assigned_labels[selected_indices] num_images = len(selected_indices) @@ -590,8 +600,7 @@ def toggle_modal(n_submit, n_apply, @app.callback( Output('feature-vector-model-list', 'options'), - Input('interval-for-dc', 'n_intervals'), - # prevent_initial_call=True + Input('interval-component', 'n_intervals'), ) def update_trained_model_list(interval): ''' @@ -607,12 +616,10 @@ def update_trained_model_list(interval): data_clinic_models = get_trained_models_list(USER, 'data_clinic') ml_coach_models = get_trained_models_list(USER, 'mlcoach') feature_vector_models = data_clinic_models + ml_coach_models - print(feature_vector_models) + #print(feature_vector_models) return feature_vector_models if __name__ == '__main__': app.run_server(debug=True, host='0.0.0.0', port=8070, ) - -