Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Sparse JSON based config files with GUI editor.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 jsonConfig
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README
Octocat-spinner-32 Readme.rst
Octocat-spinner-32 setup.py
Readme.rst

jsonConfig

jsonConfig is a Python package that provides sparse JSON based config files with GUI editor. The config files are referred to as being sparse because only those settings which are different than the default values are stored in the config files. Default config options are defined programmatically which allows defaults to be updated with out overwriting a users options.

Usage

Creating defaults

from jsonConfig import *

cfg = Config()
cfg.add_setting( 'Category 1', 'option1', 'Value1', alias = 'Option #1', options = ['Value1', 'Value2'], type = CT_COMBO, about = 'An example option.' )
cfg.add_setting( 'Category 1', 'option2', True, alias = 'Option #2', type = CT_CHECKBOX )
cfg.add_setting( 'Category 2', 'option1', 'value', type = CT_LINEEDIT)

Accessing values

>>> cfg
{'Category 2': {'option1': 'value'}, 'Category 1': {'option2': True, 'option1': 'Value1'}}

>>> cfg['Category 1']['option1']
'Value1'

Loading config file

config.json

{
  "Category 1": {
    "option1": {
      "value": "Value2"
    }
  }
}
cfg.set_user_file("config.json")
>>> cfg
{'Category 2': {'option1': 'value'}, 'Category 1': {'option2': True, 'option1': 'Value2'}}

GUI Editor

from PySide.QtGui import *
from jsonConfig import ConfigEditor

app = QApplication([])
editor = ConfigEditor(app, cfg, 'Demo Config Editor')
editor.setup()
app.exec_()
http://ompldr.org/vZnRscg
Something went wrong with that request. Please try again.