跳转到主要内容

Click的REPL插件

项目描述

click-repl

Tests License Python - version PyPi - version wheels PyPI - Status PyPI - Downloads

安装

安装通过pip完成

pip install click-repl

用法

在您的click应用中

import click
from click_repl import register_repl

@click.group()
def cli():
    pass

@cli.command()
def hello():
    click.echo("Hello world!")

register_repl(cli)
cli()

在shell中

$ my_app repl
> hello
Hello world!
> ^C
$ echo hello | my_app repl
Hello world!

未显示的功能

  • Tab补全。
  • 父上下文被重用,这意味着ctx.obj在子命令之间持续存在。如果您在那个对象上保留缓存(例如,我就是这样做的),使用应用程序的repl而不是shell将大大提高性能。
  • !前缀执行shell命令。

您可以使用内部的:help命令来解释用法。

高级用法

为了对REPL的工作方式有更多的灵活性,您可以直接使用repl函数而不是register_repl。例如,在您的应用中

import click
from click_repl import repl
from prompt_toolkit.history import FileHistory

@click.group()
def cli():
    pass

@cli.command()
def myrepl():
    prompt_kwargs = {
        'history': FileHistory('/etc/myrepl/myrepl-history'),
    }
    repl(click.get_current_context(), prompt_kwargs=prompt_kwargs)
    
cli()

然后您的自定义myrepl命令将在您的CLI上可用,它将启动一个REPL,其历史记录存储在/etc/myrepl/myrepl-history中,并在会话之间持续存在。

可以传递给python-prompt-toolkit Prompt类的任何参数都可以传递给prompt_kwargs参数,并在实例化Prompt时使用。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

click-repl-0.3.0.tar.gz (10.4 kB 查看哈希值)

上传时间 源代码

构建分发

click_repl-0.3.0-py3-none-any.whl (10.3 kB 查看哈希值)

上传时间 Python 3

支持者