conf.setup()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nop 1
dl 0
loc 15
rs 10
c 0
b 0
f 0
1
# -*- coding: utf-8 -*-
2
#
3
# Configuration file for the Sphinx documentation builder.
4
#
5
# This file does only contain a selection of the most common options. For a
6
# full list see the documentation:
7
# http://www.sphinx-doc.org/en/stable/config
8
9
# -- Path setup --------------------------------------------------------------
10
11
# If extensions (or modules to document with autodoc) are in another directory,
12
# add these directories to sys.path here. If the directory is relative to the
13
# documentation root, use os.path.abspath to make it absolute, like shown here.
14
#
15
import os
16
import sys
17
sys.path.insert(0, os.path.abspath('..'))
18
19
20
# -- Project information -----------------------------------------------------
21
22
project = 'Project Euler'
23
copyright = '2018, Bill Maroney'
24
author = 'Bill Maroney'
25
26
# The short X.Y version
27
version = ''
28
# The full version, including alpha/beta/rc tags
29
release = ''
30
31
32
# -- General configuration ---------------------------------------------------
33
34
# If your documentation needs a minimal Sphinx version, state it here.
35
#
36
# needs_sphinx = '1.0'
37
38
# Add any Sphinx extension module names here, as strings. They can be
39
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
40
# ones.
41
extensions = [
42
    'sphinx.ext.autodoc',
43
    'sphinx.ext.mathjax',
44
    'sphinxarg.ext',
45
    'sphinx_autodoc_typehints',
46
    'sphinx_dust',
47
    'sphinx_tabs.tabs',
48
]
49
50
# Add any paths that contain templates here, relative to this directory.
51
templates_path = ['_templates']
52
53
# The suffix(es) of source filenames.
54
# You can specify multiple suffix as a list of string:
55
#
56
# source_suffix = ['.rst', '.md']
57
source_suffix = '.rst'
58
59
# The master toctree document.
60
master_doc = 'index'
61
62
# The language for content autogenerated by Sphinx. Refer to documentation
63
# for a list of supported languages.
64
#
65
# This is also used if you do content translation via gettext catalogs.
66
# Usually you set "language" from the command line for these cases.
67
language = None
68
69
# List of patterns, relative to source directory, that match files and
70
# directories to ignore when looking for source files.
71
# This pattern also affects html_static_path and html_extra_path .
72
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
73
74
# The name of the Pygments (syntax highlighting) style to use.
75
pygments_style = 'sphinx'
76
77
78
# -- Options for HTML output -------------------------------------------------
79
80
# The theme to use for HTML and HTML Help pages.  See the documentation for
81
# a list of builtin themes.
82
#
83
html_theme = 'default'
84
html_style = '/default.css'
85
86
# Theme options are theme-specific and customize the look and feel of a theme
87
# further.  For a list of options available for each theme, see the
88
# documentation.
89
#
90
html_theme_options = {"body_min_width": "850px"}
91
92
# Add any paths that contain custom static files (such as style sheets) here,
93
# relative to this directory. They are copied after the builtin static files,
94
# so a file named "default.css" will overwrite the builtin "default.css".
95
html_static_path = ['_static']
96
97
# Custom sidebar templates, must be a dictionary that maps document names
98
# to template names.
99
#
100
# The default sidebars (for documents that don't match any pattern) are
101
# defined by theme itself.  Builtin themes are using these templates by
102
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
103
# 'searchbox.html']``.
104
#
105
# html_sidebars = {}
106
107
108
# -- Options for HTMLHelp output ---------------------------------------------
109
110
# Output file base name for HTML help builder.
111
htmlhelp_basename = 'ProjectEulerdoc'
112
113
114
# -- Options for LaTeX output ------------------------------------------------
115
116
latex_elements = {
117
    # The paper size ('letterpaper' or 'a4paper').
118
    #
119
    # 'papersize': 'letterpaper',
120
121
    # The font size ('10pt', '11pt' or '12pt').
122
    #
123
    # 'pointsize': '10pt',
124
125
    # Additional stuff for the LaTeX preamble.
126
    #
127
    # 'preamble': '',
128
129
    # Latex figure (float) alignment
130
    #
131
    # 'figure_align': 'htbp',
132
}
133
134
# Grouping the document tree into LaTeX files. List of tuples
135
# (source start file, target name, title,
136
#  author, documentclass [howto, manual, or own class]).
137
latex_documents = [
138
    (master_doc, 'ProjectEuler.tex', 'Project Euler Documentation',
139
     'Bill Maroney', 'manual'),
140
]
141
142
143
# -- Options for manual page output ------------------------------------------
144
145
# One entry per manual page. List of tuples
146
# (source start file, name, description, authors, manual section).
147
man_pages = [
148
    (master_doc, 'projecteuler', 'Project Euler Documentation',
149
     [author], 1)
150
]
151
152
153
# -- Options for Texinfo output ----------------------------------------------
154
155
# Grouping the document tree into Texinfo files. List of tuples
156
# (source start file, target name, title, author,
157
#  dir menu entry, description, category)
158
texinfo_documents = [
159
    (master_doc, 'ProjectEuler', 'Project Euler Documentation',
160
     author, 'ProjectEuler', 'One line description of project.',
161
     'Miscellaneous'),
162
]
163
164
165
# -- Extension configuration -------------------------------------------------
166
167
def setup(app):
168
    """ Code to run prior to building Sphinx documentation (i.e. validation test suite) """
169
170
    import os
171
    import pytest
172
173
    current_directory = os.getcwd()  # get the current working directory
174
175
    # Change the working directory to the base of the project and run the validation test suite
176
    os.chdir("..")
177
    pytest.main(["tests/validation_test.py"])
178
179
    os.chdir(current_directory)  # restore the current working directory to the previous location
180
181
    app.add_stylesheet("width_override.css")
182