diff options
author | Nicholas Wiles <nwiles@google.com> | 2017-10-06 21:23:25 -0700 |
---|---|---|
committer | Nicholas Wiles <nwiles@google.com> | 2017-10-06 21:23:25 -0700 |
commit | 13eda7a5e7154479f1c1b80f110863f9a654e875 (patch) | |
tree | c9eb960053f21fe758ae93f324ec8abc95d08022 /examples | |
parent | 29df08935d366ee8f3d7e9aea2a29b434a94124b (diff) | |
download | click-13eda7a5e7154479f1c1b80f110863f9a654e875.tar.gz |
Allow returning of user completions that don’t always begin with the incomplete term.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/bashcompletion/bashcompletion.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/examples/bashcompletion/bashcompletion.py b/examples/bashcompletion/bashcompletion.py index 8aaf174..c483d79 100644 --- a/examples/bashcompletion/bashcompletion.py +++ b/examples/bashcompletion/bashcompletion.py @@ -1,12 +1,17 @@ import click import os + @click.group() def cli(): pass + def get_env_vars(ctx, args, incomplete): - return os.environ.keys() + for key in os.environ.keys(): + if incomplete in key: + yield key + @cli.command() @click.argument("envvar", type=click.STRING, autocompletion=get_env_vars) @@ -14,14 +19,19 @@ def cmd1(envvar): click.echo('Environment variable: %s' % envvar) click.echo('Value: %s' % os.environ[envvar]) + @click.group() def group(): pass + def list_users(ctx, args, incomplete): # Here you can generate completions dynamically users = ['bob', 'alice'] - return users + for user in users: + if user.startswith(incomplete): + yield user + @group.command() @click.argument("user", type=click.STRING, autocompletion=list_users) |