Metadata-Version: 1.1
Name: django-kungfu
Version: 0.2
Summary: A Flasky approach to distributed Django configuration
Home-page: https://github.com/delinhabit/django-kungfu
Author: Ion Scerbatiuc
Author-email: delinhabit@gmail.com
License: BSD
Description: django-kungfu
        =============
        
        ``django-kungfu`` provides the ability to set-up the Django configuration
        mechanism so it's fairly easy to integrate development or deployment-related 
        settings overrides.
        
        The idea came after I used for a while the beatiful configuration system 
        implemented in `Flask
        <http://flask.pocoo.org/>`_. In fact, the majority of the code was inspired
        by the Flask implementation located `here
        <https://github.com/mitsuhiko/flask/blob/master/flask/config.py>`_.
        
        Usage by example
        ================
        
        The integration with your Django project is fairly easy and depends on your
        preferences. One possible set-up could look like this::
        
            # At the bottom of your/settings.py file just add the following lines
            from django_kungfu import Configurator
            config = Configurator(locals())
            config.from_pyfile(os.path.join(os.path.dirname(__file__), 'dev_settings.py'))
            config.from_envvar('DJANGO_SETTINGS_OVERRIDE')
        
        In short, this is what happens when the django settings file is loaded:
        # if the dev_settings.py file is found in the same directory as the settings file,
        all the upper-case constants are loaded into local context overriding the existing
        ones
        # if the DJANGO_SETTINGS_OVERRIDE environment variable is set and is pointing to
        a valid configuration file, that configuration file is loaded in the same way
        
        By default, if the specified files or environment variables are not found or
        are not valid, the configurator will fail silently. This is useful for example
        when using development settings which are not available in a production system 
        and we want to keep a single settings file as a configuration entry point.
        
        If you want to enforce the presence of a particular configuration file or
        environment variable you can use ``silent=False`` with the respective
        methods.
        
        Having this configuration, you can easily set-up a production environment
        by setting the appropriate environment variable in you production wsgi file::
        
            # prod.wsgi
            import os
        
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
            os.environ.setdefault("DJANGO_SETTINGS_OVERRIDE",
                                  os.path.expanduser("~/etc/myproject/prod_settings.py"))
        
            from django.core.wsgi import get_wsgi_application
            application = get_wsgi_application()
        
        Why kungfu?
        ===========
        
        This name was selected because kungfu pronounced in my natal language (a regional 
        dialect of Romanian) sounds similar to config (confu). And of course my sympathy for martial 
        arts, and especially for kung fu, brought a few points.
        
Keywords: django settings overrides flasky
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
