• Stars
    star
    328
  • Rank 123,923 (Top 3 %)
  • Language
    Python
  • License
    Other
  • Created almost 4 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

↔️ Automagic shell tab completion for Python CLI applications

Logo

shtab

Tests Coverage conda-forge PyPI

  • 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
    • bash
    • zsh
    • tcsh
  • Supports
  • Supports arguments, options and subparsers
  • Supports choices (e.g. --say={hello,goodbye})
  • Supports file and directory path completion
  • Supports custom path completion (e.g. --file={*.txt})

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}
    • subparser mode: end-users execute your_cli_app completion {bash,zsh}

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)
    • only provides bash completion
  • 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 fish
  • support powershell

See CONTRIBUTING.md for more guidance.

Hits

More Repositories

1

dvc

🦉 ML Experiments and Data Management with Git
Python
13,036
star
2

cml

♾️ CML - Continuous Machine Learning | CI/CD for ML
JavaScript
3,907
star
3

mlem

🐶 A tool to package, serve, and deploy any ML model on any platform. Archived to be resurrected one day🤞
Python
713
star
4

PyDrive2

Google Drive API Python wrapper library. Maintained fork of PyDrive.
Python
516
star
5

dvc.org

📖 DVC website and documentation
TypeScript
320
star
6

terraform-provider-iterative

☁️ Terraform plugin for machine learning workloads: spot instance recovery & auto-termination | AWS, GCP, Azure, Kubernetes
Go
287
star
7

vscode-dvc

Machine learning experiment tracking and data versioning with DVC extension for VS Code
TypeScript
176
star
8

example-get-started

Get started DVC project
Python
167
star
9

dvclive

📈 Log and track ML metrics, parameters, models with Git and/or DVC
Python
150
star
10

gto

🏷️ Git Tag Ops. Turn your Git repository into Artifact Registry or Model Registry.
Python
134
star
11

awesome-iterative-projects

A list of projects relying on Iterative.AI tools to achieve awesomeness
63
star
12

dataset-registry

Dataset registry DVC project
60
star
13

magnetic-tiles-defect

Demo Computer Vision Project
Jupyter Notebook
55
star
14

course-ds-base

Jupyter Notebook
39
star
15

example-get-started-experiments

Get started DVC project
Python
39
star
16

demo-bank-customer-churn

Demo DVC project training a classification model on tabular data
Jupyter Notebook
38
star
17

aita_dataset

AITA dataset based on r/AmItheAsshole/
Python
32
star
18

setup-dvc

DVC GitHub action
JavaScript
29
star
19

example_cml

Python
28
star
20

workshop-uncool-mlops

Accompanies the uncool MLOps workshop
Python
26
star
21

ldb-resources

Python
26
star
22

mlem.ai

✨ Landing page for MLEM
TypeScript
26
star
23

setup-cml

GitHub Action for CML setup
TypeScript
21
star
24

cml_base_case

Python
21
star
25

example-repos-dev

Source code and generator scripts for example DVC projects
Python
21
star
26

cml_cloud_case

Python
20
star
27

dvc-bench

Benchmarks for DVC
Python
20
star
28

scmrepo

SCM wrapper and fsspec filesystem for Git for use in DVC.
Python
19
star
29

cml_dvc_case

Python
18
star
30

intellij-dvc

DVC integration plugin for Intellij IDEs including PyCharm, IntelliJ IDEA and CLion
Java
17
star
31

dvc-data

DVC's data management subsystem
Python
17
star
32

studio-support

❓ DVC Studio Issues, Question, and Discussions
15
star
33

studio-selfhosted

This repository contains auxiliary installation code for self-hosting Studio
Shell
15
star
34

VSCode-DVC-Workshop

Workshop about DVC VSCode Extension
Jupyter Notebook
14
star
35

example-dvc-experiments

DVC Get Started Project with a focus on `dvc experiment` features.
HTML
13
star
36

pytest-servers

Create temporary directories on the various filesystems for testing
Python
12
star
37

py-template

Hypermodern Python Cookiecutter
Python
12
star
38

cml.dev

🔗 CML website and documentation
TypeScript
12
star
39

dvc-objects

dvc objects - contains filesystem and object-db level abstractions to use in dvc and dvc-data
Python
10
star
40

dvcyaml-schema

Schema for dvc.yaml
Python
10
star
41

example-versioning

Data sets and ML models versioning example from DVC get started
Python
9
star
42

dvc-streamlit-components

Streamlit components for DVC
Python
9
star
43

blog

📖 DVC blog engine
TypeScript
8
star
44

cml_tensorboard_case

Python
8
star
45

priority-list

⛏️ Make a dent in GitHub issue & PR backlogs across repositories
Python
7
star
46

dvc-task

Celery task queue used in DVC
Python
7
star
47

tpi

Python wrapper for terraform-provider-iterative
Python
7
star
48

example-gto

Get Started GTO Project
7
star
49

example-pokemon-classifier

Example project with a CNN to train a Pokémon type classifier.
Python
7
star
50

dvc-render

Library for rendering DVC plots
Python
6
star
51

example-mlem-get-started

Get Started MLEM project
Python
6
star
52

dvc-studio-client

Client to interact with DVC Studio
Python
6
star
53

workshop-uncool-mlops-solution

Python
6
star
54

pytest-test-utils

Python
6
star
55

features

A collection of development container 'features' for machine learning and data science
Shell
6
star
56

dvc-s3

AWS S3 plugin for dvc
Python
6
star
57

gatsby-theme-iterative

A Gatsby theme for shared logic between all the websites from iterative.ai
JavaScript
6
star
58

stale-model-example

This is the repo for the Preventing Stale Models in Production blog post.
Jupyter Notebook
6
star
59

gto-action

⚙️ GTO Github Action
Shell
6
star
60

morefs

A collection of self-contained fsspec-based filesystems
Python
6
star
61

llm-demo

Demo of using DVC with LangChain
Python
6
star
62

course-checkpoints-project

This is the project we use for the DVC educational course to demonstrate how checkpoints work.
HTML
6
star
63

dvc-checkpoints-mnist

Example of checkpoints in a DVC project training a simple convolutional neural net to classify MNIST data
Python
5
star
64

dvc-s3-repo

Maintain deb and rpm repositories on s3
Python
5
star
65

enhancement-proposals

5
star
66

evidently-dvc

Tutorial: Automate Data Validation and Model Monitoring Pipelines with DVC and Evidently
HTML
5
star
67

dvc-gs

Google Storage plugin for dvc
Python
4
star
68

link-check

A Node-based tool to verify if links are alive. Built to be used anywhere!
TypeScript
4
star
69

dvc-snap

dvc snap package
Shell
4
star
70

cml-runner-base-case

Python
4
star
71

pretrained-model-demo

Python
4
star
72

homebrew-dvc

Automatic updates for dvc homebrew package
Shell
4
star
73

sqltrie

SQL-based prefix tree implementation inspired by pygtrie and python-diskcache
Python
3
star
74

vscode-dvc-demo

Python
3
star
75

example_model_export_cml

Example on how to use CML to provision an AWS EC2 runner, train a model, and export the resulting model.
Python
3
star
76

cnn_tutorial

CNN tutorial for DVC
Python
3
star
77

cml-playground

Shell
3
star
78

dvc-learn-project

This is the project used in the DVC Learn Meetups and videos.
HTML
3
star
79

telemetry-python

Common library to send usage telemetry
Python
3
star
80

checkpoints-tutorial

This is the code used in the checkpoints tutorial.
Python
3
star
81

ldb

Python
3
star
82

chocolatey-dvc

Chocolatey package for dvc
PowerShell
3
star
83

blog-tpi-jupyter

Terraform Provider Iterative + Jupyter + TensorBoard + AWS/Azure/GCP/K8s
Jupyter Notebook
3
star
84

example-get-started-ssh-private-fixture

Frozen copy of the Get Started DVC project. Used in Studio tests to test SSH remote credentials.
Python
2
star
85

link-check.action

A GitHub Action driver for link-check, deployed via submodules.
JavaScript
2
star
86

dvc-gdrive

Google Drive plugin for DVC
Python
2
star
87

example-get-started-s3

Example get started (metrics and plots in S3)
Python
2
star
88

example-mlem

Example of using MLEM with DVC Pipeline
Python
2
star
89

katacoda-scenarios

Interactive Katacoda Scenarios
Shell
2
star
90

dvc-exe

Private repository for building and signing dvc for windows
Inno Setup
2
star
91

dvc-azure

Azure plugin for dvc
Python
2
star
92

dvc_action_example

Python
2
star
93

dvc-oss

Alibaba OSS plugin for dvc
Python
2
star
94

sagemaker-pipeline

An example project, showcasing a DVC pipeline using SageMaker SDK for data preparation and model training
Python
2
star
95

dvc-test

Integration tests for dvc
Python
2
star
96

vscode-dvc-pack

2
star
97

get-started-pipelines

DVC Get Started project with a focus on creating pipelines with `dvc stage`
Python
2
star
98

cookiecutter-dvc-plugin

A Cookiecutter template for dvc plugins
Python
2
star
99

testing-ldb

Aug 10th Hackathon
Python
2
star
100

gha-required-workflows

Repository containing Iterative Required workflows for GitHub Actions
1
star