buildframework/helium/external/python/lib/common/Sphinx-0.5.1-py2.5.egg/sphinx/config.py
changeset 179 d8ac696cc51f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/external/python/lib/common/Sphinx-0.5.1-py2.5.egg/sphinx/config.py	Wed Dec 23 19:29:07 2009 +0200
@@ -0,0 +1,140 @@
+# -*- coding: utf-8 -*-
+"""
+    sphinx.config
+    ~~~~~~~~~~~~~
+
+    Build configuration file handling.
+
+    :copyright: 2008 by Georg Brandl.
+    :license: BSD license.
+"""
+
+import os
+from os import path
+
+
+class Config(object):
+    """Configuration file abstraction."""
+
+    # the values are: (default, needs fresh doctrees if changed)
+
+    # If you add a value here, don't forget to include it in the
+    # quickstart.py file template as well as in the docs!
+
+    config_values = dict(
+        # general options
+        project = ('Python', True),
+        copyright = ('', False),
+        version = ('', True),
+        release = ('', True),
+        today = ('', True),
+        today_fmt = (None, True),  # the real default is locale-dependent
+
+        language = (None, True),
+        locale_dirs = ([], True),
+
+        master_doc = ('contents', True),
+        source_suffix = ('.rst', True),
+        source_encoding = ('utf-8', True),
+        unused_docs = ([], True),
+        exclude_dirs = ([], True),
+        exclude_trees = ([], True),
+        exclude_dirnames = ([], True),
+        default_role = (None, True),
+        add_function_parentheses = (True, True),
+        add_module_names = (True, True),
+        show_authors = (False, True),
+        pygments_style = ('sphinx', False),
+        highlight_language = ('python', False),
+        templates_path = ([], False),
+        template_bridge = (None, False),
+        keep_warnings = (False, True),
+
+        # HTML options
+        html_title = (lambda self: '%s v%s documentation' %
+                                   (self.project, self.release),
+                      False),
+        html_short_title = (lambda self: self.html_title, False),
+        html_style = ('default.css', False),
+        html_logo = (None, False),
+        html_favicon = (None, False),
+        html_static_path = ([], False),
+        html_last_updated_fmt = (None, False),  # the real default is locale-dependent
+        html_use_smartypants = (True, False),
+        html_translator_class = (None, False),
+        html_sidebars = ({}, False),
+        html_additional_pages = ({}, False),
+        html_use_modindex = (True, False),
+        html_use_index = (True, False),
+        html_split_index = (False, False),
+        html_copy_source = (True, False),
+        html_use_opensearch = ('', False),
+        html_file_suffix = (None, False),
+        html_show_sphinx = (True, False),
+        html_context = ({}, False),
+
+        # HTML help only options
+        htmlhelp_basename = ('pydoc', False),
+
+        # LaTeX options
+        latex_documents = ([], False),
+        latex_logo = (None, False),
+        latex_appendices = ([], False),
+        latex_use_parts = (False, False),
+        latex_use_modindex = (True, False),
+        # paper_size and font_size are still separate values
+        # so that you can give them easily on the command line
+        latex_paper_size = ('letter', False),
+        latex_font_size = ('10pt', False),
+        latex_elements = ({}, False),
+        # now deprecated - use latex_elements
+        latex_preamble = ('', False),
+    )
+
+    def __init__(self, dirname, filename, overrides):
+        self.overrides = overrides
+        self.values = Config.config_values.copy()
+        config = {}
+        if dirname is not None:
+            config['__file__'] = path.join(dirname, filename)
+            olddir = os.getcwd()
+            try:
+                os.chdir(dirname)
+                execfile(config['__file__'], config)
+            finally:
+                os.chdir(olddir)
+        self._raw_config = config
+        # these two must be preinitialized because extensions can add their
+        # own config values
+        self.setup = config.get('setup', None)
+        self.extensions = config.get('extensions', [])
+
+    def init_values(self):
+        config = self._raw_config
+        config.update(self.overrides)
+        for name in config:
+            if name in self.values:
+                self.__dict__[name] = config[name]
+        del self._raw_config
+
+    def __getattr__(self, name):
+        if name.startswith('_'):
+            raise AttributeError(name)
+        if name not in self.values:
+            raise AttributeError('No such config value: %s' % name)
+        default = self.values[name][0]
+        if callable(default):
+            return default(self)
+        return default
+
+    def __getitem__(self, name):
+        return getattr(self, name)
+
+    def __setitem__(self, name, value):
+        setattr(self, name, value)
+
+    def __delitem__(self, name):
+        delattr(self, name)
+
+    def __contains__(self, name):
+        return name in self.values