File size: 922 Bytes
da27e52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()