Django composable settings loader.
Project description
Aims to compose your settings from python modules and python scripts in /etc.
In your my_app/settings/__init__.py call the loader:
from django_compose_settings import modules_loader locals().update(modules_loader(prefix='my_app', default='base,etc,post'))
In my_app/settings/base.py define default values as usual, ex:
import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # ...
In my_app/settings/etc.py call the etc loader:
from django_compose_settings import etc_loader locals().update(etc_loader(prefix='my_app'))
You can validate settings in my_app/settings/post.py as follow:
import __settings__ assert hasattr(__settings__, 'BASE_DIR'), 'BASE_DIR required'
Etc settings
Here is a sample tree of your /etc/my_app:
/etc/my_app/ ├── settings.d │ ├── 00_prod1.py │ └── 99_local.py └── settings.py
Each .py file is a regular composable settings file as post.py above.
MY_APP_SETTINGS
You can override your settings with a specific SETTINGS environment variable for your app as follow:
$ MY_APP_SETTINGS=base,post python >>> import logging >>> logging.basicConfig( ... level=logging.INFO, ... format='%(asctime)s %(levelname)-8s %(name)s %(message)s' ... ) >>> import os >>> import sys >>> sys.path.append(os.path.join(os.path.abspath('tests'), 'fixtures')) >>> from my_app import settings 2015-11-23 10:59:09,964 INFO django_compose_settings Loaded my_app.settings.base 2015-11-23 10:59:09,964 INFO django_compose_settings Loaded my_app.settings.post
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
File details
Details for the file django-compose-settings-0.4.tar.gz
.
File metadata
- Download URL: django-compose-settings-0.4.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7afd28aec95d6d9229842a17f0aed5c280b3c25af158168846e215381b004802 |
|
MD5 | fb514d8e81f8bdaa103eb19537a78d93 |
|
BLAKE2b-256 | 00d8faa9c24322b81940b2f6d05bc4618647e858a849d558799d0378cbfdbeb4 |