File size: 3,084 Bytes
2ed2b2c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13e2d3f
2ed2b2c
 
 
 
 
 
 
 
 
 
 
13e2d3f
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
#import required modules
import os
import huggingface_hub
from huggingface_hub import create_branch, delete_branch

#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 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 three options.")
        continue
    
    break
clear_screen()
branch = input("Branch name (No spaces): ")
clear_screen()

#get token
if 'HF_TOKEN' in os.environ:
    #if the variable is found then write it to hf_token:
    hf_token = os.environ['HF_TOKEN']
    tfound = "Where are my doritos?"
else:
    #if the variable is not found then prompt user to provide it:
    hf_token = input("HF_TOKEN Variable not detected. Enter your HuggingFace (WRITE) token: ")
    tfound = "false"

#login
huggingface_hub.login(hf_token)

#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 created at https://huggingface.co/{repo}/tree/{branch}")
    elif r_type == 'dataset':
        print(f"Branch created at https://huggingface.co/datasets/{repo}/tree/{branch}")
    elif r_type == 'space':
        print(f"Branch created at https://huggingface.co/spaces/{repo}/tree/{branch}")
else:
    if r_type == 'model':
        print(f"Branch deleted on {r_type} https://huggingface.co/{repo}")
    elif r_type == 'dataset':
        print(f"Branch deleted on {r_type} https://huggingface.co/datasets/{repo}")
    elif r_type == 'space':
        print(f"Branch deleted on {r_type} https://huggingface.co/spaces/{repo}")
#if token wasn't found then display following text:
if tfound == 'false':
    print('''
          Set HF_TOKEN to a token with WRITE permissions to skip inputting token on each run.
          
          On Unix systems, edit the file ~/.bashrc with an editor of your choise.
          On a new line add: export HF_TOKEN=Your-HuggingFace-token-here
          (Terminal Refresh Required)
          To temporarily set a token to the active terminal use 'export HF_TOKEN=Your-HuggingFace-token-here'
          
          On Windows use 'setx HF_TOKEN Your-HuggingFace-token-here'
          (System Restart Required)
          To temporarily set a token to the active terminal use 'set HF_TOKEN=Your-HuggingFace-token-here'
          ''')
input("Press enter to continue.")