Skip to main content

Logo

shtab

Tests Coverage Quality PyPI conda-forge Downloads LICENCE

  • What: Automatically generate shell tab completion scripts for Python CLI apps

  • Why: Speed & correctness. Alternatives like argcomplete and pyzshcomplete are slow and have side-effects

  • How: shtab processes an argparse.ArgumentParser object to generate a tab completion script for your shell

Features

  • Outputs tab completion scripts for multiple shells

    • bash, zsh, fish, tcsh

  • Supports

  • <arguments>, --options and sub commands

  • Choices (--say={hello,goodbye}`)

  • Paths (--file={*.y*ml,*.toml}, --dir=*/)

  • Dynamic shell commands (--branch=$(git branch))


Installation

Choose one of:

  • pip install shtab, or

  • conda install -c conda-forge shtab

See operating system-specific instructions in the docs.

Usage

There are two ways of using shtab:

  • CLI Usage: shtab’s own CLI interface for external applications

    • may not require any code modifications whatsoever

    • end-users execute shtab your_cli_app.your_parser_object

  • Library Usage: as a library integrated into your CLI application

    • adds a couple of lines to your application

    • argument mode: end-users execute your_cli_app --print-completion {bash,zsh,tcsh,fish}

    • subparser mode: end-users execute your_cli_app completion {bash,zsh,tcsh,fish}

Examples

See the docs for usage examples.

FAQs

Not working? Check out frequently asked questions.

Alternatives

  • argcomplete

    • executes the underlying script every time <TAB> is pressed (slow and has side-effects)

  • pyzshcomplete

    • executes the underlying script every time <TAB> is pressed (slow and has side-effects)

    • only provides zsh completion

  • click

    • different framework completely replacing the builtin argparse

    • solves multiple problems (rather than POSIX-style “do one thing well”)

Contributions

Please do open issues & pull requests! Some ideas:

  • support powershell (#212)

  • support python -m prefix (#55)

See CONTRIBUTING.md for more guidance.

git-fame

Hits

Download files

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

Source Distribution

shtab-1.11.0.tar.gz (58.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shtab-1.11.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file shtab-1.11.0.tar.gz.

File metadata

  • Download URL: shtab-1.11.0.tar.gz
  • Upload date:
  • Size: 58.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for shtab-1.11.0.tar.gz
Algorithm Hash digest
SHA256 57df8a646484b3f00517a42934b173554f827976a77b605ceb6a1a0e649e9266
MD5 f2138908f90b0a4722b11b0c153e4106
BLAKE2b-256 db1e6abd32b6c79e64b8e2e2027b05a65ff5215d913997de4fb973f248f79350

See more details on using hashes here.

Provenance

The following attestation bundles were made for shtab-1.11.0.tar.gz:

Publisher: test.yml on tqdm/shtab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shtab-1.11.0-py3-none-any.whl.

File metadata

  • Download URL: shtab-1.11.0-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for shtab-1.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87c4ccd586a0d98f41c5d15a4a2da4957ea67ba2ec588561fdb803b612bfd032
MD5 fc4f870a090f8de9b6d18d7dc89a5dd6
BLAKE2b-256 121581365f3f0e06614bfabdf5b86bc0c4dc0753bdcce29229a40c5742dee2b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for shtab-1.11.0-py3-none-any.whl:

Publisher: test.yml on tqdm/shtab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.11.0 This release

2 files

1.10.0

2 files

1.9.3

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.8

2 files

1.5.7

2 files

1.5.6

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.10

2 files

1.3.9

2 files

1.3.8

2 files

1.3.7

1 file

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

0.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page