add redirect to different proxy
Browse files- __pycache__/extract.cpython-311.pyc +0 -0
- __pycache__/test_extract.cpython-311-pytest-7.4.2.pyc +0 -0
- app.py +3 -1
- extract.py +12 -3
- test_extract.py +18 -5
__pycache__/extract.cpython-311.pyc
CHANGED
|
Binary files a/__pycache__/extract.cpython-311.pyc and b/__pycache__/extract.cpython-311.pyc differ
|
|
|
__pycache__/test_extract.cpython-311-pytest-7.4.2.pyc
CHANGED
|
Binary files a/__pycache__/test_extract.cpython-311-pytest-7.4.2.pyc and b/__pycache__/test_extract.cpython-311-pytest-7.4.2.pyc differ
|
|
|
app.py
CHANGED
|
@@ -33,9 +33,11 @@ url = f'https://{space}.hf.space'
|
|
| 33 |
|
| 34 |
def run(hf_token, service, game, functionality, nlp_command):
|
| 35 |
# reuse hf_token field as json string
|
| 36 |
-
token, user_name, _ = extract(hf_token)
|
| 37 |
if user_name is None:
|
| 38 |
user_name = '__fake__'
|
|
|
|
|
|
|
| 39 |
|
| 40 |
if token is None or token == '':
|
| 41 |
return 'please specify hf token'
|
|
|
|
| 33 |
|
| 34 |
def run(hf_token, service, game, functionality, nlp_command):
|
| 35 |
# reuse hf_token field as json string
|
| 36 |
+
token, user_name, redirect, _ = extract(hf_token)
|
| 37 |
if user_name is None:
|
| 38 |
user_name = '__fake__'
|
| 39 |
+
if redirect is not None:
|
| 40 |
+
space = redirect
|
| 41 |
|
| 42 |
if token is None or token == '':
|
| 43 |
return 'please specify hf token'
|
extract.py
CHANGED
|
@@ -1,11 +1,15 @@
|
|
| 1 |
import json
|
| 2 |
|
| 3 |
def extract(hf_token):
|
| 4 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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']
|
|
@@ -17,4 +21,9 @@ def extract(hf_token):
|
|
| 17 |
except KeyError:
|
| 18 |
user = None
|
| 19 |
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import json
|
| 2 |
|
| 3 |
def extract(hf_token):
|
| 4 |
+
"""
|
| 5 |
+
Extract token, user, redirect, and info from input hf_token.
|
| 6 |
+
If hf_token is simple, it is the token itself.
|
| 7 |
+
"""
|
| 8 |
+
info = {} # a copy of hf_token in json format
|
| 9 |
try:
|
| 10 |
info = json.loads(hf_token)
|
| 11 |
except json.decoder.JSONDecodeError:
|
| 12 |
+
return hf_token, None, None, None
|
| 13 |
|
| 14 |
try:
|
| 15 |
token = info['token']
|
|
|
|
| 21 |
except KeyError:
|
| 22 |
user = None
|
| 23 |
|
| 24 |
+
try:
|
| 25 |
+
redirect = info['redirect']
|
| 26 |
+
except KeyError:
|
| 27 |
+
redirect = None
|
| 28 |
+
|
| 29 |
+
return token, user, redirect, info
|
test_extract.py
CHANGED
|
@@ -5,40 +5,53 @@ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
def test_pure_string():
|
| 7 |
inp = 'abc'
|
| 8 |
+
token, user, redirect, info = extract(inp)
|
| 9 |
assert token == inp
|
| 10 |
assert user is None
|
| 11 |
+
assert redirect is None
|
| 12 |
assert info is None
|
| 13 |
|
| 14 |
def test_json_format_01():
|
| 15 |
inp_s = '{"a":"b"}'
|
| 16 |
+
token, user, redirect, info = extract(inp_s)
|
| 17 |
inp = json.loads(inp_s)
|
| 18 |
assert token == None
|
| 19 |
assert user == None
|
| 20 |
+
assert redirect is None
|
| 21 |
assert info == inp
|
| 22 |
|
| 23 |
def test_json_format_02():
|
| 24 |
inp_s = '{"token":"b"}'
|
| 25 |
+
token, user, redirect, info = extract(inp_s)
|
| 26 |
inp = json.loads(inp_s)
|
| 27 |
assert token == inp['token']
|
| 28 |
assert user == None
|
| 29 |
+
assert redirect is None
|
| 30 |
assert info == inp
|
| 31 |
|
| 32 |
def test_json_format_03():
|
| 33 |
inp_s = '{"user":"xb"}'
|
| 34 |
+
token, user, redirect, info = extract(inp_s)
|
| 35 |
inp = json.loads(inp_s)
|
| 36 |
assert token == None
|
| 37 |
assert user == inp['user']
|
| 38 |
+
assert redirect is None
|
| 39 |
assert info == inp
|
| 40 |
|
| 41 |
def test_json_format_04():
|
| 42 |
inp_s = '{"user":"t1", "token":"t2"}'
|
| 43 |
+
token, user, redirect, info = extract(inp_s)
|
| 44 |
inp = json.loads(inp_s)
|
| 45 |
assert token == inp['token']
|
| 46 |
assert user == inp['user']
|
| 47 |
+
assert redirect is None
|
| 48 |
assert info == inp
|
| 49 |
|
| 50 |
+
def test_json_format_05():
|
| 51 |
+
inp_s = '{"user":"t1", "token":"t2", "redirect":"xx"}'
|
| 52 |
+
token, user, redirect, info = extract(inp_s)
|
| 53 |
+
inp = json.loads(inp_s)
|
| 54 |
+
assert token == inp['token']
|
| 55 |
+
assert user == inp['user']
|
| 56 |
+
assert redirect == inp['redirect']
|
| 57 |
+
assert info == inp
|