web.dash_app

web.dash_app.assign_session_id(current_id)

Assign a unique session ID per browser tab.

Generates a new UUID when the page first loads, ensuring each user (or tab) gets an isolated session context instead of sharing a global ID across all connections.

web.dash_app.clear_selected_node(*_)

Reset selected node when file changes or user clears.

web.dash_app.handle_file_selection(active_tab, upload_contents, upload_filename, sample_path, sample_filename, user_id)

Handle both sample selection and user uploads depending on the active tab. No file copying is needed for samples since they are served directly from the static/sample folder.

web.dash_app.load_dot_source(selected_file, layout, base_dir, selected_folder)

Load the selected .dot file, parse its node attributes, and identify the main node as [id, label].

web.dash_app.show_info(_, f)

Display selected filename from upload component (if available)

web.dash_app.start_processing(_, upload_filename, sample_filename, file_ready, active_tab, include_png, user_id)

Triggered by the ‘Process ZIP’ button. Decides which file (uploaded or sample) to process based on the active tab.

web.dash_app.toggle_calc_modal(open_click, close_click, is_open, calc_content)
web.dash_app.update_file_dropdown(base_dir, selected_folder)

Update .dot file list based on selected folder.

web.dash_app.update_folder_dropdown(download_disabled, base_dir)
web.dash_app.update_graph_and_info(dot_source, selected, main_node, node_attrs, df_root)

Render DOT graph + info: highlight path and show metadata, dependency chain.

web.dash_app.update_kpi(disabled, df_root)
web.dash_app.update_main_node(main_node, df_root)
web.dash_app.update_progress(*args)