EunsuKim commited on
Commit
52c683f
·
verified ·
1 Parent(s): 1a67d0f

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -15
app.py CHANGED
@@ -7,41 +7,54 @@ DATA_DIR = "submissions"
7
  os.makedirs(DATA_DIR, exist_ok=True)
8
 
9
  # Predefined task types
10
- TASK_TYPES = ["math", "Open-Ended", "Custom"]
11
 
12
  # Function to handle task submission
13
  def submit_task(task_type, description, yaml_text):
14
  if not yaml_text.strip():
15
  return "YAML/Text input cannot be empty."
16
 
17
- # Save task data
18
  data = {
19
  "task_type": task_type,
20
  "description": description,
21
  "yaml": yaml_text
22
  }
23
  file_path = os.path.join(DATA_DIR, f"{task_type}_{len(os.listdir(DATA_DIR))}.json")
24
- with open(file_path, "w") as f:
25
- json.dump(data, f)
26
-
27
- return f"Task submitted successfully under type '{task_type}'!"
 
 
 
28
 
29
  # Function to get tasks by type
30
  def get_tasks_by_type(task_type):
31
  tasks = []
32
  for file in os.listdir(DATA_DIR):
33
- with open(os.path.join(DATA_DIR, file), "r") as f:
34
- data = json.load(f)
35
- if data["task_type"] == task_type:
36
- tasks.append(data)
 
 
 
 
 
 
 
 
 
37
  return tasks
38
 
39
  # Function to dynamically add a new task type
40
  def add_new_task_type(new_type):
41
  if new_type and new_type not in TASK_TYPES:
42
  TASK_TYPES.append(new_type)
43
- return gr.Dropdown.update(choices=TASK_TYPES), f"Task type '{new_type}' added successfully!"
44
- return gr.Dropdown.update(choices=TASK_TYPES), "Task type already exists or invalid input."
 
45
 
46
  # Function to switch tabs
47
  def switch_tab(tab_name):
@@ -59,7 +72,7 @@ with gr.Blocks() as app:
59
  task_type_input = gr.Dropdown(
60
  label="Task Type",
61
  choices=TASK_TYPES,
62
- value="math",
63
  interactive=True
64
  )
65
  new_task_input = gr.Textbox(
@@ -111,7 +124,7 @@ with gr.Blocks() as app:
111
  task_type_filter = gr.Dropdown(
112
  label="Filter by Task Type",
113
  choices=TASK_TYPES,
114
- value="math",
115
  interactive=True
116
  )
117
  view_button = gr.Button("View Tasks")
@@ -137,4 +150,4 @@ with gr.Blocks() as app:
137
  outputs=[tabs]
138
  )
139
 
140
- app.launch()
 
7
  os.makedirs(DATA_DIR, exist_ok=True)
8
 
9
  # Predefined task types
10
+ TASK_TYPES = ["Classification", "Regression", "Translation"]
11
 
12
  # Function to handle task submission
13
  def submit_task(task_type, description, yaml_text):
14
  if not yaml_text.strip():
15
  return "YAML/Text input cannot be empty."
16
 
17
+ # Prepare data
18
  data = {
19
  "task_type": task_type,
20
  "description": description,
21
  "yaml": yaml_text
22
  }
23
  file_path = os.path.join(DATA_DIR, f"{task_type}_{len(os.listdir(DATA_DIR))}.json")
24
+
25
+ try:
26
+ with open(file_path, "w") as f:
27
+ json.dump(data, f)
28
+ return f"Task submitted successfully under type '{task_type}'!"
29
+ except Exception as e:
30
+ return f"Error saving task: {e}"
31
 
32
  # Function to get tasks by type
33
  def get_tasks_by_type(task_type):
34
  tasks = []
35
  for file in os.listdir(DATA_DIR):
36
+ # Skip non-JSON files
37
+ if not file.endswith(".json"):
38
+ continue
39
+
40
+ try:
41
+ with open(os.path.join(DATA_DIR, file), "r") as f:
42
+ data = json.load(f)
43
+ # Filter by task type
44
+ if data.get("task_type") == task_type:
45
+ tasks.append(data)
46
+ except (json.JSONDecodeError, KeyError):
47
+ # Skip invalid or corrupted files
48
+ print(f"Skipped invalid file: {file}")
49
  return tasks
50
 
51
  # Function to dynamically add a new task type
52
  def add_new_task_type(new_type):
53
  if new_type and new_type not in TASK_TYPES:
54
  TASK_TYPES.append(new_type)
55
+ # Return the updated choices
56
+ return TASK_TYPES, f"Task type '{new_type}' added successfully!"
57
+ return TASK_TYPES, "Task type already exists or invalid input."
58
 
59
  # Function to switch tabs
60
  def switch_tab(tab_name):
 
72
  task_type_input = gr.Dropdown(
73
  label="Task Type",
74
  choices=TASK_TYPES,
75
+ value="Classification",
76
  interactive=True
77
  )
78
  new_task_input = gr.Textbox(
 
124
  task_type_filter = gr.Dropdown(
125
  label="Filter by Task Type",
126
  choices=TASK_TYPES,
127
+ value="Classification",
128
  interactive=True
129
  )
130
  view_button = gr.Button("View Tasks")
 
150
  outputs=[tabs]
151
  )
152
 
153
+ app.launch()