from __future__ import annotations import argparse from gradio.themes import ThemeClass def main(): parser = argparse.ArgumentParser(description="Upload a demo to a space") parser.add_argument("theme", type=str, help="Theme json file") parser.add_argument("repo_name", type=str, help="HF repo name to store the theme") parser.add_argument( "--org_name", type=str, help="The name of the org to save the space in. If None (the default), the username corresponding to the logged in user, or hƒ_token is used.", ) parser.add_argument("--version", type=str, help="Semver version") parser.add_argument("--hf_token", type=str, help="HF Token") parser.add_argument( "--theme-name", type=str, help="Name of theme.", ) parser.add_argument( "--description", type=str, help="Description of theme", ) args = parser.parse_args() upload_theme( args.theme, args.repo_name, args.org_name, args.version, args.hf_token, args.theme_name, args.description, ) def upload_theme( theme: str, repo_name: str, org_name: str | None = None, version: str | None = None, hf_token: str | None = None, theme_name: str | None = None, description: str | None = None, ): theme = ThemeClass.load(theme) return theme.push_to_hub( repo_name=repo_name, version=version, hf_token=hf_token, theme_name=theme_name, description=description, org_name=org_name, )