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.")