Skip to main content

Adding support of kislyuk/argcomplete to xonsh.

Project description

Adding support of kislyuk/argcomplete to xonsh.

If you like the idea of xontrib-argcomplete click ⭐ on the repo and stay tuned by watching releases.

Install

xpip install -U xontrib-argcomplete
echo 'xontrib load argcomplete' >> ~/.xonshrc
# Reload xonsh

Usage

Current version of completion is working only for commands that starts with:

  • python <path/to/python_script.py> ...
  • <path/to/python_script.py> ...

For example create proto.py with the content:

#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK
import argparse, argcomplete
from argcomplete.completers import ChoicesCompleter

parser = argparse.ArgumentParser()
parser.add_argument("--proto").completer=ChoicesCompleter(('http', 'https', 'ssh', 'rsync', 'wss'))
argcomplete.autocomplete(parser)
args = parser.parse_args()
print('ok')

Then try completion:

python proto.py <Tab>
# Suggestions: --help --proto -h

chmod +x proto.py
./proto.py --proto tt<Tab>
# Suggestions: http https

Known issues

This is the alpha version of the xontrib-argcomplete and the proof of concept. It was tested on Ubuntu+Conda+Xonsh and on Mac.

No completions or "Completions not found" message

To get completions list for your Python script it runs in subprocess shell (sh by default) with appropriate argcomplete environment variables. The common reason you can get empty list or "Completions not found" message" is that you have different setting for Python in xonsh and in sh shell.

To test that your script.py with argparse and argcomplete is working properly in sh try to run:

sh -c 'python script.py'
# OR
sh -c 'python script.py --help' # to avoid full running the script
# AND check the Python version and paths
sh -c 'python -V'
sh -c 'python -c "import sys; print(sys.path)"'

If you see the errors this is the cause why xontrib returns no completions. The causes may be different: xontrib-argcomplete may not properly set the environment and PR to fix is required or your environment is complex and you should synchronize xonsh and sh.

Project details


Download files

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

Source Distribution

xontrib-argcomplete-0.0.3.tar.gz (3.5 kB view hashes)

Uploaded Source

Built Distribution

xontrib_argcomplete-0.0.3-py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 3

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