entrypoint2 0.0.3
easy to use command-line interface for python modules, fork of entrypoint
Latest Version: 0.0.6
entrypoint2 is an easy to use command-line interface for python modules, fork of entrypoint
- Links:
- home: https://github.com/ponty/entrypoint2
- documentation: http://ponty.github.com/entrypoint2
Background
There are tons of command-line handling modules but none of them can generate a CLI interface for a very simple function like this without duplicating the existing code and without making the function from other modules unusable:
def add(one, two=4, three=False):
''' description
one: description
two: description
three: description
'''
Best solution I could find is entrypoint, but there is no link to development site, so I forked the project. The only big disadvantage of entrypoint: it destroys the function signature, therefore the function can not be called from other modules.
Goals
- the decorated function should have the same behavior as without the entrypoint2 decorator
- generate CLI parameters from function signature
- generate CLI documentation from python documentation
- boolean parameters should be toggle flags
- generate short flags from long flags: --long -> -l
- automatic --version flag
Similar projects
Features
- Additional features over original entrypoint:
- 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 automatically (e.g. --parameter -> -p)
- unit tests
- Known problems:
- Python 3 is not supported
- there are more decorators in the module inherited from original entrypoint, but only @entrypoint is tested.
- Autocompletion is not supported
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 setuptools or pip
- install the program:
if you have setuptools installed:
# as root easy_install entrypoint2
if you have pip installed:
# as root pip install entrypoint2
Ubuntu
sudo apt-get install python-setuptools sudo easy_install entrypoint2
Uninstall
# as root pip uninstall entrypoint2
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| entrypoint2-0.0.3.tar.gz (md5) | Source | 2011-08-01 | 45KB | 2720 | |
- Author: ponty
- Home Page: https://github.com/ponty/entrypoint2
- Keywords: subprocess interface
- License: BSD
- Categories
- Package Index Owner: ponty
- DOAP record: entrypoint2-0.0.3.xml
