Spaces:
Running
Running
Added better validation of link to the model
Browse filesBecause if link is without host (e.g. only "http://"), the JS of the
svelte will crash with unexpected exception.
app.py
CHANGED
@@ -15,7 +15,7 @@ from content import (
|
|
15 |
MORE_DETAILS_MARKDOWN,
|
16 |
ABOUT_MARKDOWN,
|
17 |
)
|
18 |
-
from server import LeaderboardServer, xmlAndMarkdownEscape, xmlQuoteAttr, api
|
19 |
|
20 |
HF_SPACE_TOKEN = os.environ["HF_SPACE_TOKEN"]
|
21 |
HF_SPACE_ID = os.environ["HF_SPACE_ID"]
|
@@ -44,15 +44,33 @@ SUBMISSION_INPUTS = dict.fromkeys((
|
|
44 |
def on_submit_pressed():
|
45 |
return gr.update(value='Processing submission…', interactive=False)
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
def validate_submission_inputs(**inputs):
|
48 |
if any(key for key, value in inputs.items() if key != "description" and value in (None, "")):
|
49 |
raise ValueError('Please fill in all fields (only the description field is optional)')
|
|
|
50 |
if not os.path.exists(inputs["submission_file"]):
|
51 |
raise ValueError('File does not exist')
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
54 |
if not inputs["parameters"] > 0:
|
55 |
raise ValueError('Attribute `Parameters (B)` should be greater than zero')
|
|
|
56 |
if not (inputs["input_length"] > 0 and inputs["input_length"] == int(inputs["input_length"])):
|
57 |
raise ValueError('Attribute `Input length (# tokens)` should be greater than zero and integer type')
|
58 |
|
|
|
15 |
MORE_DETAILS_MARKDOWN,
|
16 |
ABOUT_MARKDOWN,
|
17 |
)
|
18 |
+
from server import LeaderboardServer, xmlAndMarkdownEscape, xmlQuoteAttr, api, requests
|
19 |
|
20 |
HF_SPACE_TOKEN = os.environ["HF_SPACE_TOKEN"]
|
21 |
HF_SPACE_ID = os.environ["HF_SPACE_ID"]
|
|
|
44 |
def on_submit_pressed():
|
45 |
return gr.update(value='Processing submission…', interactive=False)
|
46 |
|
47 |
+
def validate_url(url):
|
48 |
+
try:
|
49 |
+
response = requests.get(url, timeout=5)
|
50 |
+
except requests.exceptions.ConnectTimeout:
|
51 |
+
pass
|
52 |
+
except requests.exceptions.ConnectionError as e:
|
53 |
+
return str(e).rsplit(":", 1)[-1].strip()
|
54 |
+
except Exception as e:
|
55 |
+
return str(e)
|
56 |
+
else:
|
57 |
+
if response.status_code != 200:
|
58 |
+
return f'Failed to get <{url}>. Status code: {response.status_code}'
|
59 |
+
|
60 |
def validate_submission_inputs(**inputs):
|
61 |
if any(key for key, value in inputs.items() if key != "description" and value in (None, "")):
|
62 |
raise ValueError('Please fill in all fields (only the description field is optional)')
|
63 |
+
|
64 |
if not os.path.exists(inputs["submission_file"]):
|
65 |
raise ValueError('File does not exist')
|
66 |
+
|
67 |
+
error_msg = validate_url(inputs["link_to_model"])
|
68 |
+
if error_msg:
|
69 |
+
raise ValueError(f'Link to the model is not valid: {error_msg}')
|
70 |
+
|
71 |
if not inputs["parameters"] > 0:
|
72 |
raise ValueError('Attribute `Parameters (B)` should be greater than zero')
|
73 |
+
|
74 |
if not (inputs["input_length"] > 0 and inputs["input_length"] == int(inputs["input_length"])):
|
75 |
raise ValueError('Attribute `Input length (# tokens)` should be greater than zero and integer type')
|
76 |
|