Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,4 @@
|
|
1 |
# app.py
|
2 |
-
|
3 |
-
# app.py (add this at the very top)
|
4 |
-
|
5 |
import subprocess
|
6 |
import sys
|
7 |
import os
|
@@ -163,39 +160,49 @@ def download_test_set() -> Tuple[str, str]:
|
|
163 |
return None, error_msg
|
164 |
|
165 |
def validate_submission(file, model_name: str, author: str, description: str) -> Tuple[str, Optional[pd.DataFrame]]:
|
166 |
-
"""Validate uploaded prediction file."""
|
167 |
-
|
168 |
try:
|
169 |
if file is None:
|
170 |
return "β Please upload a predictions file", None
|
171 |
-
|
172 |
if not model_name.strip():
|
173 |
return "β Please provide a model name", None
|
174 |
-
|
175 |
-
# Read
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
global complete_test_set
|
181 |
if complete_test_set is None:
|
182 |
complete_test_set = get_complete_test_set()
|
183 |
-
|
184 |
-
#
|
185 |
validation_result = validate_submission_complete(
|
186 |
file_content, filename, complete_test_set, model_name
|
187 |
)
|
188 |
-
|
189 |
-
if validation_result[
|
190 |
-
|
191 |
-
return validation_result['report'], validation_result['predictions']
|
192 |
else:
|
193 |
-
return validation_result[
|
194 |
-
|
195 |
except Exception as e:
|
196 |
-
error_msg =
|
|
|
|
|
|
|
197 |
return error_msg, None
|
198 |
|
|
|
199 |
def evaluate_submission(
|
200 |
predictions_df: pd.DataFrame,
|
201 |
model_name: str,
|
|
|
1 |
# app.py
|
|
|
|
|
|
|
2 |
import subprocess
|
3 |
import sys
|
4 |
import os
|
|
|
160 |
return None, error_msg
|
161 |
|
162 |
def validate_submission(file, model_name: str, author: str, description: str) -> Tuple[str, Optional[pd.DataFrame]]:
|
163 |
+
"""Validate uploaded prediction file, handling both file-like and NamedString inputs."""
|
|
|
164 |
try:
|
165 |
if file is None:
|
166 |
return "β Please upload a predictions file", None
|
|
|
167 |
if not model_name.strip():
|
168 |
return "β Please provide a model name", None
|
169 |
+
|
170 |
+
# Read raw bytes from the upload
|
171 |
+
try:
|
172 |
+
file_content = file.read()
|
173 |
+
except AttributeError:
|
174 |
+
# Fallback for Gradio NamedString
|
175 |
+
data = getattr(file, "data", None) or getattr(file, "value", None)
|
176 |
+
if data is None:
|
177 |
+
return "β Could not read uploaded file", None
|
178 |
+
file_content = data.encode("utf-8") if isinstance(data, str) else data
|
179 |
+
|
180 |
+
# Determine filename
|
181 |
+
filename = getattr(file, "name", None) or getattr(file, "filename", None) or "uploaded_file"
|
182 |
+
|
183 |
+
# Load complete test set
|
184 |
global complete_test_set
|
185 |
if complete_test_set is None:
|
186 |
complete_test_set = get_complete_test_set()
|
187 |
+
|
188 |
+
# Run validation
|
189 |
validation_result = validate_submission_complete(
|
190 |
file_content, filename, complete_test_set, model_name
|
191 |
)
|
192 |
+
|
193 |
+
if validation_result["valid"]:
|
194 |
+
return validation_result["report"], validation_result["predictions"]
|
|
|
195 |
else:
|
196 |
+
return validation_result["report"], None
|
197 |
+
|
198 |
except Exception as e:
|
199 |
+
error_msg = (
|
200 |
+
f"β Validation error: {str(e)}\n\nTraceback:\n"
|
201 |
+
+ traceback.format_exc()
|
202 |
+
)
|
203 |
return error_msg, None
|
204 |
|
205 |
+
|
206 |
def evaluate_submission(
|
207 |
predictions_df: pd.DataFrame,
|
208 |
model_name: str,
|