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.objpersists 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.
Metadata
Release files for sereto-repl 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sereto_repl-0.3.2.tar.gz | 15.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sereto_repl-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.2 kB
Release files / sereto_repl-0.3.2.tar.gz
| Download URL | sereto_repl-0.3.2.tar.gz |
|---|---|
| Size | 15.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
659b6d565229764377357f528c80e1b96dfaea8d7648c1ffc2e6eca1b4febc4a
|
|
BLAKE2b-256 checksum How to use checksums |
b0fc8fae43dcc43295a9ef9d68cd688b42bed25dbf9a6c918b5332fae6bc622d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / sereto_repl-0.3.2-py3-none-any.whl
| Download URL | sereto_repl-0.3.2-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42093061a0a6cacb27667bd824f5b8661d41e436b34316edeff2f8adb8a5ee98
|
|
BLAKE2b-256 checksum How to use checksums |
70bcba926dd643da51b670033002cac72a69ae6ffdaa3a8cfe80efe6f56331a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|