Introduction to click-repl
Click-repl is a powerful library that extends the capabilities of the Click library
to provide a Read-Eval-Print Loop (REPL) for command-line applications. It enables
developers to test and interact with their Click-based CLI tools in an interactive
shell environment. This extensive guide will provide a detailed overview of click-repl
and demonstrate how it can be used through various APIs and code snippets.
APIs and Examples
Basic Setup
import click
from click_repl import repl
@click.group()
def cli():
pass
@cli.command()
def hello():
click.echo('Hello, World!')
if __name__ == '__main__':
repl(cli)
This snippet sets up a basic click-repl environment.
Custom Prompt
import click
from click_repl import repl
class CustomPromptREPL(click.Repl):
prompt = 'custom-repl> '
@click.group()
def cli():
pass
@cli.command()
def hello():
click.echo('Hello, World!')
if __name__ == '__main__':
repl(cli, repl_class=CustomPromptREPL)
This example shows how you can set a custom prompt for your REPL.
Accessing CLI Context
import click
from click_repl import repl
@click.group()
def cli():
pass
@cli.command()
@click.pass_context
def hello(ctx):
click.echo(f'Hello, {ctx.obj["name"]}!')
if __name__ == '__main__':
cli(obj={'name': 'User'})
repl(cli)
In this example, we pass additional context to the CLI command.
App Example with Introduced APIs
import click
from click_repl import repl
@click.group()
def cli():
pass
@cli.command()
def hello():
click.echo('Hello, World!')
@cli.command()
def greet(name):
click.echo(f'Greetings, {name}!')
if __name__ == '__main__':
repl(cli)
This example is a simple application that leverages the click-repl for interactive commands.
Hash: c1c82e29b77a472980515f77d34befabcd7bff6c640da97df15437a67224ac08