Skip to main content

Application configuration engine

Project description

Python helper class to ingest and serialize app-specific configuration

Provides a self-contained (no dependencies outside the standard library), Python 2 and 3 compatible configuration manager. Automatically saves and restores your application’s configuration in your user home directory. Uses JSON or (optionally) YAML for serialization. Supports dict-like methods and access semantics.

Installation

If your package does not permit dependency management, you can copy the Config class directly into your application from https://github.com/kislyuk/tweak/blob/master/tweak/__init__.py. Otherwise:

pip install tweak

Synopsis

from tweak import Config

config = Config()
config.host, config.port = "example.com", 9000
config.nested_config = {}
config.nested_config.foo = True

After restarting your application:

config = Config()
print(config)
>>> {'host': 'example.com', 'port': 9000, 'nested_config': {'foo': True}}

Using an argparse.Namespace object returned by argparse.parse_args():

parser = argparse.ArgumentParser()
...
args = parser.parse_args()
if args.foo is not None:
    config.foo = args.foo
elif "foo" not in config:
    raise Exception("foo unconfigured")

config.update(vars(args))

Using YAML:

config = Config(use_yaml=True)
...

Pass Config(save_on_exit=False) to disable automatic configuration saving on Python shutdown (this is useful if you only want to read the config, never write it, or if you want to call config.save() manually). Pass Config(autosave=True) to make save() run any time an assignment happens to a config object.

Authors

  • Andrey Kislyuk

License

Licensed under the terms of the Apache License, Version 2.0.

https://travis-ci.org/kislyuk/tweak.png https://img.shields.io/coveralls/kislyuk/tweak.svg https://img.shields.io/pypi/v/tweak.svg https://img.shields.io/pypi/dm/tweak.svg https://img.shields.io/pypi/l/tweak.svg https://readthedocs.org/projects/tweak/badge/?version=latest

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

tweak-0.1.2.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

tweak-0.1.2-py2.py3-none-any.whl (6.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file tweak-0.1.2.tar.gz.

File metadata

  • Download URL: tweak-0.1.2.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tweak-0.1.2.tar.gz
Algorithm Hash digest
SHA256 db38747296707b291ad3c3088dc72147e6a860655a721602acf0d7498c1ed491
MD5 fe29e33ce9b9ca78b24b01e70a389ec0
BLAKE2b-256 214b8e3e3aa6877862bbe941328659f113c6b340a93377e9ca4ee94cce5db695

See more details on using hashes here.

File details

Details for the file tweak-0.1.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tweak-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3207620885912ef56048e7c2960601c08ed1a9b0d941f39339c883ef5ee383ef
MD5 10c3b44c2c552ed61ffcf288213d72f6
BLAKE2b-256 a22fa15e5553b21bb5a1c65969ee907e966de142c382dd93eb9690745a79c3ec

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