NOTE: 2.1.x is the development version of Cement. Please use 2.0.x in production.
Cement is an advanced CLI Application Framework for Python. Its goal is to introduce a standard, and feature-full platform for both simple and complex command line applications as well as support rapid development needs without sacrificing quality.
Cement core features include (but are not limited to):
- Core pieces of the framework are customizable via handlers/interfaces
- Extension handler interface to easily extend framework functionality
- Config handler supports parsing multiple config files into one config
- Argument handler parses command line arguments and merges with config
- Log handler supports console and file logging
- Plugin handler provides an interface to easily extend your application
- Hook support adds a bit of magic to apps and also ties into framework
- Handler system connects implementation classes with Interfaces
- Output handler interface renders return dictionaries to console
- Cache handler interface adds caching support for improved performance
- Controller handler supports sub-commands, and nested controllers
- Zero external dependencies* (ext's with dependencies ship separately)
- 100% test coverage using Nose
- 100% PEP8 compliant using
pep8
andautopep8
tools - Extensive Sphinx documentation
- Tested on Python 2.6, 2.7, 3.1, and 3.2
Note that argparse is required as an external dependency for Python < 2.7 and < 3.2.
- DOCS: http://builtoncement.com/2.1/
- CODE: http://github.com/cement/
- PYPI: http://pypi.python.org/pypi/cement/
- SITE: http://builtoncement.com/
- T-CI: https://travis-ci.org/cement/cement
- HELP: [email protected] - #cement
The Cement CLI Application Framework is Open Source and is distributed under the BSD License (three clause). Please see the LICENSE file included with this software.