求Typer框架中类似click_shell的交互式Shell功能
Typer 实现交互式Shell方案
Typer本身并没有内置交互式Shell功能,但由于Typer底层完全基于Click构建,你可以直接复用Click的生态工具,包括click_shell插件来实现相同的需求。
具体实现步骤
- 先安装所需依赖:
pip install typer click-shell
- 编写集成代码示例:
import typer from click_shell import make_click_shell app = typer.Typer() @app.command() def hello(name: str): typer.echo(f"Hello {name}!") @app.command() def goodbye(name: str): typer.echo(f"Goodbye {name}!") @app.callback() def main(ctx: typer.Context): # 当未传入任何子命令时,启动交互式Shell if ctx.invoked_subcommand is None: shell = make_click_shell(ctx, prompt="my-app> ") shell.cmdloop() if __name__ == "__main__": app()
效果说明
直接运行脚本即可进入交互式Shell环境,在提示符后可以直接输入hello Alice、goodbye Bob等命令,完全兼容Typer的参数校验、自动帮助等所有特性,体验和使用Click+click_shell时一致。
内容的提问来源于stack exchange,提问作者Ram Rachum
相关产品推荐
相关产品推荐

