Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

easy to use command-line interface for python modules, fork of entrypoint

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 docs
Octocat-spinner-32 entrypoint2
Octocat-spinner-32 tests
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE.txt
Octocat-spinner-32 MANIFEST.in
Octocat-spinner-32 README.rst
Octocat-spinner-32 TODO
Octocat-spinner-32 pavement.py
Octocat-spinner-32 requirements.txt
Octocat-spinner-32 setup.py
Octocat-spinner-32 tox.ini
README.rst

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.

Links:

Goals:

  • simplicity: only one decorator to add to existing code

Features:

  • 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

Example:

from entrypoint2 import entrypoint

__version__ = '3.2'

@entrypoint
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: hello.py [-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
  --three
  --version          show program's version number and exit
  --debug            set logging level to DEBUG

Printing version:

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

Installation

General:

  • install pip

  • install the program:

    # as root
    pip install entrypoint2
    

Ubuntu:

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

Uninstall:

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