Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -47,6 +47,9 @@ def match_alunos(tarefas_csv_path, alunos_csv_path, contador_csv_path):
|
|
47 |
print(f"Arquivo {tarefas_csv_path} ou {alunos_csv_path} está vazio. Pulando...")
|
48 |
return
|
49 |
|
|
|
|
|
|
|
50 |
tarefas_df.columns = tarefas_df.columns.str.strip()
|
51 |
alunos_df.columns = alunos_df.columns.str.strip()
|
52 |
|
@@ -73,11 +76,23 @@ def match_alunos(tarefas_csv_path, alunos_csv_path, contador_csv_path):
|
|
73 |
|
74 |
alunos_df['Aluno_Pattern'] = alunos_df.apply(lambda row: generate_aluno_pattern(row['RA'], row['Dig. RA']), axis=1)
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
tarefas_df['Aluno_Pattern'] = tarefas_df['Aluno'].apply(extract_aluno_pattern)
|
77 |
tarefas_df['Duração'] = tarefas_df['Duração'].apply(parse_duration)
|
78 |
|
|
|
|
|
79 |
matched_alunos = alunos_df[alunos_df['Aluno_Pattern'].isin(tarefas_df['Aluno_Pattern'])]
|
80 |
|
|
|
|
|
81 |
result_df = matched_alunos[['Nome do Aluno']].drop_duplicates()
|
82 |
|
83 |
for aluno in result_df['Nome do Aluno']:
|
@@ -94,6 +109,8 @@ def match_alunos(tarefas_csv_path, alunos_csv_path, contador_csv_path):
|
|
94 |
else:
|
95 |
contador_df = pd.concat([contador_df, pd.DataFrame({'Nome do Aluno': [aluno], 'Tarefas Completadas': [1], 'Acertos Absolutos': [nota_total], 'Total Tempo': [str(tempo_total)]})], ignore_index=True)
|
96 |
|
|
|
|
|
97 |
contador_df.to_csv(contador_csv_path, index=False)
|
98 |
|
99 |
return result_df
|
@@ -148,6 +165,7 @@ def process_inputs(html_file, tarefa_files):
|
|
148 |
def download_html_file(file_path):
|
149 |
return file_path
|
150 |
|
|
|
151 |
# --- Interface Gradio ---
|
152 |
|
153 |
with gr.Blocks() as interface:
|
@@ -165,3 +183,4 @@ with gr.Blocks() as interface:
|
|
165 |
generate_btn.click(fn=process_and_prepare_download, inputs=[html_file, excel_files], outputs=[output_html, download_btn])
|
166 |
|
167 |
interface.launch()
|
|
|
|
47 |
print(f"Arquivo {tarefas_csv_path} ou {alunos_csv_path} está vazio. Pulando...")
|
48 |
return
|
49 |
|
50 |
+
print(f"Tarefas DataFrame (antes da normalização):\n{tarefas_df.head()}")
|
51 |
+
print(f"Alunos DataFrame (antes da normalização):\n{alunos_df.head()}")
|
52 |
+
|
53 |
tarefas_df.columns = tarefas_df.columns.str.strip()
|
54 |
alunos_df.columns = alunos_df.columns.str.strip()
|
55 |
|
|
|
76 |
|
77 |
alunos_df['Aluno_Pattern'] = alunos_df.apply(lambda row: generate_aluno_pattern(row['RA'], row['Dig. RA']), axis=1)
|
78 |
|
79 |
+
print(f"Alunos DataFrame (com padrão):\n{alunos_df.head()}")
|
80 |
+
|
81 |
+
def extract_aluno_pattern(nome):
|
82 |
+
if isinstance(nome, str):
|
83 |
+
match = re.search(r'\d+.*', nome.lower())
|
84 |
+
return match.group(0) if match else None
|
85 |
+
return None
|
86 |
+
|
87 |
tarefas_df['Aluno_Pattern'] = tarefas_df['Aluno'].apply(extract_aluno_pattern)
|
88 |
tarefas_df['Duração'] = tarefas_df['Duração'].apply(parse_duration)
|
89 |
|
90 |
+
print(f"Tarefas DataFrame (com padrão):\n{tarefas_df.head()}")
|
91 |
+
|
92 |
matched_alunos = alunos_df[alunos_df['Aluno_Pattern'].isin(tarefas_df['Aluno_Pattern'])]
|
93 |
|
94 |
+
print(f"Matched Alunos DataFrame:\n{matched_alunos.head()}")
|
95 |
+
|
96 |
result_df = matched_alunos[['Nome do Aluno']].drop_duplicates()
|
97 |
|
98 |
for aluno in result_df['Nome do Aluno']:
|
|
|
109 |
else:
|
110 |
contador_df = pd.concat([contador_df, pd.DataFrame({'Nome do Aluno': [aluno], 'Tarefas Completadas': [1], 'Acertos Absolutos': [nota_total], 'Total Tempo': [str(tempo_total)]})], ignore_index=True)
|
111 |
|
112 |
+
print(f"Contador DataFrame (atualizado):\n{contador_df.head()}")
|
113 |
+
|
114 |
contador_df.to_csv(contador_csv_path, index=False)
|
115 |
|
116 |
return result_df
|
|
|
165 |
def download_html_file(file_path):
|
166 |
return file_path
|
167 |
|
168 |
+
|
169 |
# --- Interface Gradio ---
|
170 |
|
171 |
with gr.Blocks() as interface:
|
|
|
183 |
generate_btn.click(fn=process_and_prepare_download, inputs=[html_file, excel_files], outputs=[output_html, download_btn])
|
184 |
|
185 |
interface.launch()
|
186 |
+
|