Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
·
570b23d
1
Parent(s):
a43cb60
fetch user info from HF for stable user id
Browse files- app.py +9 -12
- src/submission/submit.py +13 -0
app.py
CHANGED
@@ -3,7 +3,6 @@ import pandas as pd
|
|
3 |
from apscheduler.schedulers.background import BackgroundScheduler
|
4 |
from gradio_leaderboard import ColumnFilter, Leaderboard, SelectColumns
|
5 |
from gradio.themes import Base, colors, sizes
|
6 |
-
from huggingface_hub import whoami
|
7 |
|
8 |
from src.about import CITATION_BUTTON_LABEL, CITATION_BUTTON_TEXT, EVALUATION_QUEUE_TEXT, INTRODUCTION_TEXT, TITLE
|
9 |
from src.datamodel.data import F1Data
|
@@ -13,7 +12,7 @@ from src.display.utils import AutoEvalColumn, ModelType, fields
|
|
13 |
from src.envs import API, CODE_PROBLEMS_REPO, REPO_ID, RESULTS_REPO, SUBMISSIONS_REPO
|
14 |
from src.logger import get_logger
|
15 |
from src.populate import get_leaderboard_df
|
16 |
-
from src.submission.submit import add_new_solutions,
|
17 |
from src.validation.validate import MAX_INPUT_LENGTH, MIN_INPUT_LENGTH, is_submission_file_valid, is_valid
|
18 |
|
19 |
logger = get_logger(__name__)
|
@@ -97,25 +96,23 @@ def add_solution_cbk(
|
|
97 |
logger.info(f"Display name: {display_name}")
|
98 |
|
99 |
# Stable account id
|
100 |
-
|
101 |
-
logger.info(
|
102 |
-
stable_id =
|
103 |
logger.info(f"User stable ID: {stable_id}")
|
104 |
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
|
109 |
-
# NOTE: stable_id is sometimes None (expired Token?) so we opt to use username.
|
110 |
-
# TODO: extract stable_id robustly, if possible.
|
111 |
if not profile.username:
|
112 |
return styled_error("Could not retrieve username. Please try signing in again.")
|
113 |
# We rely on underscores as separators in submission ID, replace it with "-".
|
114 |
-
user_id = profile.username.replace("_", "-")
|
115 |
|
116 |
try:
|
117 |
# Validating the submission file.
|
118 |
-
if
|
119 |
return styled_error("Please upload JSONL submission file.")
|
120 |
|
121 |
if not is_submission_file_valid(
|
|
|
3 |
from apscheduler.schedulers.background import BackgroundScheduler
|
4 |
from gradio_leaderboard import ColumnFilter, Leaderboard, SelectColumns
|
5 |
from gradio.themes import Base, colors, sizes
|
|
|
6 |
|
7 |
from src.about import CITATION_BUTTON_LABEL, CITATION_BUTTON_TEXT, EVALUATION_QUEUE_TEXT, INTRODUCTION_TEXT, TITLE
|
8 |
from src.datamodel.data import F1Data
|
|
|
12 |
from src.envs import API, CODE_PROBLEMS_REPO, REPO_ID, RESULTS_REPO, SUBMISSIONS_REPO
|
13 |
from src.logger import get_logger
|
14 |
from src.populate import get_leaderboard_df
|
15 |
+
from src.submission.submit import add_new_solutions, fetch_user_info
|
16 |
from src.validation.validate import MAX_INPUT_LENGTH, MIN_INPUT_LENGTH, is_submission_file_valid, is_valid
|
17 |
|
18 |
logger = get_logger(__name__)
|
|
|
96 |
logger.info(f"Display name: {display_name}")
|
97 |
|
98 |
# Stable account id
|
99 |
+
user_info = fetch_user_info(token)
|
100 |
+
logger.info("Logged in user info: %s", user_info)
|
101 |
+
stable_id = user_info.get("id")
|
102 |
logger.info(f"User stable ID: {stable_id}")
|
103 |
|
104 |
+
if not stable_id:
|
105 |
+
return styled_error("Could not retrieve your stable user ID. Please try signing in again.")
|
106 |
+
user_id = stable_id
|
107 |
|
|
|
|
|
108 |
if not profile.username:
|
109 |
return styled_error("Could not retrieve username. Please try signing in again.")
|
110 |
# We rely on underscores as separators in submission ID, replace it with "-".
|
111 |
+
# user_id = profile.username.replace("_", "-")
|
112 |
|
113 |
try:
|
114 |
# Validating the submission file.
|
115 |
+
if not submission_path:
|
116 |
return styled_error("Please upload JSONL submission file.")
|
117 |
|
118 |
if not is_submission_file_valid(
|
src/submission/submit.py
CHANGED
@@ -157,6 +157,19 @@ def fetch_sub_claim(oauth_token: gr.OAuthToken | None) -> dict | None:
|
|
157 |
return None
|
158 |
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
def _validate_all_submissions_present(
|
161 |
lbdb: F1Data,
|
162 |
pd_ds: pd.DataFrame,
|
|
|
157 |
return None
|
158 |
|
159 |
|
160 |
+
def fetch_user_info(oauth_token: gr.OAuthToken | None) -> dict | None:
|
161 |
+
if oauth_token is None:
|
162 |
+
return None
|
163 |
+
try:
|
164 |
+
headers = {"Authorization": f"Bearer {oauth_token.token}"}
|
165 |
+
r = requests.get("https://huggingface.co/api/whoami-v2", headers=headers)
|
166 |
+
if r.status_code != 200:
|
167 |
+
return None
|
168 |
+
return r.json()
|
169 |
+
except:
|
170 |
+
logger.exception("Cannot get user info")
|
171 |
+
return None
|
172 |
+
|
173 |
def _validate_all_submissions_present(
|
174 |
lbdb: F1Data,
|
175 |
pd_ds: pd.DataFrame,
|