lewtun HF staff commited on
Commit
30c6c6d
β€’
1 Parent(s): 55a3478

Validate submission name

Browse files
Files changed (1) hide show
  1. app.py +25 -7
app.py CHANGED
@@ -7,7 +7,7 @@ from pathlib import Path
7
  import jsonlines
8
  import streamlit as st
9
  from dotenv import load_dotenv
10
- from huggingface_hub import HfApi, Repository
11
 
12
  from utils import http_post, validate_json
13
 
@@ -50,6 +50,20 @@ def generate_dataset_card(submission_name):
50
  f.write(markdown)
51
 
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  ###########
54
  ### APP ###
55
  ###########
@@ -81,12 +95,16 @@ with st.form(key="form"):
81
  if uploaded_file:
82
  data = str(uploaded_file.read(), "utf-8")
83
  json_data = json.loads(data)
84
- is_valid, message = validate_json(json_data)
85
- if is_valid:
86
- st.success(message)
87
- else:
88
- st.error(message)
89
  submission_errors += 1
 
 
 
 
 
 
 
90
 
91
  with st.expander("Submission format"):
92
  st.markdown(
@@ -208,6 +226,6 @@ if submit_button and submission_errors == 0:
208
  "πŸ™ˆ Oh noes, there was an error submitting your submission! Please [contact the organisers](mailto:[email protected])"
209
  )
210
 
211
- # Flush local repos
212
  shutil.rmtree(LOCAL_REPO, ignore_errors=True)
213
  shutil.rmtree(LOGS_REPO, ignore_errors=True)
 
7
  import jsonlines
8
  import streamlit as st
9
  from dotenv import load_dotenv
10
+ from huggingface_hub import HfApi, Repository, hf_hub_url, cached_download
11
 
12
  from utils import http_post, validate_json
13
 
 
50
  f.write(markdown)
51
 
52
 
53
+ def load_json(path):
54
+ with open(path, "r") as f:
55
+ return json.load(f)
56
+
57
+
58
+ # The GEM frontend requires the submission names to be unique, so here we
59
+ # download all submission names and use them as a check against the user
60
+ # submissions
61
+ scores_url = hf_hub_url("GEM-submissions/submission-scores", "scores.json", repo_type="dataset")
62
+ scores_filepath = cached_download(scores_url)
63
+ scores_data = load_json(scores_filepath)
64
+ submission_names = [score["submission_name"] for score in scores_data]
65
+
66
+
67
  ###########
68
  ### APP ###
69
  ###########
 
95
  if uploaded_file:
96
  data = str(uploaded_file.read(), "utf-8")
97
  json_data = json.loads(data)
98
+ if json_data["submission_name"] in submission_names:
99
+ st.error("πŸ™ˆ Submission name is already taken. Please rename your submission")
 
 
 
100
  submission_errors += 1
101
+ else:
102
+ is_valid, message = validate_json(json_data)
103
+ if is_valid:
104
+ st.success(message)
105
+ else:
106
+ st.error(message)
107
+ submission_errors += 1
108
 
109
  with st.expander("Submission format"):
110
  st.markdown(
 
226
  "πŸ™ˆ Oh noes, there was an error submitting your submission! Please [contact the organisers](mailto:[email protected])"
227
  )
228
 
229
+ # # Flush local repos
230
  shutil.rmtree(LOCAL_REPO, ignore_errors=True)
231
  shutil.rmtree(LOGS_REPO, ignore_errors=True)