Skip to main content

Python package to ease the configuration of packages

Project description

https://secure.travis-ci.org/kpn-digital/py-pkgsettings.svg?branch=master https://img.shields.io/codecov/c/github/kpn-digital/py-pkgsettings/master.svg https://img.shields.io/pypi/v/pkgsettings.svg https://readthedocs.org/projects/py-pkgsettings/badge/?version=latest

Goal

The goal of this package is to offer an easy, generic and extendable way of configuring a package.

Installation

$ pip install pkgsettings

Usage

from pkgsettings import Settings

# Create the settings object for your package to use
settings = Settings()

# Now lets defined the default settings
settings.configure(hello='World', debug=False)

By calling the configure you actually inject a layer of settings. When requesting a setting it will go through all layers until it finds the requested key.

Now if someone starts using your package it can easily modify the active settings of your package by calling the configure again.

from my_awesome_package.conf import settings

# Lets change the configuration here
settings.configure(debug=True)

Now from within your package you can work with the settings like so:

from conf import settings

print(settings.debug) # This will print: True
print(settings.hello) # This will print: World

It is also possible to pass an object instead of kwargs. The settings object will call getattr(ur_object, key) An example below:

class MySettings(object):
    def __init__(self):
        self.debug = True

settings = Settings()
settings.configure(MySettings())
print(settings.debug) # This will print: True

More advanced usage

The settings object can also be used as context manager:

with settings(debug=True):
    print(settings.debug) # This will print: True

print(settings.debug) # This will print: False

Additionally you can also use this as a decorator:

@settings(debug=True)
def go()
    print(settings.debug) # This will print: True

go()

print(settings.debug) # This will print: False

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pkgsettings, version 0.9.3
Filename, size File type Python version Upload date Hashes
Filename, size pkgsettings-0.9.3.tar.gz (12.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page