elineve's picture
Upload 301 files
07423df
raw
history blame
10.5 kB
from typing import List, Optional
from h2o_wave import ui
def header_zone() -> ui.Zone:
"""Returns the header zone"""
zone = ui.zone(
"header",
size="80px",
)
return zone
def navigation_zone() -> ui.Zone:
"""Returns the navigation zone"""
zone = ui.zone(
"navigation",
size="13%",
zones=[
ui.zone(name="nav", size="99.5%"),
],
)
return zone
def card_zones(mode: Optional[str] = "full") -> List[ui.Zone]:
"""Specifies for certain modes the layout zones
Args:
mode: mode for layout zones
Returns:
List of zones
"""
if mode in ["full", "experiment_start"]:
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone(
"content",
size="calc(100vh - 160px)",
direction=ui.ZoneDirection.ROW,
),
ui.zone("footer", size="80px"),
],
),
],
),
]
elif mode == "error":
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone(
"content",
size="calc(100vh - 80px)",
direction=ui.ZoneDirection.ROW,
),
],
),
],
),
]
elif mode == "home":
zones = [
header_zone(),
ui.zone(
"body",
size="calc(100vh - 80px)",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone(
"content",
size="370px",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"expander",
size="0",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"tables",
size="0",
direction=ui.ZoneDirection.ROW,
zones=[
ui.zone(name="datasets", size="40%"),
ui.zone(name="experiments", size="60%"),
],
),
],
),
],
),
]
elif mode in [
"experiment/display/charts",
"experiment/compare/charts",
]:
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone("nav2", size="60px"),
ui.zone(
"first",
size="calc((100vh - 220px)*0.5)",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"second",
size="calc((100vh - 220px)*0.5)",
direction=ui.ZoneDirection.ROW,
),
ui.zone("footer", size="80px"),
],
),
],
),
]
elif mode in [
"experiment/display/chat",
]:
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone("nav2", size="60px"),
ui.zone(
"first",
size="calc((100vh - 220px)*0.65)",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"second",
size="calc((100vh - 220px)*0.35)",
direction=ui.ZoneDirection.ROW,
),
ui.zone("footer", size="80px"),
],
),
],
),
]
elif mode in ["experiment/display/summary"]:
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone("nav2", size="60px"),
ui.zone(
"first",
size="calc(0.25*(100vh - 220px))",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"second",
size="calc(0.25*(100vh - 220px))",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"third",
size="calc(0.5*(100vh - 220px))",
direction=ui.ZoneDirection.ROW,
),
ui.zone("footer", size="80px"),
],
),
],
),
]
elif mode in ["dataset/display/statistics"]:
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone("nav2", size="60px"),
ui.zone(
"first",
size="calc(0.5*(100vh - 220px))",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"second",
size="calc(0.5*(100vh - 220px))",
direction=ui.ZoneDirection.ROW,
),
ui.zone(
"third",
size="calc(0.5*(100vh - 220px))",
direction=ui.ZoneDirection.ROW,
),
ui.zone("footer", size="80px"),
],
),
],
),
]
elif mode in [
"experiment/compare/config",
"experiment/display/train_data_insights",
"experiment/display/validation_prediction_insights",
"experiment/display/config",
"experiment/display/logs",
"dataset/display/data",
"dataset/display/visualization",
"dataset/display/summary",
]:
zones = [
header_zone(),
ui.zone(
"body",
size="1",
direction=ui.ZoneDirection.ROW,
zones=[
navigation_zone(),
ui.zone(
"content_all",
direction=ui.ZoneDirection.COLUMN,
size="87.5%",
zones=[
ui.zone("nav2", size="60px"),
ui.zone(
"first",
size="calc(100vh - 220px)",
direction=ui.ZoneDirection.ROW,
),
ui.zone("footer", size="80px"),
],
),
],
),
]
else:
raise ValueError(f"Unknown mode: {mode}")
return zones
def card_wait(msg: str, box: str) -> ui.FormCard:
"""Return a form card for displaying waiting status
Args:
msg: message to display
box: box for card
Returns:
Form card
"""
card = ui.form_card(box=box, items=[ui.progress(label=msg)])
return card