velai / scripts /configure_hf_storage.py
cansik's picture
Upload folder via script
90dd5f1 verified
#!/usr/bin/env python3
import argparse
import os
from typing import Optional
from huggingface_hub import HfApi, SpaceStorage
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Request (or delete) persistent storage for a Hugging Face Space.")
parser.add_argument("repo_id", help="Space repository ID in the form 'username/space-name'")
parser.add_argument(
"--storage",
"-s",
choices=[e.name for e in SpaceStorage],
default=SpaceStorage.SMALL.name,
help="Storage tier to request (default: SMALL)",
)
parser.add_argument(
"--delete",
action="store_true",
help="Delete the Space storage instead of requesting it",
)
parser.add_argument(
"--token",
"-t",
default=None,
help="Hugging Face access token (uses HF_TOKEN or HUGGINGFACE_HUB_TOKEN if not provided)",
)
return parser.parse_args()
def resolve_token(token_arg: Optional[str]) -> Optional[str]:
return token_arg or os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACE_HUB_TOKEN")
def main() -> None:
args = parse_args()
token = resolve_token(args.token)
if not token:
print(
"Warning: No token provided via --token or environment variable. "
"Please set HF_TOKEN/HUGGINGFACE_HUB_TOKEN or run `huggingface-cli login`."
)
api = HfApi(token=token)
if args.delete:
result = api.delete_space_storage(repo_id=args.repo_id)
print(result)
return
storage = SpaceStorage(args.storage)
result = api.request_space_storage(repo_id=args.repo_id, storage=storage)
print(result)
if __name__ == "__main__":
main()