import gradio as gr def update_dropdown(class_prefix): # Generate a list of student numbers for the class if class_prefix is not None: return [f"{class_prefix}{str(i).zfill(2)}" for i in range(1, 41)] return [] # Define class options for the first dropdown class_options = ["5H", "5E", "5RS"] # Create the Gradio interface with gr.Blocks() as demo: class_dropdown = gr.Dropdown(label="Class", choices=class_options, value=class_options[0]) # Initialize the second dropdown with the values from the first class as default student_dropdown = gr.Dropdown(label="Student", choices=update_dropdown(class_options[0])) # Bind the update function to the class dropdown class_dropdown.change(fn=update_dropdown, inputs=class_dropdown, outputs=student_dropdown) # Launch the app demo.launch()