REPL plugin for Click
Project description
click-repl
Installation
Installation is done via pip:
pip install click-repl
Usage
In your click app:
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()
In the shell:
$ my_app repl
> hello
Hello world!
> ^C
$ echo hello | my_app repl
Hello world!
Features not shown:
- Tab-completion.
- The parent context is reused, which means
ctx.obj
persists between subcommands. If you're keeping caches on that object (like I do), using the app's repl instead of the shell is a huge performance win. !
- prefix executes shell commands.
You can use the internal :help
command to explain usage.
Advanced Usage
For more flexibility over how your REPL works you can use the repl
function
directly instead of register_repl
. For example, in your app:
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()
And then your custom myrepl
command will be available on your CLI, which
will start a REPL which has its history stored in
/etc/myrepl/myrepl-history
and persist between sessions.
Any arguments that can be passed to the python-prompt-toolkit
Prompt class
can be passed in the prompt_kwargs
argument and will be used when
instantiating your Prompt
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for click_repl-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb7e06deb8da8de86180a33a9da97ac316751c094c6899382da7feeeeb51b812 |
|
MD5 | 0480c45f34b32fd411254e5216fc2656 |
|
BLAKE2b-256 | 52409d857001228658f0d59e97ebd4c346fe73e138c6de1bce61dc568a57c7f8 |