Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import json | |
| import random | |
| # Function to parse the file | |
| def parse_file(filepath): | |
| with open(filepath) as f: | |
| lines = f.readlines() | |
| cleaned_lines = [] | |
| for line in lines: | |
| if len(line) > 1: | |
| cleaned_lines.append(line) | |
| return cleaned_lines | |
| data = parse_file("concatenated_quality-control_011223.json") | |
| def update_index(direction, current_index, output_text): | |
| if direction == 0: | |
| # Random number | |
| new_index = random.randint(0, len(data) - 1) | |
| elif direction == 10: | |
| # Next | |
| new_index = current_index | |
| else: | |
| new_index = current_index + direction | |
| # Ensure the new index is within bounds | |
| new_index = max(0, min(new_index, len(data) - 1)) | |
| output_text = data[int(new_index)] | |
| return new_index, output_text | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Navigate through the contents of different files") | |
| output_text = gr.Textbox(label="File Content", value=data[1], show_copy_button=True) | |
| btn_previous = gr.Button(value="Previous") | |
| btn_next = gr.Button(value="Next") | |
| btn_random = gr.Button(value="Random index") | |
| # Initialize the state | |
| current_index = gr.Number( | |
| 1, | |
| label="Current Index", | |
| visible=True, | |
| ) | |
| direction_constant = gr.Number(10, visible=False) | |
| current_index.change( | |
| update_index, | |
| inputs=[direction_constant, current_index, output_text], | |
| outputs=[current_index, output_text], | |
| ) | |
| # Invisible Number components to pass direction | |
| direction_previous = gr.Number(-1, visible=False) | |
| direction_next = gr.Number(1, visible=False) | |
| random_number = gr.Number(0, label="Random Number", visible=False) | |
| btn_previous.click( | |
| update_index, | |
| inputs=[direction_previous, current_index, output_text], | |
| outputs=[current_index, output_text], | |
| ) | |
| btn_next.click( | |
| update_index, | |
| inputs=[direction_next, current_index, output_text], | |
| outputs=[current_index, output_text], | |
| ) | |
| btn_random.click( | |
| update_index, | |
| inputs=[random_number, current_index, output_text], | |
| outputs=[current_index, output_text], | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(debug=True) | |