Spaces:
Runtime error
Runtime error
Update visualization.py
Browse files- visualization.py +13 -8
visualization.py
CHANGED
@@ -27,7 +27,7 @@ def create_radar_chart(data, title):
|
|
27 |
)
|
28 |
return fig
|
29 |
|
30 |
-
def update_visibility_and_charts(status, exec_time, lang, transcription, attachments_data, bigfive_data, personalities_data, chart_data):
|
31 |
outputs = [
|
32 |
gr.update(value=status, visible=True),
|
33 |
gr.update(value=exec_time, visible=True),
|
@@ -35,13 +35,17 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
|
|
35 |
gr.update(value=transcription, visible=True),
|
36 |
]
|
37 |
|
38 |
-
|
|
|
39 |
|
40 |
-
|
|
|
|
|
|
|
41 |
speaker_outputs = []
|
42 |
|
43 |
# Attachments
|
44 |
-
attachment_data = attachments_data.get(
|
45 |
if attachment_data:
|
46 |
attachment_chart_data = {k: v for k, v in attachment_data.items() if k in ["Secured", "Anxious-Preoccupied", "Dismissive-Avoidant", "Fearful-Avoidant"]}
|
47 |
attachment_chart = create_bar_chart(attachment_chart_data, f"Attachments Analysis - {speaker}")
|
@@ -57,7 +61,7 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
|
|
57 |
speaker_outputs.extend([gr.update(visible=False)] * 3)
|
58 |
|
59 |
# Big Five
|
60 |
-
bigfive_data_speaker = bigfive_data.get(
|
61 |
if bigfive_data_speaker:
|
62 |
bigfive_chart_data = {k: v for k, v in bigfive_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
|
63 |
bigfive_chart = create_bar_chart(bigfive_chart_data, f"Big Five Analysis - {speaker}")
|
@@ -69,7 +73,7 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
|
|
69 |
speaker_outputs.extend([gr.update(visible=False)] * 2)
|
70 |
|
71 |
# Personalities
|
72 |
-
personalities_data_speaker = personalities_data.get(
|
73 |
if personalities_data_speaker:
|
74 |
personalities_chart_data = {k: v for k, v in personalities_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
|
75 |
personalities_chart = create_bar_chart(personalities_chart_data, f"Personalities Analysis - {speaker}")
|
@@ -82,14 +86,15 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
|
|
82 |
|
83 |
outputs.extend(speaker_outputs)
|
84 |
|
85 |
-
# Hide unused speaker components
|
86 |
-
|
87 |
outputs.extend([gr.update(visible=False)] * 7) # 7 components per speaker
|
88 |
|
89 |
print("Debug: Attachments Data:", attachments_data)
|
90 |
print("Debug: Big Five Data:", bigfive_data)
|
91 |
print("Debug: Personalities Data:", personalities_data)
|
92 |
print("Debug: Chart Data:", chart_data)
|
|
|
93 |
|
94 |
return outputs
|
95 |
|
|
|
27 |
)
|
28 |
return fig
|
29 |
|
30 |
+
def update_visibility_and_charts(status, exec_time, lang, transcription, attachments_data, bigfive_data, personalities_data, chart_data, max_speakers):
|
31 |
outputs = [
|
32 |
gr.update(value=status, visible=True),
|
33 |
gr.update(value=exec_time, visible=True),
|
|
|
35 |
gr.update(value=transcription, visible=True),
|
36 |
]
|
37 |
|
38 |
+
# Collect all unique speaker names from all datasets
|
39 |
+
all_speakers = set(attachments_data.keys()) | set(bigfive_data.keys()) | set(personalities_data.keys()) | set(chart_data.keys())
|
40 |
|
41 |
+
# Sort speakers and limit to max_speakers (up to 3)
|
42 |
+
sorted_speakers = sorted(all_speakers)[:min(max_speakers, 3)]
|
43 |
+
|
44 |
+
for speaker in sorted_speakers:
|
45 |
speaker_outputs = []
|
46 |
|
47 |
# Attachments
|
48 |
+
attachment_data = attachments_data.get(speaker, {})
|
49 |
if attachment_data:
|
50 |
attachment_chart_data = {k: v for k, v in attachment_data.items() if k in ["Secured", "Anxious-Preoccupied", "Dismissive-Avoidant", "Fearful-Avoidant"]}
|
51 |
attachment_chart = create_bar_chart(attachment_chart_data, f"Attachments Analysis - {speaker}")
|
|
|
61 |
speaker_outputs.extend([gr.update(visible=False)] * 3)
|
62 |
|
63 |
# Big Five
|
64 |
+
bigfive_data_speaker = bigfive_data.get(speaker, {})
|
65 |
if bigfive_data_speaker:
|
66 |
bigfive_chart_data = {k: v for k, v in bigfive_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
|
67 |
bigfive_chart = create_bar_chart(bigfive_chart_data, f"Big Five Analysis - {speaker}")
|
|
|
73 |
speaker_outputs.extend([gr.update(visible=False)] * 2)
|
74 |
|
75 |
# Personalities
|
76 |
+
personalities_data_speaker = personalities_data.get(speaker, {})
|
77 |
if personalities_data_speaker:
|
78 |
personalities_chart_data = {k: v for k, v in personalities_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
|
79 |
personalities_chart = create_bar_chart(personalities_chart_data, f"Personalities Analysis - {speaker}")
|
|
|
86 |
|
87 |
outputs.extend(speaker_outputs)
|
88 |
|
89 |
+
# Hide unused speaker components
|
90 |
+
for _ in range(3 - len(sorted_speakers)):
|
91 |
outputs.extend([gr.update(visible=False)] * 7) # 7 components per speaker
|
92 |
|
93 |
print("Debug: Attachments Data:", attachments_data)
|
94 |
print("Debug: Big Five Data:", bigfive_data)
|
95 |
print("Debug: Personalities Data:", personalities_data)
|
96 |
print("Debug: Chart Data:", chart_data)
|
97 |
+
print("Debug: Sorted Speakers:", sorted_speakers)
|
98 |
|
99 |
return outputs
|
100 |
|