_argcomplete.py


Overview

`_argcomplete.py` is a utility module designed to enable **bash-completion support for Python command-line applications** that use the `argparse` library. It leverages the external package **argcomplete** (if installed) to provide intelligent tab completion for command-line arguments, especially for file and directory paths.

The module's main purpose is to simplify the integration of argcomplete's bash-completion features by providing:


Detailed Documentation

Classes

FastFilesCompleter

A callable class that provides fast file and directory name completion. It is intended to be assigned as the `.completer` attribute on `argparse` positional argument definitions to enhance user experience during bash completion.

Constructor
FastFilesCompleter(directories: bool = True) -> None
Call Method
__call__(prefix: str, **kwargs: Any) -> list[str]
import argparse
from _argcomplete import filescompleter, try_argcomplete

parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='*').completer = filescompleter
try_argcomplete(parser)
args = parser.parse_args()

Functions

try_argcomplete

try_argcomplete(parser: argparse.ArgumentParser) -> None
import argparse
from _argcomplete import try_argcomplete

parser = argparse.ArgumentParser()
try_argcomplete(parser)
args = parser.parse_args()

Important Implementation Details


Interaction with the System


Usage Summary

Typical minimal integration:

from _argcomplete import try_argcomplete, filescompleter
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('paths', nargs='*').completer = filescompleter

try_argcomplete(parser)
args = parser.parse_args()

This enables bash completion for your CLI application, with file path completion on the `paths` argument.


Visual Diagram

classDiagram
    class FastFilesCompleter {
        +directories: bool
        +__init__(directories: bool)
        +__call__(prefix: str, **kwargs) list~str~
    }

    class try_argcomplete {
        +try_argcomplete(parser: argparse.ArgumentParser)
    }

    FastFilesCompleter <.. filescompleter : instance

    try_argcomplete ..> argparse.ArgumentParser : parameter

Summary

`_argcomplete.py` is a lightweight, robust integration helper that enables bash completion support for Python CLI applications using `argparse` and `argcomplete`. It provides a fast file completer class and a safe entry point to activate argcomplete’s features, along with helpful documentation on installation and debugging. This module improves user experience of command-line tools by facilitating intuitive tab-completion of arguments with minimal developer effort.