Enable git-like did-you-mean feature in click.
Project description
Enable git-like did-you-mean feature in click.
Example
This example is based on the official naval example from click:
$ naval shi move
Usage: naval [OPTIONS] COMMAND [ARGS]...
Error: No such command "shi".
Did you mean one of these?
ship
Usage
Install this extension with pip:
pip install click-didyoumean
Use specific did-you-mean group class for your cli:
import click
from click_didyoumean import DYMGroup
@click.group(cls=DYMGroup)
def cli():
pass
@cli.command()
def foo():
pass
@cli.command()
def bar():
pass
@cli.command()
def barrr():
pass
if __name__ == "__main__":
cli()
Or you it in a CommandCollection:
import click
from click_didyoumean import DYMCommandCollection
@click.group()
def cli1():
pass
@cli1.command()
def foo():
pass
@cli1.command()
def bar():
pass
@click.group()
def cli2():
pass
@cli2.command()
def barrr():
pass
cli = DYMCommandCollection(sources=[cli1, cli2])
if __name__ == "__main__":
cli()
Change configuration
There are two configuration for the DYMGroup and DYMCommandCollection:
Parameter |
Type |
Default |
Description |
---|---|---|---|
max_suggestions |
int |
3 |
Maximal number of did-you-mean suggestions |
cutoff |
float |
0.5 |
Possibilities that don’t score at least that similar to word are ignored. |
Examples
@cli.group(cls=DYMGroup, max_suggestions=2, cutoff=0.7)
def cli():
pass
... or ...
cli = DYMCommandCollection(sources=[cli1, cli2], max_suggestions=2, cutoff=0.7)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
click-didyoumean-0.0.2.tar.gz
(2.7 kB
view hashes)