communex.cli.root
1from typing import Annotated, Optional 2 3import typer 4 5from communex import __version__ 6 7from ._common import ExtraCtxData 8from .balance import balance_app 9from .key import key_app 10from .misc import misc_app 11from .module import module_app 12from .network import network_app 13from .subnet import subnet_app 14 15app = typer.Typer() 16 17app.add_typer(key_app, name="key", help="Key operations") 18app.add_typer(balance_app, name="balance", help="Balance operations") 19app.add_typer(misc_app, name="misc", help="Other operations") 20app.add_typer(module_app, name="module", help="Module operations") 21app.add_typer(network_app, name="network", help="Network operations") 22app.add_typer(subnet_app, name="subnet", help="Subnet operations") 23 24 25def _version_callback(value: bool): 26 if value: 27 print(f"CommuneX {__version__}") 28 raise typer.Exit() 29 30 31def flag_option( 32 flag: str, 33 flag_envvar: str, 34 flag_help: str, 35 flag_short: str | None = None, 36): 37 flag_long = f"--{flag}" 38 flag_short = f"-{flag[0]}" if flag_short is None else f"-{flag_short}" 39 return typer.Option( 40 flag_long, 41 flag_short, 42 is_flag=True, 43 envvar=flag_envvar, 44 help=flag_help 45 ) 46 47 48@app.callback() 49def main( 50 ctx: typer.Context, 51 json: Annotated[bool, flag_option( 52 "json", "COMX_OUTPUT_JSON", "Output machine-readable JSON.")] = False, 53 testnet: Annotated[bool, flag_option( 54 "testnet", "COMX_USE_TESTNET", "Use testnet endpoints.")] = False, 55 yes_to_all: Annotated[bool, flag_option( 56 "yes", "COMX_YES_TO_ALL", "Say yes to all confirmation inputs.")] = False, 57 version: Annotated[Optional[bool], typer.Option( 58 callback=_version_callback)] = None, 59): 60 """ 61 CommuneX CLI {version} 62 63 This command line interface is under development and subject to change. 64 """ 65 # Pass the extra context data to the subcommands. 66 ctx.obj = ExtraCtxData( 67 output_json=json, use_testnet=testnet, yes_to_all=yes_to_all) 68 69 70if main.__doc__ is not None: 71 main.__doc__ = main.__doc__.format(version=__version__)
app =
<typer.main.Typer object>
def
flag_option( flag: str, flag_envvar: str, flag_help: str, flag_short: str | None = None):
32def flag_option( 33 flag: str, 34 flag_envvar: str, 35 flag_help: str, 36 flag_short: str | None = None, 37): 38 flag_long = f"--{flag}" 39 flag_short = f"-{flag[0]}" if flag_short is None else f"-{flag_short}" 40 return typer.Option( 41 flag_long, 42 flag_short, 43 is_flag=True, 44 envvar=flag_envvar, 45 help=flag_help 46 )
@app.callback()
def
main( ctx: typer.models.Context, json: typing.Annotated[bool, <typer.models.OptionInfo object>] = False, testnet: typing.Annotated[bool, <typer.models.OptionInfo object>] = False, yes_to_all: typing.Annotated[bool, <typer.models.OptionInfo object>] = False, version: Annotated[Optional[bool], <typer.models.OptionInfo object>] = None):
49@app.callback() 50def main( 51 ctx: typer.Context, 52 json: Annotated[bool, flag_option( 53 "json", "COMX_OUTPUT_JSON", "Output machine-readable JSON.")] = False, 54 testnet: Annotated[bool, flag_option( 55 "testnet", "COMX_USE_TESTNET", "Use testnet endpoints.")] = False, 56 yes_to_all: Annotated[bool, flag_option( 57 "yes", "COMX_YES_TO_ALL", "Say yes to all confirmation inputs.")] = False, 58 version: Annotated[Optional[bool], typer.Option( 59 callback=_version_callback)] = None, 60): 61 """ 62 CommuneX CLI {version} 63 64 This command line interface is under development and subject to change. 65 """ 66 # Pass the extra context data to the subcommands. 67 ctx.obj = ExtraCtxData( 68 output_json=json, use_testnet=testnet, yes_to_all=yes_to_all)
CommuneX CLI 0.1.34.2
This command line interface is under development and subject to change.