Introduction¶
The advanced configuration manager came from working on a project and realizing how important it was to deal with configuration and settings, how many different places those settings were stored, how how complex it was to handle them. I started out using a collection of tools (mostly execllent) to do this, including CLINT for CLI, ConfigParser for configuration files, setting and setup files for global vars, and various custom scripts for other things. I found that I was often pulling the same kinds of things together, but there did not seem to be a package out there that handled the entire thing.
Features¶
- The Advanced Configuration Manager will provide the following features:
- defining configuration options within your modules
- ease of access to options within your system
- support for plugins to your system
- storage of configuration options in multiple places
- handling configuration options read from multiple places
- default options
- user changable options
- locked options (non-changeable)
- entry validation
- interpolation of variables
- clean API for adding features
- upgrade / downgrade scripts for fixing configs
- The API allows for easilly adding the following items:
- new configuration datatypes
- new validations
- new storage methods and systems
Requirements¶
At this point, this only works with python 3.4. It should be pretty easy to backport it to other 3.x versions, and I dont think it woudl be a major job to port to 2.x if there was enough call for it.
Todo
- logging and auditing
- lightweight configuration reader, heavy manager.
- support for authentication systems