Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python | |
| from __future__ import annotations | |
| import gradio as gr | |
| from constants import (HARDWARE_CHOICES, OWNER_CHOICES, SDK_CHOICES, | |
| SLEEP_TIME_CHOICES, STATUS_CHOICES, VISIBILITY_CHOICES) | |
| from demo_list import DemoList, get_df_from_yaml | |
| from restart_scheduler import RestartScheduler | |
| from settings import HF_TOKEN, INTERVAL_MINUTES, SPACE_ID | |
| demo_list = DemoList(get_df_from_yaml('list.yaml')) | |
| if SPACE_ID is not None and INTERVAL_MINUTES > 0: | |
| scheduler = RestartScheduler(space_id=SPACE_ID, | |
| interval_minutes=INTERVAL_MINUTES, | |
| hf_token=HF_TOKEN) | |
| scheduler.start() | |
| def update_status_checkboxes(choices: list[str]) -> list[str]: | |
| if '(ALL)' in choices: | |
| return STATUS_CHOICES | |
| elif '(NONE)' in choices: | |
| return [] | |
| else: | |
| return choices | |
| def update_hardware_checkboxes(choices: list[str]) -> list[str]: | |
| if '(ALL)' in choices: | |
| return HARDWARE_CHOICES | |
| elif '(NONE)' in choices: | |
| return [] | |
| else: | |
| return choices | |
| def update_sdk_checkboxes(choices: list[str]) -> list[str]: | |
| if '(ALL)' in choices: | |
| return SDK_CHOICES | |
| elif '(NONE)' in choices: | |
| return [] | |
| else: | |
| return choices | |
| def update_sleep_time_checkboxes(choices: list[str]) -> list[str]: | |
| if '(ALL)' in choices: | |
| return SLEEP_TIME_CHOICES | |
| elif '(NONE)' in choices: | |
| return [] | |
| else: | |
| return choices | |
| with gr.Blocks(css='style.css') as demo: | |
| with gr.Accordion(label='Filter', open=False): | |
| status = gr.CheckboxGroup(label='Status', | |
| choices=['(ALL)', '(NONE)'] + STATUS_CHOICES, | |
| value=STATUS_CHOICES, | |
| type='value') | |
| hardware = gr.CheckboxGroup(label='Hardware', | |
| choices=['(ALL)', '(NONE)'] + | |
| HARDWARE_CHOICES, | |
| value=HARDWARE_CHOICES, | |
| type='value') | |
| sleep_time = gr.CheckboxGroup(label='Sleep time', | |
| choices=['(ALL)', '(NONE)'] + | |
| SLEEP_TIME_CHOICES, | |
| value=SLEEP_TIME_CHOICES, | |
| type='value') | |
| multiple_replicas = gr.Checkbox(label='Multiple replicas', value=False) | |
| sdk = gr.CheckboxGroup(label='SDK', | |
| choices=['(ALL)', '(NONE)'] + SDK_CHOICES, | |
| value=SDK_CHOICES, | |
| type='value') | |
| visibility = gr.CheckboxGroup(label='Visibility', | |
| choices=VISIBILITY_CHOICES, | |
| value=VISIBILITY_CHOICES, | |
| type='value') | |
| owner = gr.CheckboxGroup(label='Owner', | |
| choices=OWNER_CHOICES, | |
| value=OWNER_CHOICES, | |
| type='value') | |
| apply_button = gr.Button('Apply') | |
| df = gr.Dataframe(value=demo_list.df_prettified, | |
| datatype=demo_list.column_datatype, | |
| type='pandas', | |
| interactive=False, | |
| row_count=(0, 'dynamic')) | |
| status.change(fn=update_status_checkboxes, | |
| inputs=status, | |
| outputs=status, | |
| queue=False, | |
| show_progress=False, | |
| api_name=False) | |
| hardware.change(fn=update_hardware_checkboxes, | |
| inputs=hardware, | |
| outputs=hardware, | |
| queue=False, | |
| show_progress=False, | |
| api_name=False) | |
| sdk.change(fn=update_sdk_checkboxes, | |
| inputs=sdk, | |
| outputs=sdk, | |
| queue=False, | |
| show_progress=False, | |
| api_name=False) | |
| sleep_time.change(fn=update_sleep_time_checkboxes, | |
| inputs=sleep_time, | |
| outputs=sleep_time, | |
| queue=False, | |
| show_progress=False, | |
| api_name=False) | |
| apply_button.click(fn=demo_list.filter, | |
| inputs=[ | |
| status, | |
| hardware, | |
| sleep_time, | |
| multiple_replicas, | |
| sdk, | |
| visibility, | |
| owner, | |
| ], | |
| outputs=df, | |
| api_name=False) | |
| demo.queue(api_open=False).launch() | |