kreemyyyy commited on
Commit
cdf2807
·
verified ·
1 Parent(s): 0248945

Create main.py

Browse files
Files changed (1) hide show
  1. main.py +48 -0
main.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import gradio as gr
3
+
4
+ def convert_schedule(file, direction):
5
+ # Read the uploaded Excel file; use the first column as index
6
+ df = pd.read_excel(file.name if hasattr(file, 'name') else file, index_col=0)
7
+
8
+ if direction == "A to B":
9
+ # A->B: models in rows, texters in cells -> texters as rows, models as cell values
10
+ df_reset = df.reset_index()
11
+ model_col = df_reset.columns[0]
12
+ df_melt = df_reset.melt(id_vars=[model_col], var_name='Header', value_name='Texter')
13
+ df_melt = df_melt.dropna(subset=['Texter'])
14
+ df_pivot = df_melt.pivot(index='Texter', columns='Header', values=model_col)
15
+ df_pivot = df_pivot.reindex(columns=df.columns).fillna("")
16
+ result = df_pivot
17
+ else:
18
+ # B->A: texters in rows, models in cells -> models as rows, texters as cell values
19
+ df_reset = df.reset_index()
20
+ texter_col = df_reset.columns[0]
21
+ df_melt = df_reset.melt(id_vars=[texter_col], var_name='Header', value_name='Model')
22
+ df_melt = df_melt.dropna(subset=['Model'])
23
+ df_pivot = df_melt.pivot(index='Model', columns='Header', values=texter_col)
24
+ df_pivot = df_pivot.reindex(columns=df.columns).fillna("")
25
+ result = df_pivot
26
+
27
+ # Save to Excel for download
28
+ out_file = "converted_schedule.xlsx"
29
+ result.to_excel(out_file)
30
+ return result, out_file
31
+
32
+ # Build Gradio interface
33
+ iface = gr.Interface(
34
+ fn=convert_schedule,
35
+ inputs=[
36
+ gr.File(label="Upload Schedule Excel (Format A or B)"),
37
+ gr.Radio(["A to B", "B to A"], label="Conversion Direction")
38
+ ],
39
+ outputs=[
40
+ gr.Dataframe(label="Converted Schedule"),
41
+ gr.File(label="Download Converted Excel")
42
+ ],
43
+ title="Schedule Format Converter",
44
+ description="Dynamically convert between two schedule formats: models-as-rows ↔ texters-as-rows."
45
+ )
46
+
47
+ if __name__ == "__main__":
48
+ iface.launch()