Skip to main content

A super simple JSON based configuration system.

Project description

pjconf

A simple configuration interface to use JSON files as configuration files.

Installation

PJC is installed via pip.

pip install pjconf

Usage

Loading configuration is straightforward, just import and point to your json file.

import pjconf as pjc

# Load a json file as a configuration dictionary.
config = pjc.load_config('config.json')

# or, load a configuration file with an optional default set of configuration elsewhere
config = pjc.load_config('defaults.json', 'config.json', ignore_missing=True)

Configuration files are loaded in a cascading sequence, multiple positional filepaths are loaded and override/update the previous keys. Setting ignore_missing=True will allow for a flexible resolve of optional configuration; disabling it will raise a FileNotFoundError on the first file it can't find.

Accessing configuration uses a get() method, with a cool dot-recursive syntax, optional defaults and runtime type-casting.

Let's assume the following configuration file.

{
    "opt1": true
    "opt2": 0.1
    "opt3": {
        "subopt1": "hello"
    } 
}

You can use the following syntax to access your configuration.

# Access a simple option
opt1 = config.get('opt1')
# True

# Access a recursive (nested) option
subopt1 = config.get('opt3.subopt1')
# "hello"

# Try to access a missing option, but provide a default
missing_opt = config.get('missing', default=True)
# True

# Runtime type-casting
opt2asint = config.get('opt2', cast=int)
# 0

For the last example, the cast argument takes a callable with a single parameter - you can be as simple or as complicated (i.e. lambdas or defined functions) as you like.

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

pjconf-1.0.0.tar.gz (3.9 kB view details)

Uploaded Source

File details

Details for the file pjconf-1.0.0.tar.gz.

File metadata

  • Download URL: pjconf-1.0.0.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for pjconf-1.0.0.tar.gz
Algorithm Hash digest
SHA256 430505161239edd9725d57be2beb6c8cc961fe9c41e2a9a4d2a3645212b18bc4
MD5 20e46eebf640b496f84f0a7b3a0750f1
BLAKE2b-256 5ec4612b600a3fcff8e766c03b3116e02835856ecedb131e8cdcb1958450450b

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