Skip to content
Snippets Groups Projects
conf.py 7.85 KiB
Newer Older
# -*- coding: utf-8 -*-
# All configuration values have a default; values that are commented out
# serve to show the default.

import sys
import os
from sphinx import __version__ as sphinx_version
import sphinx_bootstrap_theme # checked at cmake time
Martyn Gigg's avatar
Martyn Gigg committed
import mantid
from mantid.kernel import ConfigService
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
Martyn Gigg's avatar
Martyn Gigg committed
sys.path.insert(0, os.path.abspath(os.path.join('..', 'sphinxext')))

# -- General configuration ------------------------------------------------

if sphinx_version > "1.6":
    def setup(app):
        """Called automatically by Sphinx when starting the build process
        """
        app.add_stylesheet("custom.css")


# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
     # we use pngmath over mathjax so that the the offline help isn't reliant on
     # anything external and we don't need to include the large mathjax package
    'sphinx.ext.pngmath',
    'sphinx.ext.autodoc',
    'sphinx.ext.intersphinx',
    'sphinx.ext.doctest',
    'mantiddoc.directives',
    'mantiddoc.autodoc',
Martyn Gigg's avatar
Martyn Gigg committed
    'mantiddoc.doctest',
    'matplotlib.sphinxext.plot_directive'
]

# Add any paths that contain templates here, relative to this directory.
Martyn Gigg's avatar
Martyn Gigg committed
templates_path = ['_templates']

# The suffix of source filenames.
source_suffix = '.rst'

# The master toctree document.
master_doc = 'index'

# General information about the project.
project = u'MantidProject'
copyright = u'2015, Mantid'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
version_str = mantid.__version__
# The short X.Y version.
version = ".".join(version_str.split(".")[:2])
# The full version, including alpha/beta/rc tags.

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'

# -- Options for doctest --------------------------------------------------

# Store certain config options so they can be restored to initial
# settings after each test.
mantid_init_config_keys = ('datasearch.directories', 'defaultsave.directory',
                           'default.facility', 'default.instrument')
mantid_config_reset = ["_cfg['{0}'] = '{1}'".format(k, ConfigService.Instance()[k]) for k in mantid_init_config_keys]
mantid_config_reset = '\n'.join(mantid_config_reset)

# Run this before each test is executed
doctest_global_setup = """
from mantid.simpleapi import *
from mantid.kernel import ConfigService as _cfg
{0}

# doctest.py examines the global scope for future imports
# and uses the sames ones in the executing scope. We don't want the
# Python-3 style behaviour in the docs yet.
try:
    del print_function
    del absolute_import
    del division
    del unicode_literals
except NameError:
    pass

# Use legacy numpy printing. This fix is made to keep doctests functional.
# TODO: remove this workaround once minimal required numpy is set to 1.14.0
import numpy as np

    np.set_printoptions(legacy='1.13')
""".format(mantid_config_reset)
# Run this after each test group has executed
doctest_global_cleanup = """
from mantid.api import FrameworkManager
from mantid.kernel import MemoryStats

FrameworkManager.Instance().clear()
if MemoryStats().getFreeRatio() < 0.75:
    # sleep for short period to allow memory to be freed
    time.sleep(2)
# -- Options for pngmath --------------------------------------------------

# Load the preview package into latex
pngmath_latex_preamble=r'\usepackage[active]{preview}'

# Ensures that the vertical alignment of equations is correct.
# See http://sphinx-doc.org/ext/math.html#confval-pngmath_use_preview
pngmath_use_preview = True

Martyn Gigg's avatar
Martyn Gigg committed
# -- HTML output ----------------------------------------------------

# The theme to use for HTML and HTML Help pages.  See the documentation for
# a list of builtin themes.
html_theme = 'bootstrap'

# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()

# The "title" for HTML documentation generated with Sphinx' templates. This is appended to the <title> tag of individual pages
# and used in the navigation bar as the "topmost" element.
html_title = ""

# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
Martyn Gigg's avatar
Martyn Gigg committed
html_logo = os.path.relpath(os.path.join('..', '..', 'images', 'Mantid_Logo_Transparent.png'))

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
Martyn Gigg's avatar
Martyn Gigg committed
html_static_path = ['_static']

# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []

# If true, Smart Quotes will be used to convert quotes and dashes to
# typographically correct entities.
if sphinx_version < "1.7":
    html_use_smartypants = True
else:
    smartquotes = True

# Hide the Sphinx usage as we reference it on github instead.
html_show_sphinx = False

# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
# Add the last updated information to the bottom of pages.
html_last_updated_fmt = '%Y-%m-%d'
# -- Options for Epub output ---------------------------------------------------
# This flag determines if a toc entry is inserted again at the beginning of its nested toc listing.
# This allows easier navigation to the top of a chapter, but can be confusing because it mixes entries of different depth in one list.
# The default value is True.
epub_tocdup = True

#This setting control the scope of the epub table of contents
epub_tocscope = 'includehidden'

#The author of the document. This is put in the Dublin Core metadata. The default value is 'unknown'.
epub_author = "The Mantid Project"

#The publisher of the document. This is put in the Dublin Core metadata. You may use any sensible string, e.g. the project homepage.
epub_publisher = "The Mantid Project"

#An identifier for the document. This is put in the Dublin Core metadata.
#For published documents this is the ISBN number, but you can also use an alternative scheme, e.g. the project homepage.
#The default value is 'unknown'.
epub_identifier = "www.mantidproject.org"

#The publication scheme for the epub_identifier. This is put in the Dublin Core metadata.
#For published books the scheme is 'ISBN'. If you use the project homepage, 'URL' seems reasonable.
#The default value is 'unknown'.
epub_scheme='URL'

#A unique identifier for the document. This is put in the Dublin Core metadata. You may use a random string.
#The default value is 'unknown'.
epub_uid = "Mantid Reference: " + version
# -- Options for selected builder output ---------------------------------------
Martyn Gigg's avatar
Martyn Gigg committed
# Default is to use standard HTML theme unless the qthelp tag is specified
html_theme_cfg = 'conf-qthelp.py' if 'qthelp' in [k.strip() for k in tags.tags] else 'conf-html.py'
# Python 3 removed execfile...
exec(compile(open(html_theme_cfg).read(), html_theme_cfg, 'exec'))
Martyn Gigg's avatar
Martyn Gigg committed

# -- Link to other projects ----------------------------------------------------

intersphinx_mapping = {
    'h5py': ('http://docs.h5py.org/en/latest/', None),
    'matplotlib': ('http://matplotlib.org', None),
    'numpy': ('https://docs.scipy.org/doc/numpy/', None),
    'python': ('https://docs.python.org/3/', None),
    'SciPy': ('http://docs.scipy.org/doc/scipy/reference', None),
    'pandas': ('http://pandas.pydata.org/pandas-docs/stable', None)