File size: 3,147 Bytes
2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c 13e2d3f 2ed2b2c f0e5025 2ed2b2c 13e2d3f 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c f0e5025 2ed2b2c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#import required modules
import os
from huggingface_hub import create_branch, delete_branch, login, get_token, whoami
#set clear screen function
def clear_screen():
os.system('cls' if os.name == 'nt' else 'clear')
#clear screen before starting
clear_screen()
#get user variables
while True:
cord = input("What would you like to do? (create) (delete): ").lower()
if cord not in ['create', 'delete']:
clear_screen()
print("Please choose one of the following two options.")
continue
break
clear_screen()
repo = input("Repository name (User/Repo): ")
clear_screen()
while True:
r_type = input("Repo type (model) (dataset) (space): ").lower()
if r_type not in ['model', 'dataset', 'space']:
clear_screen()
print("Please choose one of the following three options.")
continue
break
clear_screen()
branch = input("Branch name (No spaces): ")
clear_screen()
#get token
if 'None' in str(get_token()):
#if the token is not found then prompt user to provide it:
hf_token = input("API token not detected. Enter your HuggingFace (WRITE) token: ")
tfound = "false"
else:
#if the token is found then write it to hf_token:
hf_token = get_token()
tfound = "Where are my doritos?"
#login
login(hf_token)
#if the token is read only then prompt user to provide a write token:
while True:
if whoami().get('auth', {}).get('accessToken', {}).get('role', None) != 'write':
clear_screen()
print("You do not have write access to this repository. Please use a valid token with (WRITE) access.")
hf_token = input("Enter your HuggingFace (WRITE) token: ")
login(hf_token)
continue
break
#store the user's name
fname = whoami().get('fullname', None)
#create or delete the branch
if cord == 'create':
create_branch(repo, repo_type=r_type, branch=branch)
else:
delete_branch(repo, repo_type=r_type, branch=branch)
#extra information
clear_screen()
#won't work if special characters are used but should still successfully be created/deleted
if cord == 'create':
if r_type == 'model':
print(f"Branch {branch} created at https://huggingface.co/{repo}/tree/{branch}")
elif r_type == 'dataset':
print(f"Branch {branch} created at https://huggingface.co/datasets/{repo}/tree/{branch}")
elif r_type == 'space':
print(f"Branch {branch} created at https://huggingface.co/spaces/{repo}/tree/{branch}")
else:
if r_type == 'model':
print(f"Branch {branch} deleted on {r_type} https://huggingface.co/{repo}")
elif r_type == 'dataset':
print(f"Branch {branch} deleted on {r_type} https://huggingface.co/datasets/{repo}")
elif r_type == 'space':
print(f"Branch {branch} deleted on {r_type} https://huggingface.co/spaces/{repo}")
#if token wasn't found then display following text:
if tfound == 'false':
print(f'''
You are now logged in as {fname}.
To logout, use the cli 'huggingface-cli logout'
To view your active account, use 'huggingface-cli whoami'
''')
input("Press enter to continue.")
|