drewThomasson commited on
Commit
352611d
·
verified ·
1 Parent(s): ab08f3f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -13
app.py CHANGED
@@ -1,19 +1,39 @@
1
  import gradio as gr
 
2
 
3
- def create_searchable_dropdown():
4
- """
5
- Creates a Gradio interface with a properly working searchable dropdown component
6
- """
7
- # Example languages list - replace with your full list
8
- languages = ["English", "Spanish", "French", "German", "Italian", "Japanese",
9
- "Chinese", "Korean", "Russian", "Arabic", "Hindi", "Portuguese"]
10
-
11
- def filter_languages(search_term):
12
- if not search_term:
13
- return gr.update(choices=languages, value=None)
14
- filtered = [lang for lang in languages if search_term.lower() in lang.lower()]
15
- return gr.update(choices=filtered, value=None if not filtered else filtered[0])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
 
 
17
  with gr.Blocks() as demo:
18
  with gr.Row():
19
  search_input = gr.Textbox(
@@ -28,6 +48,11 @@ def create_searchable_dropdown():
28
  show_label=True,
29
  interactive=True
30
  )
 
 
 
 
 
31
 
32
  # Update dropdown choices when search input changes
33
  search_input.change(
@@ -35,6 +60,13 @@ def create_searchable_dropdown():
35
  inputs=[search_input],
36
  outputs=language_dropdown
37
  )
 
 
 
 
 
 
 
38
 
39
  return demo
40
 
 
1
  import gradio as gr
2
+ from bs4 import BeautifulSoup
3
 
4
+ # Function to parse HTML and create a dictionary
5
+ def parse_html_to_dict(file_path):
6
+ with open(file_path, 'r', encoding='utf-8') as file:
7
+ html_content = file.read()
8
+
9
+ soup = BeautifulSoup(html_content, 'html.parser')
10
+ language_dict = {}
11
+ for p in soup.find_all('p')[1:]:
12
+ parts = p.get_text().split()
13
+ if len(parts) >= 2:
14
+ code = parts[0].strip()
15
+ name = " ".join(parts[1:]).strip()
16
+ language_dict[name] = code
17
+ return language_dict
18
+
19
+ # Load the languages from the HTML file
20
+ file_path = '1100_lan.htm' # Update this with your actual file path
21
+ language_dict = parse_html_to_dict(file_path)
22
+ languages = list(language_dict.keys())
23
+
24
+ # Function to filter languages based on search term
25
+ def filter_languages(search_term):
26
+ if not search_term:
27
+ return gr.update(choices=languages, value=None)
28
+ filtered = [lang for lang in languages if search_term.lower() in lang.lower()]
29
+ return gr.update(choices=filtered, value=None if not filtered else filtered[0])
30
+
31
+ # Function to display the language code
32
+ def get_language_code(selected_language):
33
+ return f"Language Code: {language_dict.get(selected_language, 'Unknown')}"
34
 
35
+ # Gradio interface
36
+ def create_searchable_dropdown():
37
  with gr.Blocks() as demo:
38
  with gr.Row():
39
  search_input = gr.Textbox(
 
48
  show_label=True,
49
  interactive=True
50
  )
51
+ with gr.Row():
52
+ language_code_output = gr.Textbox(
53
+ label="Language Code",
54
+ interactive=False
55
+ )
56
 
57
  # Update dropdown choices when search input changes
58
  search_input.change(
 
60
  inputs=[search_input],
61
  outputs=language_dropdown
62
  )
63
+
64
+ # Display the language code when a language is selected
65
+ language_dropdown.change(
66
+ fn=get_language_code,
67
+ inputs=[language_dropdown],
68
+ outputs=language_code_output
69
+ )
70
 
71
  return demo
72