Metadata-Version: 2.0
Name: flapjack-stack
Version: 1.0.0
Summary: A multi-layered approach to settings
Home-page: https://github.com/juiceinc/flapjack_stack
Author: Jason Myers
Author-email: jason.myers@juiceanalytics.com
License: License :: OSI Approved :: MIT License
Description-Content-Type: UNKNOWN
Keywords: settings flapjack_stack
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: PyYaml (==3.12)

flapjack_stack
==============

This provides a simple way to handle settings in a multi-layer fashion, which
allows you to composing settings by add in different configuration components.
It will read from files, objects, and environment variables.

Example Usage::

    from flapjack_stack import FlapjackStack
    settings = FlapjackStack()
    settings.add_layer_from_file('/path/to/our_file')
    settings.add_layer(thing)
    settings.add_layer_from_env()

Which will create a new FlapjackStack instance, then read settings in from
a file, then the thing object and finally from the environment. This would
result in a group of settings like:

===== ======
Layer Source
===== ======
3     loaded from env
2     loaded from thing object
1     loaded from '/path/to/our_file'
Base  Empty created during init
===== ======

And settings would be returned from the top to the bottom.  For example if we
had a setting called COOKIES in both the thing object and our_file, the one from
the thing object would be returned.

**NOTE**
``add_layer_from_env()`` only searchs for environment variables already in the
settings object regardless of their layer that are prefixed with an ``FJS_`` at
the moment it is called.  So if you add the variable later, it will not be seen.


