Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A convenience utility for working with JSON config files.

Project Description

json_config

A convenience utility for working with JSON config files.

Features

  • Automatically syncs file on changes.
  • Automatically handles complicated nested data structures.
  • Designed to be easily extended. Use different serializer libraries to easily switch to yaml, ini, etc.
  • Lightweight (<5KB) and Fast.
  • Takes advantage of Python’s native dictionary syntax.
  • Tested against python 2.6, 2.7, 3.3, 3.4, 3.5, and PYPY!
  • Unit Tested with high coverage.
  • Idiomatic, self-descriptive code & api
>>> import json_config
>>> config = json_config.connect('categories.json')
>>> config
Connect({})
>>> config['comics']['dc']['batman']['antagonists'] = ['Scarecrow', 'The Joker', 'Bane']
>>> config['comics']['marvel']['ironman']['antagonists'] = 'Ultron'
>>> print(config.serialize())
{
  "comics": {
    "dc": {
      "batman": {
        "antagonists": [
          "Scarecrow",
          "The Joker",
          "Bane"
        ]
      }
    },
    "marvel": {
      "ironman": {
        "antagonists": "Ultron"
      }
    }
  }
}

Installation

At the command line either via easy_install or pip

$ pip install json_config
$ easy_install json_config

Or, if you have virtualenvwrapper installed

$ mkvirtualenv json_config
$ pip install json_config

Uninstall

$ pip uninstall json_config

Usage

To use json_config in a project:

import json_config

config = json_config.connect('config.json')
config['root'] = '/var/www/html/'

print(config['root'])
#OUT: '/var/www/html/'
config
#OUT:  Connect({'root': '/var/www/html/'})

Credits

Tools used in rendering this package:

History

Next Release

  • Stay tuned

2.0.0 (2016-01-01)

  • BREAKING: (Internal API) connect.block removed
  • BREAKING: (Internal API) connect.write_file renamed to connect.save
  • Feature: Rewrote the entire library to encapsulate logic
  • Feature: Extendable serializer contract, to allow any config format.
  • Feature: Upgrade to stable.
  • Feature: Removed threading in favor of a smarter locking mechanism
  • Feature: Add support for py26 and py35
  • Feature: Pin dependencies
  • Feature: Reorganized package and tests
  • Fix: Updated doc builds
  • Fix: Readme badge links
  • 2.0.1: Fix: Failed deploy (travis requirements)

1.2.0 (2015-05-18)

  • Feature: Improved compatibility to py27, py32, py33, py34, and pypy
  • Feature: Supports multiple config files.
  • Feature: Writes less, smarter logic on deciding if a write is necessary.
  • Feature: Delegates writes to a background process.
  • Testing: Renamed tests to be more descriptive of expectations.
  • Testing: Added a bunch of tests describing different scenarios.
  • Massive Refactoring

1.1.0 (2015-04-15)

  • Massive improvement to documentation and presentation.

1.0.0 (2015-04-13)

  • First working version.

0.1.0 (2015-04-11)

  • First release on PyPI.
Release History

Release History

This version
History Node

2.0.1

History Node

1.2.0

History Node

1.1.0

History Node

1.0.0

History Node

0.1.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
json_config-2.0.1-py2.py3-none-any.whl (9.7 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Jan 1, 2016
json_config-2.0.1.tar.gz (32.6 kB) Copy SHA256 Checksum SHA256 Source Jan 1, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting