https://travis-ci.org/Dinoshauer/ImportConfig.svg?branch=master https://coveralls.io/repos/Dinoshauer/ImportConfig/badge.png https://pypip.in/version/ImportConfig/badge.svg?style=flat

Welcome to ImportConfig’s documentation!

JSON and YAML parsing with imports.

Installation:

pip install importconfig

The special thing about ImportConfig is that it supports a notion of “imports”. You can import other json files in your json file by specifying a “@file” value at any level in the config and it will be expanded into that level.

A config file can be loaded lazily and the main config file will only be loaded once it is called.

Note: keys/values defined in the top level document will take precedence over those loaded in sub-documents.

Example:

{
    "app_name": "foo",
    "logging": {
        "@file": "logging.json",
        "level": "debug"
    }
}

will translate into:

{
    "app_name": "foo",
    "logging": {
        "log_file": "/var/log/foo.log",
        "level": "debug"
    }
}

Contents of “logging.json”:

{
    "log_file": "/var/log/foo.log",
    "level": "info"
}

Todo

✓ Support relative paths for @file's value ✓ Root document take precedence if the same key exists in the imported file

Indices and tables