Spaces:
Running
Running
File size: 1,730 Bytes
cb5b71d 6a31b9a dc92053 8a5a6d8 cb5b71d 6a31b9a cb5b71d 6a31b9a cb5b71d 8a5a6d8 cb5b71d 6a31b9a cb5b71d 73ebcab 6a31b9a 73ebcab 6a31b9a cb5b71d 6a31b9a cb5b71d 6a31b9a cb5b71d 6a31b9a cb5b71d 6a31b9a cb5b71d 6a31b9a cb5b71d 6a31b9a cb5b71d 8a5a6d8 cb5b71d 6a31b9a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import json
import streamlit as st
import streamlit_nested_layout # Do not remove this allows nesting columns.
from components.tabs import render_tabs
from core.constants import METADATA
from core.constants import OVERVIEW
from core.constants import RECORD_SETS
from core.constants import RESOURCES
from core.constants import TABS
from core.constants import RAI
from core.past_projects import save_current_project
from core.state import get_tab
from core.state import Metadata
from core.state import set_tab
import mlcroissant as mlc
from views.files import render_files
from views.metadata import render_metadata
from views.overview import render_overview
from views.record_sets import render_record_sets
from views.rai import render_rai_metadata
def _export_json() -> str | None:
metadata: Metadata = st.session_state[Metadata]
try:
name = metadata.name or "metadata"
return {
"name": f"croissant-{name.lower()}.json",
"content": json.dumps(metadata.to_canonical().to_json()),
}
except mlc.ValidationError as exception:
return None
def render_editor():
export_json = _export_json()
# Warning: the custom component cannot be nested in a st.columns or it is forced to
# re-render even if a `key` is set.
selected_tab = get_tab()
tab = render_tabs(
tabs=TABS, selected_tab=selected_tab, json=export_json, key="tabs"
)
if tab == OVERVIEW:
render_overview()
elif tab == METADATA:
render_metadata()
elif tab == RESOURCES:
render_files()
elif tab == RECORD_SETS:
render_record_sets()
elif tab == RAI:
render_rai_metadata()
save_current_project()
set_tab(tab)
|