Skip to main content
Build Status Test Coverage Documentation Status

cnfg

Simple configuration should be simple. Here’s example.py:

import cnfg
settings = cnfg.load('.examplerc')
print(settings['message'])

Relative paths are awful. Not all systems have /etc. The only reasonable place to put configuration is in your home directory.

JSON and YAML are not Python. eval is not so bad. Here’s .examplerc:

# It's Python, so you can use comments (and more)
{"message": "My custom message."}

Now all of these work, with relative directories as implied:

./example.py
python ../example.py
cat example/example.py | python

What about default settings?

It’s up to you, but it’s easy, especially if you’re keeping all your configuration in a dict:

settings = {"message": "Default message!"}
settings.update(cnfg.load('.examplerc'))

What about environment variables?

It’s up to you, but it’s easy:

import os
some_var = os.getenv("SOME_VAR", "some default value")

What about “from config import settings,” like confire?

It’s up to you, but it’s easy. Just make a file called config.py and define settings in it.

Where’s my home directory?

On a Mac or Linux machine, echo ~. On Windows, echo %userprofile%.

This is so abstract!

Check out the example.

This is so trivial!

Yes, it’s as simple as possible, and it’s useful all over the place and the right level of complexity for a lot of projects.

Release files for cnfg 1.0.0

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

Source distribution (sdist)

Source distribution for cnfg 1.0.0
File Size Uploaded
cnfg-1.0.0.tar.gz 3.1 kB Details

Release files / cnfg-1.0.0.tar.gz

Download URL cnfg-1.0.0.tar.gz
Size 3.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4f43ea123d149c6e38a301d55d95ae4821725aaab283ff27d71817675a944381
BLAKE2b-256 checksum
How to use checksums
0cc24cc9aa8c46660453279fd0f8576e490f0787d28e145de63367a3ce77fe16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

0.0.1

1 release file

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