154 lines
3.9 KiB
Plaintext
154 lines
3.9 KiB
Plaintext
|
|
Metadata-Version: 2.1
|
|||
|
|
Name: click-didyoumean
|
|||
|
|
Version: 0.3.1
|
|||
|
|
Summary: Enables git-like *did-you-mean* feature in click
|
|||
|
|
Home-page: https://github.com/click-contrib/click-didyoumean
|
|||
|
|
License: MIT
|
|||
|
|
Author: Timo Furrer
|
|||
|
|
Author-email: timo.furrer@roche.com
|
|||
|
|
Requires-Python: >=3.6.2
|
|||
|
|
Classifier: License :: OSI Approved :: MIT License
|
|||
|
|
Classifier: Programming Language :: Python :: 3
|
|||
|
|
Classifier: Programming Language :: Python :: 3.7
|
|||
|
|
Classifier: Programming Language :: Python :: 3.8
|
|||
|
|
Classifier: Programming Language :: Python :: 3.9
|
|||
|
|
Classifier: Programming Language :: Python :: 3.10
|
|||
|
|
Classifier: Programming Language :: Python :: 3.11
|
|||
|
|
Classifier: Programming Language :: Python :: 3.12
|
|||
|
|
Requires-Dist: click (>=7)
|
|||
|
|
Project-URL: Repository, https://github.com/click-contrib/click-didyoumean
|
|||
|
|
Description-Content-Type: text/x-rst
|
|||
|
|
|
|||
|
|
click-didyoumean
|
|||
|
|
================
|
|||
|
|
|pypi| |build| |license|
|
|||
|
|
|
|||
|
|
Enable git-like *did-you-mean* feature in click.
|
|||
|
|
|
|||
|
|
It's as simple as this:
|
|||
|
|
|
|||
|
|
.. code:: python
|
|||
|
|
|
|||
|
|
import click
|
|||
|
|
from click_didyoumean import DYMGroup
|
|||
|
|
|
|||
|
|
@click.group(cls=DYMGroup)
|
|||
|
|
def cli():
|
|||
|
|
...
|
|||
|
|
|
|||
|
|
|demo|
|
|||
|
|
|
|||
|
|
Usage
|
|||
|
|
-----
|
|||
|
|
|
|||
|
|
Install this extension with pip:
|
|||
|
|
|
|||
|
|
.. code::
|
|||
|
|
|
|||
|
|
pip install click-didyoumean
|
|||
|
|
|
|||
|
|
|
|||
|
|
Use specific *did-you-mean* `group` class for your cli:
|
|||
|
|
|
|||
|
|
|
|||
|
|
.. code:: python
|
|||
|
|
|
|||
|
|
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`:
|
|||
|
|
|
|||
|
|
.. code:: python
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
~~~~~~~~
|
|||
|
|
|
|||
|
|
.. code:: python
|
|||
|
|
|
|||
|
|
@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)
|
|||
|
|
|
|||
|
|
|
|||
|
|
.. |pypi| image:: https://img.shields.io/pypi/v/click-didyoumean.svg?style=flat&label=version
|
|||
|
|
:target: https://pypi.python.org/pypi/click-didyoumean
|
|||
|
|
:alt: Latest version released on PyPi
|
|||
|
|
|
|||
|
|
.. |build| image:: https://img.shields.io/travis/click-contrib/click-didyoumean/master.svg?style=flat
|
|||
|
|
:target: http://travis-ci.org/click-contrib/click-didyoumean
|
|||
|
|
:alt: Build status of the master branch
|
|||
|
|
|
|||
|
|
.. |demo| image:: https://raw.githubusercontent.com/click-contrib/click-didyoumean/master/examples/asciicast.gif
|
|||
|
|
:alt: Demo
|
|||
|
|
|
|||
|
|
.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat
|
|||
|
|
:target: https://raw.githubusercontent.com/click-contrib/click-didyoumean/master/LICENSE
|
|||
|
|
:alt: Package license
|
|||
|
|
|