Skip to main content

A convenience class for providing default values for a django app setting.

Project description

PyPI version Build Status Coverage Status Downloads Supported Python versions License

django-pluggableappsettings

This app provides a baseclass to easily realize AppSettings for any django project. The advantage of using an AppSettings class lies in the possibility for the programmer to assign default values for settings if the setting is not present in the main settings.py

Attention: The project is fairly new and not stable yet.

Quick start

  1. Install django-pluggableappsettings

    • From the pip repository: pip install django-pluggableappsettings

    • or directly from github: `pip install git+git://github.com/NB-Dev/django-pluggableappsettings.git

  2. Create your AppSettings class in any of your project’s files. E.g. in ‘app_settings.py’.

  3. Define your settings by setting the class attributes as one of the provided settings types

    from django_pluggableappsettings import AppSettings, Setting
    
    class MyAppSettings(AppSettings):
        MY_SETTING = Setting('DEFAULT_VALUE')
  4. Access the setting from anywhere:

    from app_settings import MyAppSettings
    setting = MyAppSettings.MY_SETTING

Provided Setting Types

Three different setting types are provided with the package:

Setting

The most basic setting that simply returns the value from the settings.py or, if that is not set, the default value. If no default value is provided and the setting is not set in your settings.py, an AttributeError is thrown.

CallableSetting

Behaves as a Setting but checks whether the value is callable and calls it if possible before returning.

Attention: As each setting is only loaded once and then stored in a cache, the call is only performed on the first access of the setting.

ClassSetting

Behaves as a Setting but accepts only Classes or dotted paths to classes as values. If the value is a dotted path, the path is translated to a class before returning, so the returned value is always a class.

Accessing Values

You can access any setting by simply importing your AppSettings class and accessing the corresponding attribute.

Running the tests

The included tests can be run standalone by running the tests/runtests.py script. You need to have Django and mock installed for them to run. If you also want to run coverage, you need to install it before running the tests

CHANGELOG

v.0.2.0

  • Added the changelog

  • Redesign of settings to allow different types of settings that can now also provide type checking.

  • Settings are now explicitly defined and no _DEFAULT_ prefix is needed anymore

  • Also no staticmethod decorator is needed anymore

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

django-pluggableappsettings-0.2.0.tar.gz (5.5 kB view hashes)

Uploaded Source

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