Spaces:
Running
Running
Another try with bokeh2iframe()
Browse files- analyze_winscore.py +32 -0
- app.py +4 -0
- server.py +5 -5
analyze_winscore.py
CHANGED
|
@@ -21,6 +21,38 @@ def bokeh2html(obj):
|
|
| 21 |
|
| 22 |
return bokeh_html
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
def bokeh2json(obj):
|
| 25 |
from bokeh.document import Document
|
| 26 |
|
|
|
|
| 21 |
|
| 22 |
return bokeh_html
|
| 23 |
|
| 24 |
+
def bokeh2fullhtml(obj):
|
| 25 |
+
from bokeh.embed import components
|
| 26 |
+
from bokeh.resources import CDN
|
| 27 |
+
|
| 28 |
+
script, div = components(obj, CDN)
|
| 29 |
+
bokeh_html = f"""<!DOCTYPE html>
|
| 30 |
+
<html lang="en">
|
| 31 |
+
<head>
|
| 32 |
+
{CDN.render()}
|
| 33 |
+
</head>
|
| 34 |
+
<body>
|
| 35 |
+
{div}
|
| 36 |
+
{script}
|
| 37 |
+
</body>
|
| 38 |
+
</html>"""
|
| 39 |
+
|
| 40 |
+
return bokeh_html
|
| 41 |
+
|
| 42 |
+
def bokeh2iframe(obj):
|
| 43 |
+
import html
|
| 44 |
+
|
| 45 |
+
srcdoc = bokeh2fullhtml(obj)
|
| 46 |
+
srcdoc = html.escape(srcdoc)
|
| 47 |
+
|
| 48 |
+
return f'''
|
| 49 |
+
<iframe
|
| 50 |
+
srcdoc="{srcdoc}"
|
| 51 |
+
width="100%" height="450"
|
| 52 |
+
style="border:none;"
|
| 53 |
+
></iframe>
|
| 54 |
+
'''
|
| 55 |
+
|
| 56 |
def bokeh2json(obj):
|
| 57 |
from bokeh.document import Document
|
| 58 |
|
app.py
CHANGED
|
@@ -540,6 +540,10 @@ tr.row_odd {
|
|
| 540 |
justify-content: normal;
|
| 541 |
}
|
| 542 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 543 |
"""
|
| 544 |
|
| 545 |
custom_js = """
|
|
|
|
| 540 |
justify-content: normal;
|
| 541 |
}
|
| 542 |
|
| 543 |
+
.prose {
|
| 544 |
+
max-width: none;
|
| 545 |
+
}
|
| 546 |
+
|
| 547 |
"""
|
| 548 |
|
| 549 |
custom_js = """
|
server.py
CHANGED
|
@@ -28,7 +28,7 @@ import pandas as pd
|
|
| 28 |
from huggingface_hub import HfApi, snapshot_download
|
| 29 |
|
| 30 |
from compare_significance import SUPPORTED_METRICS
|
| 31 |
-
from analyze_winscore import
|
| 32 |
|
| 33 |
VISIBLE_METRICS = SUPPORTED_METRICS + ["macro_f1"]
|
| 34 |
|
|
@@ -377,12 +377,12 @@ class LeaderboardServer:
|
|
| 377 |
self.tournament_dataframes_csv = tournament_dataframes_csv
|
| 378 |
|
| 379 |
leaderboard_scatter_plots = {kind_of_p_value: {
|
| 380 |
-
category:
|
| 381 |
for category in categories
|
| 382 |
} for kind_of_p_value in self.KINDS_OF_P_VALUE}
|
| 383 |
|
| 384 |
leaderboard_heatmaps = {kind_of_p_value: {
|
| 385 |
-
category:
|
| 386 |
for category in categories
|
| 387 |
} for kind_of_p_value in self.KINDS_OF_P_VALUE}
|
| 388 |
|
|
@@ -739,7 +739,7 @@ class LeaderboardServer:
|
|
| 739 |
with self.var_lock.ro:
|
| 740 |
return self.leaderboard_scatter_plots[kind_of_p_value][category]
|
| 741 |
else:
|
| 742 |
-
return
|
| 743 |
|
| 744 |
def _get_leaderboard_scatter_plot(self, pre_submit=None, category=None, kind_of_p_value=None):
|
| 745 |
import numpy as np
|
|
@@ -795,7 +795,7 @@ class LeaderboardServer:
|
|
| 795 |
with self.var_lock.ro:
|
| 796 |
return self.leaderboard_heatmaps[kind_of_p_value][category]
|
| 797 |
else:
|
| 798 |
-
return
|
| 799 |
|
| 800 |
def _get_leaderboard_heatmap(self, pre_submit=None, category=None, kind_of_p_value=None):
|
| 801 |
from analyze_winscore import get_ldb_records, create_heatmap
|
|
|
|
| 28 |
from huggingface_hub import HfApi, snapshot_download
|
| 29 |
|
| 30 |
from compare_significance import SUPPORTED_METRICS
|
| 31 |
+
from analyze_winscore import bokeh2iframe
|
| 32 |
|
| 33 |
VISIBLE_METRICS = SUPPORTED_METRICS + ["macro_f1"]
|
| 34 |
|
|
|
|
| 377 |
self.tournament_dataframes_csv = tournament_dataframes_csv
|
| 378 |
|
| 379 |
leaderboard_scatter_plots = {kind_of_p_value: {
|
| 380 |
+
category: bokeh2iframe(self._get_leaderboard_scatter_plot(category=category, kind_of_p_value=kind_of_p_value))
|
| 381 |
for category in categories
|
| 382 |
} for kind_of_p_value in self.KINDS_OF_P_VALUE}
|
| 383 |
|
| 384 |
leaderboard_heatmaps = {kind_of_p_value: {
|
| 385 |
+
category: bokeh2iframe(self._get_leaderboard_heatmap(category=category, kind_of_p_value=kind_of_p_value))
|
| 386 |
for category in categories
|
| 387 |
} for kind_of_p_value in self.KINDS_OF_P_VALUE}
|
| 388 |
|
|
|
|
| 739 |
with self.var_lock.ro:
|
| 740 |
return self.leaderboard_scatter_plots[kind_of_p_value][category]
|
| 741 |
else:
|
| 742 |
+
return bokeh2iframe(self._get_leaderboard_scatter_plot(pre_submit=pre_submit, category=category, kind_of_p_value=kind_of_p_value))
|
| 743 |
|
| 744 |
def _get_leaderboard_scatter_plot(self, pre_submit=None, category=None, kind_of_p_value=None):
|
| 745 |
import numpy as np
|
|
|
|
| 795 |
with self.var_lock.ro:
|
| 796 |
return self.leaderboard_heatmaps[kind_of_p_value][category]
|
| 797 |
else:
|
| 798 |
+
return bokeh2iframe(self._get_leaderboard_heatmap(pre_submit=pre_submit, category=category, kind_of_p_value=kind_of_p_value))
|
| 799 |
|
| 800 |
def _get_leaderboard_heatmap(self, pre_submit=None, category=None, kind_of_p_value=None):
|
| 801 |
from analyze_winscore import get_ldb_records, create_heatmap
|