summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorNicholas Wiles <nwiles@google.com>2017-10-06 21:23:25 -0700
committerNicholas Wiles <nwiles@google.com>2017-10-06 21:23:25 -0700
commit13eda7a5e7154479f1c1b80f110863f9a654e875 (patch)
treec9eb960053f21fe758ae93f324ec8abc95d08022 /examples
parent29df08935d366ee8f3d7e9aea2a29b434a94124b (diff)
downloadclick-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.py14
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)