Package: loadconfig
loadconfig is a tool to simplify configuration managementWe live in an incredible moment in software history. As never before, the
quality and quantity of excellent open source software have unleashed massive
advances in pretty much all fields of human knowledge. It is overwhelming to
have such vast posibilities, and often having a hard time trying to understand
how the pieces fit together. More importantly, we are concern on how can we use
the software for things that matter to us.Plenty of times we find what is really needed is a small custom configuration
we can easily understand and a handful ways to run the software. And although
we barely think about it as we are too busy trying to understand all the bells
and whistles, the interface and documentation is at the center of any software.loadconfig syntax is designed to be clean and DRY, to foster descriptive
programming, and to leverage version control systems. loadconfig can be used
as a light wrapper around programs to make them behave and to document them
the way we designed.>>>fromloadconfigimportConfig>>>c=Config('greeter: Hi there')>>>c{greeter:Hithere}>>>c.greeter'Hi there'$loadconfig-E="greeter: Welcome to the loadconfig documentation"exportGREETER="Welcome to the loadconfig documentation"Technical descriptionloadconfig dynamically creates a python configuration ordered dictionary from
sources like the command line, configuration files and yaml strings that can
be used in python code and shell scripts. Dependencies are pyyaml and clg.InstallationInstallation is straightforward using a wheel from pypi:pip install loadconfigAlternatively, install from github:pip install git+https://github.com/mzdaniel/loadconfigLocal test/buildAssumptions for this section: A unix system, python2.7 or 3.4, and pip >= 6.1.
Although git is recommended, it is not required.loadconfig is hosted on github:# Download the project using gitgitclonehttps://github.com/mzdaniel/loadconfigcdloadconfig# or from a tarballwget-O-https://github.com/mzdaniel/loadconfig/archive/0.1.tar.gz|tarxzcdloadconfigFor a simple way to run the tests with minimum dependencies, tests/runtests.sh
is provided.
Note: python programs and libraries depend on the environment where it is run.
At a minimun, it is adviced to run the tests and build process in a virtualenv.
tox is the recommended way to run loadconfig tests and build its package:# Install loadconfig dependencies and pytestpipinstall-rrequirements.txtpytest# Run the tests./tests/runtests.shFor building a universal pip installable wheel, pbr is used:# Install setup.py dependencies if needed.pipinstallpbrwheel# Build loadconfig packagepythonsetup.pybdist_wheelWe use tox to test loadconfig in virtualenvs for both python2.7 and python3.4.Toxis a generic virtualenv management and test command line tool. It
handles the creation of virtualenvs with proper python dependencies for
testing, pep8 checking, coverage and building:# Install the only tox dependency if needed (tox takes care of any other
# needed dependency using pip)pipinstalltox# Run tests, create coverage report and build universal loadconfig package
# loadconfig package is left in dist/toxIf you are curious,loadconfig buildbotcontinuos integration server shows
the tox tests and build runs for each commit and pull requests done in the
loadconfig repo.SecurityDisclosure: loadconfig is meant for both flexibility and productivity.
It does not attempt to be safe with untrusted input. There are ways (linux
containers, PyPy’s sandboxing) that can be implemented for such environments
and left for the user to consider.Thanks!Guido van RossumandLinus TorvaldsRaymond Hettinger and Armin Ronacher forOrderedDictClark Evans and Kirill Simonov forYAMLandPyYAMLimplementationSteven Bethard and François Ménabé forargparseandCLGimplementationsDavid Goodger & Georg Brandl forreStructuredTextandSphinxSolomon Hykes, Jerome Petazzoni and Sam Alba forDockerThe awesome Python, Linux and Git communities