1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from functools import wraps
- import asyncclick as click
- from asyncclick import pass_context
- from asyncclick.exceptions import Exit
- from sdk import R2RAsyncClient
- def deprecated_command(new_name):
- def decorator(f):
- @wraps(f)
- async def wrapped(*args, **kwargs):
- click.secho(
- f"Warning: This command is deprecated. Please use '{new_name}' instead.",
- fg="yellow",
- err=True,
- )
- return await f(*args, **kwargs)
- return wrapped
- return decorator
- @click.group()
- @click.option(
- "--base-url", default="http://localhost:7272", help="Base URL for the API"
- )
- @pass_context
- async def cli(ctx, base_url):
- """R2R CLI for all core operations."""
- ctx.obj = R2RAsyncClient(base_url=base_url)
- # Override the default exit behavior
- def silent_exit(self, code=0):
- if code != 0:
- raise Exit(code)
- ctx.exit = silent_exit.__get__(ctx)
|