Skip to content
easy to use command-line interface for python modules, fork of entrypoint
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs formatting by autopep8 Dec 3, 2012
LICENSE.txt fix MANIFEST Feb 16, 2013
README.rst doc Feb 16, 2013


entrypoint2 is an easy to use argparse based command-line interface for python modules, fork of entrypoint. It translates function signature and documentation to argparse configuration.



  • simplicity: only one decorator to add to existing code


  • good for protoyping or simple CLI
  • generate CLI parameters from function signature
  • generate CLI documentation from python documentation
  • the decorated function has the same behavior as without the entrypoint2 decorator
  • boolean parameters are toggle flags (e.g. --verbose)
  • function signature is preserved so it can be called both from command-line and external module
  • function name, doc and module are preserved so it can be used with sphinx autodoc
  • sphinx autodoc documentation style is supported: :param x: this is x
  • automatic --version flag, which prints version variable from the current module (__version__, VERSION, ..)
  • automatic --debug flag, which turns on logging
  • short flags are generated from long flags automatically (e.g. --parameter -> -p)
  • unit tests
  • supported python versions: 2.5, 2.6, 2.7, 3.1, 3.2, PyPy
  • support for repeating arguments
Known problems:
  • None.

Similar projects:

Basic usage


from entrypoint2 import entrypoint

__version__ = '3.2'

def add(one, two=4, three=False):
    ''' This function adds three numbers.

    one: first number to add
    two: second number to add

Generated help:

$ python -m entrypoint2.examples.hello --help
usage: [-h] [-t TWO] [--three] [--version] [--debug] one

This function adds two number.

positional arguments:
  one                first number to add

optional arguments:
  -h, --help         show this help message and exit
  -t TWO, --two TWO  second number to add
  --version          show program's version number and exit
  --debug            set logging level to DEBUG

Printing version:

$ python -m entrypoint2.examples.hello --version



  • install pip

  • install the program:

    # as root
    pip install entrypoint2


sudo apt-get install python-pip
sudo pip install entrypoint2


# as root
pip uninstall entrypoint2
Something went wrong with that request. Please try again.