107 lines
3.9 KiB
ReStructuredText
107 lines
3.9 KiB
ReStructuredText
|
.. topple documentation master file, created by
|
||
|
sphinx-quickstart on Sun Dec 15 23:37:44 2013.
|
||
|
You can adapt this file completely to your liking, but it should at least
|
||
|
contain the root `toctree` directive.
|
||
|
|
||
|
topple
|
||
|
======
|
||
|
|
||
|
Bigger projects cat get somewhat more complicated settings files. One
|
||
|
strategy from keeping required settings and installation-specific
|
||
|
settings apart may be to separate the two in different files. Whether
|
||
|
this is the case or not, topple might be able to help you.
|
||
|
|
||
|
topple tries to help you maintain this kind of file by allowing you to
|
||
|
specify a template of such a file, with some extra data such as a
|
||
|
predicate to check the value with, and generating and updating such
|
||
|
files from this template.
|
||
|
|
||
|
Configuration
|
||
|
-------------
|
||
|
|
||
|
Configuration is stored in a module named ``toppler``, unless a
|
||
|
``--module`` or ``-m`` argument was specified on the command line. An
|
||
|
example configuration might look like::
|
||
|
|
||
|
def boolp(val):
|
||
|
return isinstance(val, bool)
|
||
|
def integerp(val):
|
||
|
return isinstance(val, integer)
|
||
|
def stringp(val):
|
||
|
return isinstance(val, string)
|
||
|
def listp(val):
|
||
|
return isinstance(val, list)
|
||
|
|
||
|
OUTPUT_FILE = 'settings_local.py'
|
||
|
SETTINGS = [
|
||
|
('DEBUG', (boolp, True)),
|
||
|
('DEBUG_PROPOGATE_EXCEPTIONS', (boolp, True)),
|
||
|
('SITE_ID', (integerp, 1)),
|
||
|
('ALLOWED_HOSTS', (listp, ['.example.com']))
|
||
|
]
|
||
|
|
||
|
This file specifies a few predicates to check the types of the
|
||
|
settings. Any function returning a ``True`` or ``False`` value and
|
||
|
taking a single arguments (the value specified for the setting) can be
|
||
|
used. For example ``os.path.exists`` may be used to specify that the
|
||
|
value in a setting must be an existing path. It specifies that the
|
||
|
settings should be output to the file ``settings_local.py`` and that
|
||
|
it should have the ``DEBUG``, ``DEBUG_PROPOGATE_EXCEPTIONS``,
|
||
|
``SITE_ID`` and ``ALLOWED_HOSTS`` settings. It also specifies the
|
||
|
predicates to use to check the validity of each setting and their
|
||
|
initial values.
|
||
|
|
||
|
Command-line Usage
|
||
|
------------------
|
||
|
|
||
|
topple works through three main commands, ``generate``, ``update`` and
|
||
|
``check``. These commands are implemented by the following classes:
|
||
|
|
||
|
.. class:: Generate
|
||
|
|
||
|
Implements the ``generate`` command. This command turns the
|
||
|
template as found in the configuration file into a usable settings
|
||
|
file. The predicates aren't used at this point, it is not required
|
||
|
to specify valid options in the template, though it is important
|
||
|
for you to change these settings as soon as possible, otherwise you
|
||
|
won't be able to (fully) use the settings.
|
||
|
|
||
|
The ``generate`` command writes the settings to the ``OUTPUT_FILE``
|
||
|
as specified in the configuration file, unless the ``--preview`` (or
|
||
|
``-p``) option is given, in which case the settings are printed to
|
||
|
the standard output stream.
|
||
|
|
||
|
.. class:: Update
|
||
|
|
||
|
Implements the ``update`` command. This command reads the existing
|
||
|
``OUTPUT_FILE`` and the configuration and merges them. It leaves
|
||
|
existing settings as they are, but adds settings that are not yet
|
||
|
present in the ``OUTPUT_FILE``.
|
||
|
|
||
|
The ``update`` command writes the settings to the ``OUTPUT_FILE``
|
||
|
as specified in the cunfiguration file, unless the ``--preview``
|
||
|
(or ``-p``) option is given, in which case the settings are printed
|
||
|
to the standard output stream.
|
||
|
|
||
|
.. class:: Check
|
||
|
|
||
|
Implements the ``check`` command. This command reads the existing
|
||
|
``OUTPUT_FILE`` and the configuration and checks the validity of
|
||
|
the settings in ``OUTPUT_FILE``. For each setting that doesn't
|
||
|
match the given predicate an error message is printed, specifying
|
||
|
the setting, value and name of the predicate. For each setting that
|
||
|
has been specified in the configuration file that wasn't found in
|
||
|
the ``OUTPUT_FILE`` a message is printed stating that it is missing
|
||
|
from the ``OUTPUT_FILE``.
|
||
|
|
||
|
.. toctree::
|
||
|
:maxdepth: 2
|
||
|
|
||
|
|
||
|
|
||
|
Indices and tables
|
||
|
==================
|
||
|
|
||
|
* :ref:`genindex`
|
||
|
* :ref:`search`
|