Argcomplete provides easy, extensible command line tab completion of arguments for your Python script.
It makes two assumptions:
Argcomplete is particularly useful if your program has lots of options or subparsers, and if your program can dynamically suggest completions for your argument/option values (for example, if the user is browsing resources over the network).