| |
|
| |
|
| | from huggingface_hub import HfApi
|
| | import argparse
|
| | import os
|
| | import sys
|
| |
|
| |
|
| | def create_collection(title, description, private=False, namespace=None, return_slug=False):
|
| | """
|
| | Create a new collection on Hugging Face
|
| |
|
| | Args:
|
| | title: Collection title
|
| | description: Collection description
|
| | private: Whether the collection should be private (default: False)
|
| | namespace: Optional namespace (defaults to your username)
|
| |
|
| | Returns:
|
| | Collection object if successful, None if failed
|
| | """
|
| |
|
| |
|
| | token = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACE_HUB_TOKEN")
|
| | if not token:
|
| | print("β No HF_TOKEN or HUGGINGFACE_HUB_TOKEN found in environment variables")
|
| | print("Please set your Hugging Face token as an environment variable")
|
| | return None
|
| |
|
| |
|
| | api = HfApi()
|
| |
|
| | try:
|
| |
|
| | user_info = api.whoami()
|
| | if not return_slug:
|
| | print(f"β
Authenticated as: {user_info['name']}")
|
| |
|
| |
|
| | if not return_slug:
|
| | print(f"π Creating collection: '{title}'...")
|
| | collection = api.create_collection(
|
| | title=title,
|
| | description=description,
|
| | private=private,
|
| | namespace=namespace
|
| | )
|
| |
|
| | if not return_slug:
|
| | print(f"β
Collection created successfully!")
|
| | print(f"π Collection slug: {collection.slug}")
|
| | print(f"π Collection URL: https://huggingface.co/collections/{collection.slug}")
|
| |
|
| | return collection
|
| |
|
| | except Exception as e:
|
| | print(f"β Error creating collection: {e}")
|
| | return None
|
| |
|
| | def main():
|
| |
|
| |
|
| | api = HfApi()
|
| |
|
| | parser = argparse.ArgumentParser(description='Create a Huggingface Collection')
|
| | parser.add_argument('--name', '-n', help='The name/title of the Collection', required=True)
|
| | parser.add_argument('--description', '-d', help='The description for the Collection', required=True)
|
| | parser.add_argument('--namespace', '-ns', help='The namespace to add the Collection to', required=True)
|
| | parser.add_argument('--private', '-p', help='Create a private Collection', action='store_true')
|
| | parser.add_argument('--return-slug', '-s', help='Only output the collection slug', action='store_true')
|
| |
|
| | args = parser.parse_args()
|
| |
|
| | name = args.name
|
| | description = args.description
|
| | private = args.private
|
| | namespace = args.namespace
|
| | return_slug = args.return_slug
|
| |
|
| | if not return_slug:
|
| | print("π Creating Hugging Face Collection")
|
| | print(f"Title: {name}")
|
| | print(f"Description: {description}")
|
| | print(f"Namespace: {namespace}")
|
| | print(f"Private: {private}")
|
| |
|
| | collection = create_collection(
|
| | title=name,
|
| | description=description,
|
| | private=private,
|
| | namespace=namespace,
|
| | return_slug=return_slug
|
| | )
|
| |
|
| | if collection:
|
| | if return_slug:
|
| | print(collection.slug)
|
| | else:
|
| | print("\nπ Collection created successfully!")
|
| | print(f"Use this slug to add models: {collection.slug}")
|
| | else:
|
| | print("\nβ Failed to create collection")
|
| | sys.exit(1)
|
| |
|
| | if __name__ == "__main__":
|
| | main()
|
| |
|