Metadata-Version: 1.1
Name: django-settings-file
Version: 1.0.0
Summary: Let Django use settings from an arbitrary Python file instead of an importable module
Home-page: https://github.com/adamchainz/django-settings-file
Author: Adam Johnson
Author-email: me@adamj.eu
License: ISC
Description: django-settings-file
        ====================
        
        Let Django use settings from an arbitrary Python file instead of an importable module.
        
        As per `James Pic's idea posted on the django-developers mailing list
        <https://groups.google.com/forum/#!msg/django-developers/mzkwaGQtpOk/LZkxLUMwBQAJ>`_.
        
        Usage
        -----
        
        1. Install with ``pip install django-settings-file``.
        
        2. Edit your ``manage.py`` and ``wsgi.py`` to swap out Django's default logic for setting ``DJANGO_SETTINGS_MODULE`` to
           instead do:
        
           .. code-block:: python
        
               import django_settings_file
               django_settings_file.setup()
        
        3. Add ``os.environ.setdefault('DJANGO_SETTINGS_FILE', '/path/to/default.py')`` before the ``setup()`` call, unless you
           can be sure ``DJANGO_SETTINGS_FILE`` will always be defined in your environment. You might need to figure out the
           path relative to your ``manage.py`` with some ``os.path`` manipulation.
        
        4. Run it! If ``DJANGO_SETTINGS_MODULE`` is defined, it will raise a ``DjangoSettingsFileError`` with a message about
           how only ``DJANGO_SETTINGS_FILE`` is allowed now. If ``DJANGO_SETTINGS_FILE`` is not defined, it will also fail with
           a ``DjangoSettingsFileError`` with a message about defining it. Otherwise Django should start with the settings!
        
        How it works
        ------------
        
        ``django-settings-file`` imports the contents of the specified file using the import machinery available on your Python
        version (different logic for 2 and 3) and copies it contents into its own module, which Django sees as the settings
        file defined via the traditional ``DJANGO_SETTINGS_MODULE``. Nothing about Django is really touched, it's just a
        hacky module.
        
        Caveats
        -------
        
        * If the Python file defined by ``DJANGO_SETTINGS_FILE`` tries to do any imports, the directory the file is in will not
          be on ``PYTHONPATH``, so the author of the settings file might get some surprises.
        * Additionally, you might experience other problems from loading a file whilst it's not on ``PYTHONPATH``.
        * If you want your settings file to extend another one, it will probably find it easiest to ``import`` the base one
          from a location on ``PYTHONPATH``, otherwise it too will have to do use the same import 'hacks' to load the default
          settings.
        * File paths are not portable between operating systems, so you may need logic to support both Unix and Windows at
          once.
        * ``DJANGO_SETTINGS_MODULE`` and ``DJANGO_SETTINGS_FILE`` can't both be used by the same project, since the module is
          required for the file-based logic. You might be able to allow them both with extra logic, pull requests accepted.
        * ``¯\_(ツ)_/¯`` - this is kind of unknown territory, this library has not been tested in any real project, just with
          the example project in the test folder.
        
        
        History
        =======
        
        Pending release
        ---------------
        
        .. Insert new release notes below this line
        
        1.0.0 (2017-04-14)
        ------------------
        
        * First version, supporting ``DJANGO_SETTINGS_FILE`` instead of
          ``DJANGO_SETTINGS_MODULE``
        
Keywords: D,j,a,n,g,o
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django :: 1.8
Classifier: Framework :: Django :: 1.9
Classifier: Framework :: Django :: 1.10
Classifier: Framework :: Django :: 1.11
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
