from typing import List, Union, Tuple import numpy as np import gradio as gr from taiko import ( TaikoMusic, CourseMusic, UserInterface ) def handle(*attributes: List[Union[str, int]]) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray]: """ Must return TaikoMusic for each course in reverse order: - Ura, Oni, Hard, Normal, Easy """ # Set every attribute to TaikoMusic from gradio event handler inputs taiko = TaikoMusic() for attr_name, attr_value in zip(taiko.__dict__.keys(), attributes): setattr(taiko, attr_name, attr_value) # Generate Taiko Music try: music: CourseMusic = taiko.generate_taiko_music() except Exception as e: raise gr.Error(e) return music.ura, music.oni, music.hard, music.normal, music.easy if __name__ == "__main__": app = UserInterface(event_handler=handle) app.launch()