Skip to main content

Build Status Dependency Updates Coverage Status Version Status

Configuration doesn’t get any easier than this …

pip install jsonconfig-tool

What’s it Used For?

  • Managing settings, configuration information, application data, etc.

  • Managing secrets, tokens, keys, passwords, etc.

  • Managing environment settings.

Basic Example

with Config('myapp') as cfg:
    cfg.data = 'Any JSON serializable object ...'
    cfg.pwd.a_secret = 'Encrypted data ...'
    cfg.env.a_variable = 'Environment variables.'

Additional Examples can be found in the documentation [1].

Simply Sane

No magic here

Configuration File Locations

Click [2] is the package used to determine the default application directory.

The default behavior is to return whatever is most appropriate for the operating system. To give you an idea, an app called Foo Bar would likely return the following:

Mac OS X:
~/Library/Application Support/Foo Bar

Mac OS X (POSIX):
~/.foo-bar

Unix:
~/.config/foo-bar

Unix (POSIX):
~/.foo-bar

Win XP (roaming):
C:\Documents and Settings\<user>\Local Settings\Application Data\Foo Bar

Win XP (not roaming):
C:\Documents and Settings\<user>\Application Data\Foo Bar

Win 7+ (roaming):
C:\Users\<user>\AppData\Roaming\Foo Bar

Win 7+ (not roaming):
C:\Users\<user>\AppData\Local\Foo Bar

Of course, you or the user are free to override this behavior and set the location to wherever you want.

Encryption Backends

Keyring [3] is the package used to manage encryption.

The default behavior is to select the most secure backend supported by the user’s platform. To give you an idea, the following Keyring backends would likely be returned:

Mac OS X:

Keychain [5]

Unix (with secretstorage installed):

Secret Service [6]

Unix (with dbus installed):

kwallet [7]

Windows:

Windows Credential Locker [8]

Of course, you or the user are free to override the defaults. The user can also change their Keyring backend preferences system-wide from the command-line or via configuration files. JSON Config will then use the user’s preferred Keyring backend unless told otherwise.

How Do You Want Your Data Served?

Box [4] is the package used to handle the data access wrappers.

PLAIN

No wrapping. Organic, free-ranging data. If it’s JSON serializable we’ll work with it. This is the default.

BOXED

Delivers your data in a Box [4]; a Python dictionary that supports both recursive dot notation access and standard dictionary key access. If you have a fear of being boxed-in, don’t panic! You can get in and out of the box at anytime, see the data conversion section below.

FROZEN

Ices the data in a Frozen Box, same as BOXED except immutable; will also be hashable if all objects in it are immutable.

NESTED

Nests the data in a default dictionary that can automatically create missing intermediary keys. It’s also very forgiving when retrieving data from the dictionary; for example, it won’t throw an error if a key doesn’t exist. Instead, it’ll return None; even if the key’s nested and multiple keys are missing.

Data Conversion

  • BOXED, FROZEN and NESTED are all subclasses of dicts or defaultdicts. You can convert back-and-forth between any of them at any time.

  • The objects listed above are Mappings, if your data object is not a Mapping then use PLAIN to free yourself of all of the trappings. With PLAIN it’s just you and your buddy Python; we get out of the way.

JSON Config Frees You to Do What You Do Best

Spend more time solving real-world problems, less time coding, testing & troubleshooting configuration issues.

References

Release files for jsonconfig-tool 1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonconfig-tool 1.5
File Size Uploaded
jsonconfig-tool-1.5.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jsonconfig-tool 1.5
File Interpreter ABI Platform
jsonconfig_tool-1.5-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size:20.2 kB

Release files / jsonconfig-tool-1.5.tar.gz

Download URL jsonconfig-tool-1.5.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8858da410e735dd35c3cbfd5658a2bf437fa9f5479d22053b7b60b68f2dec3d4
BLAKE2b-256 checksum
How to use checksums
693ce39567f03693fffadaf4a6342ccd0ed6f66e5add106ae30d8312b2e1acb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / jsonconfig_tool-1.5-py2.py3-none-any.whl

Download URL jsonconfig_tool-1.5-py2.py3-none-any.whl
Size 8.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
7ef48839cc65661ae794b65245f3ab77be8e36d7e561e0bc2c0c646ba27777ec
BLAKE2b-256 checksum
How to use checksums
cab1b11d6539e0030b507d41f41f4bf0c5e0b3ca284a4565e17239443d7fb726
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.5 This release

2 release files

1.4

2 release files

1.3

2 release files

1.2

2 release files

1.1

1 release file

1.0

1 release file

0.9

2 release files

0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page