import sys | |
import typer | |
from gradio_client.cli import deploy_discord # type: ignore | |
from rich.console import Console | |
from .commands import custom_component, deploy, print_environment_info, reload | |
app = typer.Typer() | |
app.command("environment", help="Print Gradio environment information.")( | |
print_environment_info | |
) | |
app.command( | |
"deploy", | |
help="Deploy a Gradio app to Spaces. Must be called within the directory you would like to deploy.", | |
)(deploy) | |
app.command("deploy-discord", help="Deploy a Gradio app to Discord.")( | |
deploy_discord.main | |
) | |
def cli(): | |
args = sys.argv[1:] | |
if len(args) == 0: | |
raise ValueError("No file specified.") | |
if args[0] in {"deploy", "environment", "deploy-discord"}: | |
app() | |
elif args[0] in {"cc", "component"}: | |
sys.argv = sys.argv[1:] | |
custom_component() | |
elif args[0] in {"build", "dev", "create", "show", "publish", "install"}: | |
try: | |
error = f"gradio {args[0]} is not a valid command. Did you mean `gradio cc {args[0]}` or `gradio component {args[0]}`?." | |
raise ValueError(error) | |
except ValueError: | |
console = Console() | |
console.print_exception() | |
else: | |
typer.run(reload) | |