MK-316 commited on
Commit
8cee5b9
·
verified ·
1 Parent(s): 2f8379a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -12
app.py CHANGED
@@ -4,7 +4,7 @@ import gradio as gr
4
  def group_names(file, members_per_group, fixed_groups_input):
5
  # Read the CSV file
6
  df = pd.read_csv(file.name, encoding='utf-8')
7
-
8
  # Parse fixed groups input
9
  fixed_groups = [group.strip() for group in fixed_groups_input.split(';') if group.strip()]
10
  fixed_groups_df_list = []
@@ -21,7 +21,7 @@ def group_names(file, members_per_group, fixed_groups_input):
21
 
22
  # Shuffle the remaining DataFrame
23
  remaining_df = remaining_df.sample(frac=1).reset_index(drop=True)
24
-
25
  # Adjusting fixed groups to include additional members if they're under the specified group size
26
  for i, group_df in enumerate(fixed_groups_df_list):
27
  while len(group_df) < members_per_group and not remaining_df.empty:
@@ -34,14 +34,17 @@ def group_names(file, members_per_group, fixed_groups_input):
34
  for i in range(0, len(remaining_df), members_per_group):
35
  groups.append(remaining_df[i:i + members_per_group])
36
 
37
- # Creating a new DataFrame for grouped data
38
- grouped_data = []
39
- for i, group in enumerate(groups):
40
- group_name = f'Group {i+1}'
41
- names = ', '.join(group['Names'].tolist())
42
- grouped_data.append({'Group': group_name, 'Members': names})
43
- grouped_df = pd.DataFrame(grouped_data)
 
44
 
 
 
45
  return grouped_df
46
 
47
  def main_interface(file, members_per_group, fixed_groups_input):
@@ -55,11 +58,11 @@ iface = gr.Interface(
55
  fn=main_interface,
56
  inputs=[
57
  gr.File(label="Upload CSV File"),
58
- gr.Number(label="Members per Group", value=4),
59
- gr.Textbox(label="Fixed Groups (separated by semicolon)", placeholder="Name1, Name2; Name3, Name4", value=""),
60
  ],
61
  outputs=[gr.Dataframe(label="Grouped Names"), gr.File(label="Download Grouped Names CSV")],
62
  allow_flagging="never"
63
  )
64
 
65
- iface.launch()
 
4
  def group_names(file, members_per_group, fixed_groups_input):
5
  # Read the CSV file
6
  df = pd.read_csv(file.name, encoding='utf-8')
7
+
8
  # Parse fixed groups input
9
  fixed_groups = [group.strip() for group in fixed_groups_input.split(';') if group.strip()]
10
  fixed_groups_df_list = []
 
21
 
22
  # Shuffle the remaining DataFrame
23
  remaining_df = remaining_df.sample(frac=1).reset_index(drop=True)
24
+
25
  # Adjusting fixed groups to include additional members if they're under the specified group size
26
  for i, group_df in enumerate(fixed_groups_df_list):
27
  while len(group_df) < members_per_group and not remaining_df.empty:
 
34
  for i in range(0, len(remaining_df), members_per_group):
35
  groups.append(remaining_df[i:i + members_per_group])
36
 
37
+ # Determine the maximum group size
38
+ max_group_size = max(len(group) for group in groups)
39
+
40
+ # Creating a new DataFrame for grouped data with separate columns for each member
41
+ grouped_data = {'Group': [f'Group {i+1}' for i in range(len(groups))]}
42
+ # Add columns for each member
43
+ for i in range(max_group_size):
44
+ grouped_data[f'Member{i+1}'] = [group['Names'].tolist()[i] if i < len(group) else "" for group in groups]
45
 
46
+ grouped_df = pd.DataFrame(grouped_data)
47
+
48
  return grouped_df
49
 
50
  def main_interface(file, members_per_group, fixed_groups_input):
 
58
  fn=main_interface,
59
  inputs=[
60
  gr.File(label="Upload CSV File"),
61
+ gr.Number(label="Members per Group", value=5),
62
+ gr.Textbox(label="Fixed Groups (separated by semicolon)", placeholder="Group1Name1, Group1Name2; Group2Name1, Group2Name2", value=""),
63
  ],
64
  outputs=[gr.Dataframe(label="Grouped Names"), gr.File(label="Download Grouped Names CSV")],
65
  allow_flagging="never"
66
  )
67
 
68
+ iface.launch()