.. image:: https://badge.fury.io/py/kwconfig.svg
:target: https://badge.fury.io/py/kwconfig
.. image:: https://img.shields.io/github/issues/rrwen/kwconfig.svg
:target: https://github.com/rrwen/kwconfig/issues
.. image:: https://travis-ci.org/rrwen/kwconfig.svg?branch=master
:target: https://travis-ci.org/rrwen/kwconfig
.. image:: https://coveralls.io/repos/github/rrwen/kwconfig/badge.svg?branch=master
:target: https://coveralls.io/github/rrwen/kwconfig?branch=master
.. image:: https://img.shields.io/badge/license-MIT-blue.svg
:target: https://raw.githubusercontent.com/rrwen/kwconfig/master/LICENSE
.. image:: https://img.shields.io/github/forks/rrwen/kwconfig.svg
:target: https://github.com/rrwen/kwconfig/network
.. image:: https://img.shields.io/github/stars/rrwen/kwconfig.svg
:target: https://github.com/rrwen/kwconfig/stargazers
.. image:: https://img.shields.io/twitter/url/https/github.com/rrwen/kwconfig.svg?style=social
:target: https://twitter.com/intent/tweet?text=simple%20%23python%20%23package%20for%20keyword%20%23json%20%23configuration:%20https://github.com/rrwen/kwconfig
Install
- Install
Python <https://www.python.org/downloads/>
_
- Install
kwconfig <https://pypi.python.org/pypi/kwconfig>
_ via pip
::
pip install kwconfig
For the latest developer version, see Developer Install
_.
Usage
.. code-block:: python
import kwconfig
Specify a file path for creating kwconfig object
config = kwconfig.manage('config.json', defaults={'key0': 'value0'})
Update the config file with a key and value dict
config.update({'key1': 'value1', 'key2': 'value2'})
Add a keyword dict to existing config file
If a key exists, it will be updated
If a key does not exist, it will be added
other_config = {'key3': 'value3'}
other_config = config.add(other_config)
Write new values using keyword dict
config.overwrite({
'new_key1': 'new_value1',
'new_key2': 'new_value2'
})
Obtain a dict of the config file contents
kw = config.read()
Remove the key named "key1"
config.remove('key1')
Reset to defaults
config.reset()
Parsing a keyword list into dict ----
Create a sample list of keyword arguments
argv = ['--key1=value1', '--key2=value2']
Parse into a keyword dict
kwdict = kwconfig.parse(argv)
View the values of key1 and key2
print('key1: ' + kwdict['key1'])
print('key2: ' + kwdict['key2'])
For more usage details, see the Documentation <https://rrwen.github.io/kwconfig>
_.
Developer Notes
Developer Install
Install the latest developer version with pip
from github::
pip install git+https://github.com/rrwen/kwconfig
Install from git
cloned source:
- Ensure
git <https://git-scm.com/>
_ is installed
- Clone into current path
- Install via
pip
::
git clone https://github.com/rrwen/kwconfig
cd kwconfig
pip install . -I
Tests
- Clone into current path
git clone https://github.com/rrwen/kwconfig
- Enter into folder
cd kwconfig
- Ensure
unittest <https://docs.python.org/2.7/library/unittest.html>
_ is available
- Run tests
::
pip install . -I
python -m unittest
Documentation Maintenance
- Ensure
sphinx <https://github.com/sphinx-doc/sphinx/>
_ is installed pip install -U sphinx
- Update the documentation in
docs/
::
pip install . -I
sphinx-build -b html docs/source docs
Upload to Github
- Ensure
git <https://git-scm.com/>
_ is installed
- Add all files and commit changes
- Push to github
::
git add .
git commit -a -m "Generic update"
git push
Upload to PyPi
- Ensure
twine <https://pypi.python.org/pypi/twine>
_ is installed pip install twine
- Ensure
sphinx <https://github.com/sphinx-doc/sphinx/>
_ is installed pip install -U sphinx
- Run tests and check for OK status
- Delete
dist
directory
- Update the version in
kwconfig/__init__.py
- Update the documentation in
docs/
- Create source distribution
- Upload to
PyPi <https://pypi.python.org/pypi>
_
::
pip install . -I
python -m unittest
sphinx-build -b html docs/source docs
python setup.py sdist
twine upload dist/*