doc:source:conf.py: mock numpy module for read-the-docs
[FFT-tools.git] / doc / source / conf.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 #
4 # FFT-tools documentation build configuration file, created by
5 # sphinx-quickstart on Mon Nov 19 01:53:51 2012.
6 #
7 # This file is execfile()d with the current directory set to its containing dir.
8 #
9 # Note that not all possible configuration values are present in this
10 # autogenerated file.
11 #
12 # All configuration values have a default; values that are commented out
13 # serve to show the default.
14
15 import os
16 import sys
17
18 # If extensions (or modules to document with autodoc) are in another directory,
19 # add these directories to sys.path here. If the directory is relative to the
20 # documentation root, use os.path.abspath to make it absolute, like shown here.
21 #sys.path.insert(0, os.path.abspath('.'))
22 _this_dir = os.path.dirname(os.path.abspath(__file__))
23 _doc_dir = os.path.dirname(_this_dir)
24 _base_dir = os.path.dirname(_doc_dir)
25 sys.path.insert(0, _base_dir)
26
27 # -- General configuration -----------------------------------------------------
28
29 # If your documentation needs a minimal Sphinx version, state it here.
30 #needs_sphinx = '1.0'
31
32 # Add any Sphinx extension module names here, as strings. They can be extensions
33 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
34 extensions = [
35     'sphinx.ext.autodoc',
36     'sphinx.ext.autosummary',
37     'sphinx.ext.doctest',
38     'sphinx.ext.intersphinx',
39     'sphinx.ext.pngmath',
40     #'numpydoc',
41     ]
42
43 autosummary_generate = True
44 autodoc_default_flags = ['members']
45
46 # Add any paths that contain templates here, relative to this directory.
47 templates_path = ['_templates']
48
49 # The suffix of source filenames.
50 source_suffix = '.rst'
51
52 # The encoding of source files.
53 #source_encoding = 'utf-8-sig'
54
55 # The master toctree document.
56 master_doc = 'index'
57
58 # General information about the project.
59 project = 'FFT-tools'
60 author = 'W. Trevor King'
61 copyright = '2008-2012, {}'.format(author)
62
63 # The version info for the project you're documenting, acts as replacement for
64 # |version| and |release|, also used in various other places throughout the
65 # built documents.
66 #
67 # The short X.Y version.
68 version = '0.4'
69 # The full version, including alpha/beta/rc tags.
70 release = version
71
72 # The language for content autogenerated by Sphinx. Refer to documentation
73 # for a list of supported languages.
74 #language = None
75
76 # There are two options for replacing |today|: either, you set today to some
77 # non-false value, then it is used:
78 #today = ''
79 # Else, today_fmt is used as the format for a strftime call.
80 #today_fmt = '%B %d, %Y'
81
82 # List of patterns, relative to source directory, that match files and
83 # directories to ignore when looking for source files.
84 exclude_patterns = []
85
86 # The reST default role (used for this markup: `text`) to use for all documents.
87 #default_role = None
88
89 # If true, '()' will be appended to :func: etc. cross-reference text.
90 #add_function_parentheses = True
91
92 # If true, the current module name will be prepended to all description
93 # unit titles (such as .. function::).
94 #add_module_names = True
95
96 # If true, sectionauthor and moduleauthor directives will be shown in the
97 # output. They are ignored by default.
98 #show_authors = False
99
100 # The name of the Pygments (syntax highlighting) style to use.
101 pygments_style = 'sphinx'
102
103 # A list of ignored prefixes for module index sorting.
104 #modindex_common_prefix = []
105
106
107 # -- Options for HTML output ---------------------------------------------------
108
109 # The theme to use for HTML and HTML Help pages.  See the documentation for
110 # a list of builtin themes.
111 html_theme = 'default'
112
113 # Theme options are theme-specific and customize the look and feel of a theme
114 # further.  For a list of options available for each theme, see the
115 # documentation.
116 #html_theme_options = {}
117
118 # Add any paths that contain custom themes here, relative to this directory.
119 #html_theme_path = []
120
121 # The name for this set of Sphinx documents.  If None, it defaults to
122 # "<project> v<release> documentation".
123 #html_title = None
124
125 # A shorter title for the navigation bar.  Default is the same as html_title.
126 #html_short_title = None
127
128 # The name of an image file (relative to this directory) to place at the top
129 # of the sidebar.
130 #html_logo = None
131
132 # The name of an image file (within the static path) to use as favicon of the
133 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
134 # pixels large.
135 #html_favicon = None
136
137 # Add any paths that contain custom static files (such as style sheets) here,
138 # relative to this directory. They are copied after the builtin static files,
139 # so a file named "default.css" will overwrite the builtin "default.css".
140 html_static_path = ['_static']
141
142 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
143 # using the given strftime format.
144 #html_last_updated_fmt = '%b %d, %Y'
145
146 # If true, SmartyPants will be used to convert quotes and dashes to
147 # typographically correct entities.
148 #html_use_smartypants = True
149
150 # Custom sidebar templates, maps document names to template names.
151 #html_sidebars = {}
152
153 # Additional templates that should be rendered to pages, maps page names to
154 # template names.
155 #html_additional_pages = {}
156
157 # If false, no module index is generated.
158 #html_domain_indices = True
159
160 # If false, no index is generated.
161 #html_use_index = True
162
163 # If true, the index is split into individual pages for each letter.
164 #html_split_index = False
165
166 # If true, links to the reST sources are added to the pages.
167 #html_show_sourcelink = True
168
169 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
170 #html_show_sphinx = True
171
172 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
173 #html_show_copyright = True
174
175 # If true, an OpenSearch description file will be output, and all pages will
176 # contain a <link> tag referring to it.  The value of this option must be the
177 # base URL from which the finished HTML is served.
178 #html_use_opensearch = ''
179
180 # This is the file name suffix for HTML files (e.g. ".xhtml").
181 #html_file_suffix = None
182
183 # Output file base name for HTML help builder.
184 htmlhelp_basename = 'FFT-toolsdoc'
185
186
187 # -- Options for LaTeX output --------------------------------------------------
188
189 latex_preamble = r"""
190 \newcommand{\gaussian}{\textrm{gaussian}}
191 \newcommand{\rect}{\textrm{rect}}
192 \newcommand{\rfft}{\textrm{rfft}}
193 \newcommand{\sinc}{\textrm{sinc}}
194 """
195
196 latex_elements = {
197 # The paper size ('letterpaper' or 'a4paper').
198 #'papersize': 'letterpaper',
199
200 # The font size ('10pt', '11pt' or '12pt').
201 #'pointsize': '10pt',
202
203 # Additional stuff for the LaTeX preamble.
204 'preamble': latex_preamble,
205 }
206
207 # Grouping the document tree into LaTeX files. List of tuples
208 # (source start file, target name, title, author, documentclass [howto/manual]).
209 latex_documents = [
210   ('index', '{}.tex'.format(project), '{} Documentation'.format(project),
211    author, 'manual'),
212 ]
213
214 # The name of an image file (relative to this directory) to place at the top of
215 # the title page.
216 #latex_logo = None
217
218 # For "manual" documents, if this is true, then toplevel headings are parts,
219 # not chapters.
220 #latex_use_parts = False
221
222 # If true, show page references after internal links.
223 #latex_show_pagerefs = False
224
225 # If true, show URL addresses after external links.
226 #latex_show_urls = False
227
228 # Documents to append as an appendix to all manuals.
229 #latex_appendices = []
230
231 # If false, no module index is generated.
232 #latex_domain_indices = True
233
234
235 # -- Options for manual page output --------------------------------------------
236
237 # One entry per manual page. List of tuples
238 # (source start file, name, description, authors, manual section).
239 man_pages = [
240     ('index', project.lower(), '{} Documentation'.format(project),
241      [author], 1)
242 ]
243
244 # If true, show URL addresses after external links.
245 #man_show_urls = False
246
247
248 # -- Options for Texinfo output ------------------------------------------------
249
250 # Grouping the document tree into Texinfo files. List of tuples
251 # (source start file, target name, title, author,
252 #  dir menu entry, description, category)
253 texinfo_documents = [
254   ('index', project, '{} Documentation'.format(project),
255    author, project, "Wrap Numpy's fft module to reduce clutter.",
256    'Miscellaneous'),
257 ]
258
259 # Documents to append as an appendix to all manuals.
260 #texinfo_appendices = []
261
262 # If false, no module index is generated.
263 #texinfo_domain_indices = True
264
265 # How to display URL addresses: 'footnote', 'no', or 'inline'.
266 #texinfo_show_urls = 'footnote'
267
268
269 # Example configuration for intersphinx: refer to the Python standard library.
270 intersphinx_mapping = {
271     'python': ('http://docs.python.org/', None),
272     'numpy':('http://docs.scipy.org/doc/numpy',None),
273     }
274
275
276 # -- Options for pngmath ------------------------------------------------------
277
278 pngmath_latex_preamble = latex_preamble
279
280
281 # -- read-the-docs --
282
283 class Mock(object):
284     # http://read-the-docs.readthedocs.org/en/latest/faq.html#i-get-import-errors-on-libraries-that-depend-on-c-modules
285     def __init__(self, *args, **kwargs):
286         pass
287
288     def __call__(self, *args, **kwargs):
289         return Mock()
290
291     @classmethod
292     def __getattr__(cls, name):
293         if name in ('__file__', '__path__'):
294             return '/dev/null'
295         elif name[0] == name[0].upper():
296             mockType = type(name, (), {})
297             mockType.__module__ = __name__
298             return mockType
299         else:
300             return Mock()
301
302
303 MOCK_MODULES = ['numpy']
304
305 for mod_name in MOCK_MODULES:
306     sys.modules[mod_name] = Mock()