Skip to main content

Bash tab completion for argparse

Project description

Warning: under development. Some things are a bit messy.

argcomplete - Bash completion for argparse

Argcomplete provides easy and extensible automatic tab completion of arguments and options for your Python script.

It makes two assumptions:

  • You’re using bash as your shell

  • You’re using argparse to manage your command line options

Argcomplete is particularly useful if your program has lots of options or subparsers, and if you can suggest completions for your argument/option values (for example, if the user is browsing resources over the network).

Installation

pip install argcomplete

Synopsis

Python code (e.g. my-awesome-script.py):

import argcomplete, argparse
parser = argparse.ArgumentParser()
...
argcomplete.autocomplete(parser)
parser.parse()
...

Shellcode (to be put in e.g. .bashrc):

eval "$(register-python-argcomplete my-awesome-script.py)"

Specifying completers

You can specify custom completion functions for your options and arguments. Completers are called with one argument, the prefix text that all completions should match. Completers should return their completions as a list of strings. An example completer for names of environment variables might look like this:

def EnvironCompleter(text):
    return (v for v in os.environ if v.startswith(text))

To specify a completer for an argument or option, set the completer attribute of its associated action. An easy way to do this at definition time is:

from argcomplete.completers import EnvironCompleter

parser = argparse.ArgumentParser()
parser.add_argument("--env-var1").completer = EnvironCompleter
parser.add_argument("--env-var2").completer = EnvironCompleter
argcomplete.autocomplete(parser)

Acknowledgments

Inspired and informed by the optcomplete module by Martin Blais.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argcomplete-0.1.3.tar.gz (5.1 kB view details)

Uploaded Source

File details

Details for the file argcomplete-0.1.3.tar.gz.

File metadata

  • Download URL: argcomplete-0.1.3.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for argcomplete-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c6e519effc87873613f39cd8ed43ae89fca62309de3e16c9c3f0b04919e646ac
MD5 22a07a1ce322bf5357fe5e7ac0e47d4b
BLAKE2b-256 806402405c50261e23ff22db264f3bc931d2b89a41cc9296bdb3817ea23ec3f0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page