# -*- coding: utf-8 -*-
# @Date : 2025/2/5 16:26
# @Author : q275343119
# @File : data_page.py
# @Description:
import io
from st_aggrid import AgGrid, JsCode, ColumnsAutoSizeMode
import streamlit as st
from app.backend.data_engine import DataEngine
from app.backend.multi_header_util import get_header_options
from utils.st_copy_to_clipboard import st_copy_to_clipboard
from streamlit_theme import st_theme
from app.backend.app_init_func import LEADERBOARD_MAP
from app.backend.constant import LEADERBOARD_ICON_MAP, BASE_URL
from app.backend.json_util import compress_msgpack, decompress_msgpack
COLUMNS = ['model_name', 'vendor',
'embd_dtype', 'embd_dim', 'num_params', 'max_tokens', 'similarity',
'query_instruct', 'corpus_instruct', 'reference', 'tooltip'
]
HEADER_STYLE = {'fontSize': '18px'}
CELL_STYLE = {'fontSize': '18px'}
def is_section(group_name):
for k, v in LEADERBOARD_MAP.items():
leaderboard_name = v[0][0]
if group_name == leaderboard_name:
return True
return False
def get_closed_dataset():
data_engine = st.session_state.get("data_engine", DataEngine())
closed_list = []
results = data_engine.results
for result in results:
if result.get("is_closed"):
closed_list.append(result.get("dataset_name"))
return closed_list
def convert_df_to_csv(df):
output = io.StringIO()
df.to_csv(output, index=False)
return output.getvalue()
def get_column_state():
"""
get column state from url
"""
query_params = st.query_params.get("grid_state", None)
sider_bar_hidden = st.query_params.get("sider_bar_hidden", "False")
table_only = st.query_params.get("table_only", "False")
if query_params:
grid_state = decompress_msgpack(query_params)
st.session_state.grid_state = grid_state
if sider_bar_hidden.upper() == 'FALSE':
st.session_state.sider_bar_hidden = False
if table_only.upper() == 'FALSE':
st.session_state.table_only = False
return None
def sidebar_css():
"""
:return:
"""
if st.session_state.get("sider_bar_hidden"):
st.markdown("""
""", unsafe_allow_html=True)
def table_only_css():
if st.session_state.get("table_only"):
st.markdown("""
""", unsafe_allow_html=True)
# logo
# st.markdown('', unsafe_allow_html=True)
title = f'