Skip to main content

A Python module for managing config files in keyword style json format.

Project description

https://badge.fury.io/py/kwconfig.svg https://img.shields.io/github/issues/rrwen/kwconfig.svg https://travis-ci.org/rrwen/kwconfig.svg?branch=master https://coveralls.io/repos/github/rrwen/kwconfig/badge.svg?branch=master https://img.shields.io/badge/license-MIT-blue.svg https://img.shields.io/github/forks/rrwen/kwconfig.svg https://img.shields.io/github/stars/rrwen/kwconfig.svg https://img.shields.io/twitter/url/https/github.com/rrwen/kwconfig.svg?style=social

Install

  1. Install Python

  2. Install kwconfig via pip

pip install kwconfig

For the latest developer version, see Developer Install.

Usage

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.

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:

  1. Ensure git is installed

  2. Clone into current path

  3. Install via pip

git clone https://github.com/rrwen/kwconfig
cd kwconfig
pip install . -I

Tests

  1. Clone into current path git clone https://github.com/rrwen/kwconfig

  2. Enter into folder cd kwconfig

  3. Ensure unittest is available

  4. Run tests

pip install . -I
python -m unittest

Documentation Maintenance

  1. Ensure sphinx is installed pip install -U sphinx

  2. Update the documentation in docs/

pip install . -I
sphinx-build -b html docs/source docs

Upload to Github

  1. Ensure git is installed

  2. Add all files and commit changes

  3. Push to github

git add .
git commit -a -m "Generic update"
git push

Upload to PyPi

  1. Ensure twine is installed pip install twine

  2. Ensure sphinx is installed pip install -U sphinx

  3. Run tests and check for OK status

  4. Delete dist directory

  5. Update the version in kwconfig/__init__.py

  6. Update the documentation in docs/

  7. Create source distribution

  8. Upload to PyPi

pip install . -I
python -m unittest
sphinx-build -b html docs/source docs
python setup.py sdist
twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kwconfig-1.1.7.tar.gz (4.8 kB view details)

Uploaded Source

File details

Details for the file kwconfig-1.1.7.tar.gz.

File metadata

  • Download URL: kwconfig-1.1.7.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for kwconfig-1.1.7.tar.gz
Algorithm Hash digest
SHA256 735b3cb21198f4bd2acaff7dcae97b3b0fcb765d73234a0afa635f94e9298e5f
MD5 c5dc96dc0ca1b84119da302720ad97f2
BLAKE2b-256 474987ca96c4c299d24700daf45f4bb8d900b05e15e8c48179b13008fc29c509

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page