Skip to main content

Python interface for bash completion

Project description

A package that provides python interface for bash completion

Usage example

In the simplest case, we can just complete from the end of the line using, bash_complete_line():

from bash_completion import bash_complete_line

In [1]: bash_complete_line('git s', return_line=True)
{'git shortlog',
'git show',
'git show-branch',
'git stage',
'git stash',
'git status',
'git submodule',
'git subtree'}

However, there is also a lower-level API that more closely matches the actual Bash completion interface, for those who need it!

from bash_completion import bash_completions

def get_completions(line):
    split = line.split()
    if len(split) > 1 and not line.endswith(' '):
        prefix = split[-1]
        begidx = len(line.rsplit(prefix)[0])
        prefix = ''
        begidx = len(line)

    endidx = len(line)
    return bash_completions(prefix, line, begidx, endidx)

In [1]: get_completions('git s')

You may also use this as a simple command line utility:

$ python -m bash_completion "ls --s"
ls --show-control-chars
ls --si
ls --size
ls --sort
ls --sort=

Project details

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
bash_completion-0.2.5.tar.gz (7.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page