repurpose hf_token
Browse files- __pycache__/extract.cpython-311.pyc +0 -0
- __pycache__/test_extract.cpython-311-pytest-7.4.2.pyc +0 -0
- app.py +4 -9
- extract.py +20 -0
- test_extract.py +44 -0
__pycache__/extract.cpython-311.pyc
ADDED
|
Binary file (844 Bytes). View file
|
|
|
__pycache__/test_extract.cpython-311-pytest-7.4.2.pyc
ADDED
|
Binary file (11 kB). View file
|
|
|
app.py
CHANGED
|
@@ -4,6 +4,7 @@ from datetime import datetime
|
|
| 4 |
|
| 5 |
import gradio as gr
|
| 6 |
from gradio_client import Client
|
|
|
|
| 7 |
|
| 8 |
functionality_shared = [
|
| 9 |
'games',
|
|
@@ -30,19 +31,13 @@ space = 'stevez-bbc123'
|
|
| 30 |
# url = f'https://{space}.hf.space/api/predict'
|
| 31 |
url = f'https://{space}.hf.space'
|
| 32 |
|
| 33 |
-
def extract(hf_token):
|
| 34 |
-
token = None
|
| 35 |
-
try:
|
| 36 |
-
info = json.loads(hf_token)
|
| 37 |
-
token = info['token']
|
| 38 |
-
except:
|
| 39 |
-
token = hf_token
|
| 40 |
-
print(f't = {token[:5]}')
|
| 41 |
-
|
| 42 |
def run(hf_token, service, game, functionality, nlp_command):
|
| 43 |
if hf_token is None or hf_token == '':
|
| 44 |
return 'please specify hf token'
|
| 45 |
|
|
|
|
|
|
|
|
|
|
| 46 |
if service not in functionality_shared[1:]:
|
| 47 |
if game is None:
|
| 48 |
return "please specify which game"
|
|
|
|
| 4 |
|
| 5 |
import gradio as gr
|
| 6 |
from gradio_client import Client
|
| 7 |
+
from extract import extract
|
| 8 |
|
| 9 |
functionality_shared = [
|
| 10 |
'games',
|
|
|
|
| 31 |
# url = f'https://{space}.hf.space/api/predict'
|
| 32 |
url = f'https://{space}.hf.space'
|
| 33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
def run(hf_token, service, game, functionality, nlp_command):
|
| 35 |
if hf_token is None or hf_token == '':
|
| 36 |
return 'please specify hf token'
|
| 37 |
|
| 38 |
+
# reuse hf_token field as json string
|
| 39 |
+
token, user_name, _ = extract(hf_token)
|
| 40 |
+
|
| 41 |
if service not in functionality_shared[1:]:
|
| 42 |
if game is None:
|
| 43 |
return "please specify which game"
|
extract.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json
|
| 2 |
+
|
| 3 |
+
def extract(hf_token):
|
| 4 |
+
info = {}
|
| 5 |
+
try:
|
| 6 |
+
info = json.loads(hf_token)
|
| 7 |
+
except json.decoder.JSONDecodeError:
|
| 8 |
+
return hf_token, None, None
|
| 9 |
+
|
| 10 |
+
try:
|
| 11 |
+
token = info['token']
|
| 12 |
+
except KeyError:
|
| 13 |
+
token = None
|
| 14 |
+
|
| 15 |
+
try:
|
| 16 |
+
user = info['user']
|
| 17 |
+
except KeyError:
|
| 18 |
+
user = None
|
| 19 |
+
|
| 20 |
+
return token, user, info
|
test_extract.py
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pytest
|
| 2 |
+
import json
|
| 3 |
+
|
| 4 |
+
from extract import extract
|
| 5 |
+
|
| 6 |
+
def test_pure_string():
|
| 7 |
+
inp = 'abc'
|
| 8 |
+
token, user, info = extract(inp)
|
| 9 |
+
assert token == inp
|
| 10 |
+
assert user is None
|
| 11 |
+
assert info is None
|
| 12 |
+
|
| 13 |
+
def test_json_format_01():
|
| 14 |
+
inp_s = '{"a":"b"}'
|
| 15 |
+
token, user, info = extract(inp_s)
|
| 16 |
+
inp = json.loads(inp_s)
|
| 17 |
+
assert token == None
|
| 18 |
+
assert user == None
|
| 19 |
+
assert info == inp
|
| 20 |
+
|
| 21 |
+
def test_json_format_02():
|
| 22 |
+
inp_s = '{"token":"b"}'
|
| 23 |
+
token, user, info = extract(inp_s)
|
| 24 |
+
inp = json.loads(inp_s)
|
| 25 |
+
assert token == inp['token']
|
| 26 |
+
assert user == None
|
| 27 |
+
assert info == inp
|
| 28 |
+
|
| 29 |
+
def test_json_format_03():
|
| 30 |
+
inp_s = '{"user":"xb"}'
|
| 31 |
+
token, user, info = extract(inp_s)
|
| 32 |
+
inp = json.loads(inp_s)
|
| 33 |
+
assert token == None
|
| 34 |
+
assert user == inp['user']
|
| 35 |
+
assert info == inp
|
| 36 |
+
|
| 37 |
+
def test_json_format_04():
|
| 38 |
+
inp_s = '{"user":"t1", "token":"t2"}'
|
| 39 |
+
token, user, info = extract(inp_s)
|
| 40 |
+
inp = json.loads(inp_s)
|
| 41 |
+
assert token == inp['token']
|
| 42 |
+
assert user == inp['user']
|
| 43 |
+
assert info == inp
|
| 44 |
+
|