##// END OF EJS Templates
Fix rtd build and be more strict about builds (fail on warn)....
Matthias Bussonnier -
Show More
@@ -1,11 +1,14
1 name: ipython_docs
1 name: ipython_docs
2 dependencies:
2 dependencies:
3 - python=3.6
3 - python=3.6
4 - setuptools>=18.5
4 - setuptools>=18.5
5 - sphinx>=1.8
5 - sphinx>=1.8
6 - sphinx_rtd_theme
6 - sphinx_rtd_theme
7 - numpy
8 - nose
9 - testpath
10 - matplotlib
7 - pip:
11 - pip:
8 - docrepr
12 - docrepr
9 - prompt_toolkit
13 - prompt_toolkit
10 - ipython
11 - ipykernel
14 - ipykernel
@@ -1,300 +1,296
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 #
2 #
3 # IPython documentation build configuration file.
3 # IPython documentation build configuration file.
4
4
5 # NOTE: This file has been edited manually from the auto-generated one from
5 # NOTE: This file has been edited manually from the auto-generated one from
6 # sphinx. Do NOT delete and re-generate. If any changes from sphinx are
6 # sphinx. Do NOT delete and re-generate. If any changes from sphinx are
7 # needed, generate a scratch one and merge by hand any new fields needed.
7 # needed, generate a scratch one and merge by hand any new fields needed.
8
8
9 #
9 #
10 # This file is execfile()d with the current directory set to its containing dir.
10 # This file is execfile()d with the current directory set to its containing dir.
11 #
11 #
12 # The contents of this file are pickled, so don't put values in the namespace
12 # The contents of this file are pickled, so don't put values in the namespace
13 # that aren't pickleable (module imports are okay, they're removed automatically).
13 # that aren't pickleable (module imports are okay, they're removed automatically).
14 #
14 #
15 # All configuration values have a default value; values that are commented out
15 # All configuration values have a default value; values that are commented out
16 # serve to show the default value.
16 # serve to show the default value.
17
17
18 import sys, os
18 import sys, os
19
19
20 # http://read-the-docs.readthedocs.io/en/latest/faq.html
20 # http://read-the-docs.readthedocs.io/en/latest/faq.html
21 ON_RTD = os.environ.get('READTHEDOCS', None) == 'True'
21 ON_RTD = os.environ.get('READTHEDOCS', None) == 'True'
22
22
23 if ON_RTD:
23 if ON_RTD:
24 tags.add('rtd')
24 tags.add('rtd')
25
25
26 # RTD doesn't use the Makefile, so re-run autogen_{things}.py here.
26 # RTD doesn't use the Makefile, so re-run autogen_{things}.py here.
27 for name in ('config', 'api', 'magics', 'shortcuts'):
27 for name in ('config', 'api', 'magics', 'shortcuts'):
28 fname = 'autogen_{}.py'.format(name)
28 fname = 'autogen_{}.py'.format(name)
29 fpath = os.path.abspath(os.path.join('..', fname))
29 fpath = os.path.abspath(os.path.join('..', fname))
30 with open(fpath) as f:
30 with open(fpath) as f:
31 exec(compile(f.read(), fname, 'exec'), {
31 exec(compile(f.read(), fname, 'exec'), {
32 '__file__': fpath,
32 '__file__': fpath,
33 '__name__': '__main__',
33 '__name__': '__main__',
34 })
34 })
35 else:
35 else:
36 import sphinx_rtd_theme
36 import sphinx_rtd_theme
37 html_theme = "sphinx_rtd_theme"
37 html_theme = "sphinx_rtd_theme"
38 html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
38 html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
39
39
40 # If your extensions are in another directory, add it here. If the directory
40 # If your extensions are in another directory, add it here. If the directory
41 # is relative to the documentation root, use os.path.abspath to make it
41 # is relative to the documentation root, use os.path.abspath to make it
42 # absolute, like shown here.
42 # absolute, like shown here.
43 sys.path.insert(0, os.path.abspath('../sphinxext'))
43 sys.path.insert(0, os.path.abspath('../sphinxext'))
44
44
45 # We load the ipython release info into a dict by explicit execution
45 # We load the ipython release info into a dict by explicit execution
46 iprelease = {}
46 iprelease = {}
47 exec(compile(open('../../IPython/core/release.py').read(), '../../IPython/core/release.py', 'exec'),iprelease)
47 exec(compile(open('../../IPython/core/release.py').read(), '../../IPython/core/release.py', 'exec'),iprelease)
48
48
49 # General configuration
49 # General configuration
50 # ---------------------
50 # ---------------------
51
51
52 # Add any Sphinx extension module names here, as strings. They can be extensions
52 # Add any Sphinx extension module names here, as strings. They can be extensions
53 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
53 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
54 extensions = [
54 extensions = [
55 'sphinx.ext.autodoc',
55 'sphinx.ext.autodoc',
56 'sphinx.ext.autosummary',
56 'sphinx.ext.autosummary',
57 'sphinx.ext.doctest',
57 'sphinx.ext.doctest',
58 'sphinx.ext.inheritance_diagram',
58 'sphinx.ext.inheritance_diagram',
59 'sphinx.ext.intersphinx',
59 'sphinx.ext.intersphinx',
60 'sphinx.ext.graphviz',
60 'sphinx.ext.graphviz',
61 'IPython.sphinxext.ipython_console_highlighting',
61 'IPython.sphinxext.ipython_console_highlighting',
62 'IPython.sphinxext.ipython_directive',
62 'IPython.sphinxext.ipython_directive',
63 'sphinx.ext.napoleon', # to preprocess docstrings
63 'sphinx.ext.napoleon', # to preprocess docstrings
64 'github', # for easy GitHub links
64 'github', # for easy GitHub links
65 'magics',
65 'magics',
66 'configtraits',
66 'configtraits',
67 ]
67 ]
68
68
69 if ON_RTD:
70 # Remove extensions not currently supported on RTD
71 extensions.remove('IPython.sphinxext.ipython_directive')
72 extensions.remove('IPython.sphinxext.ipython_console_highlighting')
73
74 # Add any paths that contain templates here, relative to this directory.
69 # Add any paths that contain templates here, relative to this directory.
75 templates_path = ['_templates']
70 templates_path = ['_templates']
76
71
77 # The suffix of source filenames.
72 # The suffix of source filenames.
78 source_suffix = '.rst'
73 source_suffix = '.rst'
79
74
80 rst_prolog = ''
75 rst_prolog = ''
81
76
82 def is_stable(extra):
77 def is_stable(extra):
83 for ext in {'dev', 'b', 'rc'}:
78 for ext in {'dev', 'b', 'rc'}:
84 if ext in extra:
79 if ext in extra:
85 return False
80 return False
86 return True
81 return True
87
82
88 if is_stable(iprelease['_version_extra']):
83 if is_stable(iprelease['_version_extra']):
89 tags.add('ipystable')
84 tags.add('ipystable')
90 print('Adding Tag: ipystable')
85 print('Adding Tag: ipystable')
91 else:
86 else:
92 tags.add('ipydev')
87 tags.add('ipydev')
93 print('Adding Tag: ipydev')
88 print('Adding Tag: ipydev')
94 rst_prolog += """
89 rst_prolog += """
95 .. warning::
90 .. warning::
96
91
97 This documentation covers a development version of IPython. The development
92 This documentation covers a development version of IPython. The development
98 version may differ significantly from the latest stable release.
93 version may differ significantly from the latest stable release.
99 """
94 """
100
95
101 rst_prolog += """
96 rst_prolog += """
102 .. important::
97 .. important::
103
98
104 This documentation covers IPython versions 6.0 and higher. Beginning with
99 This documentation covers IPython versions 6.0 and higher. Beginning with
105 version 6.0, IPython stopped supporting compatibility with Python versions
100 version 6.0, IPython stopped supporting compatibility with Python versions
106 lower than 3.3 including all versions of Python 2.7.
101 lower than 3.3 including all versions of Python 2.7.
107
102
108 If you are looking for an IPython version compatible with Python 2.7,
103 If you are looking for an IPython version compatible with Python 2.7,
109 please use the IPython 5.x LTS release and refer to its documentation (LTS
104 please use the IPython 5.x LTS release and refer to its documentation (LTS
110 is the long term support release).
105 is the long term support release).
111
106
112 """
107 """
113
108
114 # The master toctree document.
109 # The master toctree document.
115 master_doc = 'index'
110 master_doc = 'index'
116
111
117 # General substitutions.
112 # General substitutions.
118 project = 'IPython'
113 project = 'IPython'
119 copyright = 'The IPython Development Team'
114 copyright = 'The IPython Development Team'
120
115
121 # ghissue config
116 # ghissue config
122 github_project_url = "https://github.com/ipython/ipython"
117 github_project_url = "https://github.com/ipython/ipython"
123
118
124 # numpydoc config
119 # numpydoc config
125 numpydoc_show_class_members = False # Otherwise Sphinx emits thousands of warnings
120 numpydoc_show_class_members = False # Otherwise Sphinx emits thousands of warnings
126 numpydoc_class_members_toctree = False
121 numpydoc_class_members_toctree = False
122 warning_is_error = True
127
123
128 # The default replacements for |version| and |release|, also used in various
124 # The default replacements for |version| and |release|, also used in various
129 # other places throughout the built documents.
125 # other places throughout the built documents.
130 #
126 #
131 # The full version, including alpha/beta/rc tags.
127 # The full version, including alpha/beta/rc tags.
132 release = "%s" % iprelease['version']
128 release = "%s" % iprelease['version']
133 # Just the X.Y.Z part, no '-dev'
129 # Just the X.Y.Z part, no '-dev'
134 version = iprelease['version'].split('-', 1)[0]
130 version = iprelease['version'].split('-', 1)[0]
135
131
136
132
137 # There are two options for replacing |today|: either, you set today to some
133 # There are two options for replacing |today|: either, you set today to some
138 # non-false value, then it is used:
134 # non-false value, then it is used:
139 #today = ''
135 #today = ''
140 # Else, today_fmt is used as the format for a strftime call.
136 # Else, today_fmt is used as the format for a strftime call.
141 today_fmt = '%B %d, %Y'
137 today_fmt = '%B %d, %Y'
142
138
143 # List of documents that shouldn't be included in the build.
139 # List of documents that shouldn't be included in the build.
144 #unused_docs = []
140 #unused_docs = []
145
141
146 # Exclude these glob-style patterns when looking for source files. They are
142 # Exclude these glob-style patterns when looking for source files. They are
147 # relative to the source/ directory.
143 # relative to the source/ directory.
148 exclude_patterns = []
144 exclude_patterns = []
149
145
150
146
151 # If true, '()' will be appended to :func: etc. cross-reference text.
147 # If true, '()' will be appended to :func: etc. cross-reference text.
152 #add_function_parentheses = True
148 #add_function_parentheses = True
153
149
154 # If true, the current module name will be prepended to all description
150 # If true, the current module name will be prepended to all description
155 # unit titles (such as .. function::).
151 # unit titles (such as .. function::).
156 #add_module_names = True
152 #add_module_names = True
157
153
158 # If true, sectionauthor and moduleauthor directives will be shown in the
154 # If true, sectionauthor and moduleauthor directives will be shown in the
159 # output. They are ignored by default.
155 # output. They are ignored by default.
160 #show_authors = False
156 #show_authors = False
161
157
162 # The name of the Pygments (syntax highlighting) style to use.
158 # The name of the Pygments (syntax highlighting) style to use.
163 pygments_style = 'sphinx'
159 pygments_style = 'sphinx'
164
160
165 # Set the default role so we can use `foo` instead of ``foo``
161 # Set the default role so we can use `foo` instead of ``foo``
166 default_role = 'literal'
162 default_role = 'literal'
167
163
168 # Options for HTML output
164 # Options for HTML output
169 # -----------------------
165 # -----------------------
170
166
171 # The style sheet to use for HTML and HTML Help pages. A file of that name
167 # The style sheet to use for HTML and HTML Help pages. A file of that name
172 # must exist either in Sphinx' static/ path, or in one of the custom paths
168 # must exist either in Sphinx' static/ path, or in one of the custom paths
173 # given in html_static_path.
169 # given in html_static_path.
174 # html_style = 'default.css'
170 # html_style = 'default.css'
175
171
176
172
177 # The name for this set of Sphinx documents. If None, it defaults to
173 # The name for this set of Sphinx documents. If None, it defaults to
178 # "<project> v<release> documentation".
174 # "<project> v<release> documentation".
179 #html_title = None
175 #html_title = None
180
176
181 # The name of an image file (within the static path) to place at the top of
177 # The name of an image file (within the static path) to place at the top of
182 # the sidebar.
178 # the sidebar.
183 #html_logo = None
179 #html_logo = None
184
180
185 # Add any paths that contain custom static files (such as style sheets) here,
181 # Add any paths that contain custom static files (such as style sheets) here,
186 # relative to this directory. They are copied after the builtin static files,
182 # relative to this directory. They are copied after the builtin static files,
187 # so a file named "default.css" will overwrite the builtin "default.css".
183 # so a file named "default.css" will overwrite the builtin "default.css".
188 html_static_path = ['_static']
184 html_static_path = ['_static']
189
185
190 # Favicon needs the directory name
186 # Favicon needs the directory name
191 html_favicon = '_static/favicon.ico'
187 html_favicon = '_static/favicon.ico'
192 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
188 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
193 # using the given strftime format.
189 # using the given strftime format.
194 html_last_updated_fmt = '%b %d, %Y'
190 html_last_updated_fmt = '%b %d, %Y'
195
191
196 # If true, SmartyPants will be used to convert quotes and dashes to
192 # If true, SmartyPants will be used to convert quotes and dashes to
197 # typographically correct entities.
193 # typographically correct entities.
198 #html_use_smartypants = True
194 #html_use_smartypants = True
199
195
200 # Custom sidebar templates, maps document names to template names.
196 # Custom sidebar templates, maps document names to template names.
201 #html_sidebars = {}
197 #html_sidebars = {}
202
198
203 # Additional templates that should be rendered to pages, maps page names to
199 # Additional templates that should be rendered to pages, maps page names to
204 # template names.
200 # template names.
205 html_additional_pages = {
201 html_additional_pages = {
206 'interactive/htmlnotebook': 'notebook_redirect.html',
202 'interactive/htmlnotebook': 'notebook_redirect.html',
207 'interactive/notebook': 'notebook_redirect.html',
203 'interactive/notebook': 'notebook_redirect.html',
208 'interactive/nbconvert': 'notebook_redirect.html',
204 'interactive/nbconvert': 'notebook_redirect.html',
209 'interactive/public_server': 'notebook_redirect.html',
205 'interactive/public_server': 'notebook_redirect.html',
210 }
206 }
211
207
212 # If false, no module index is generated.
208 # If false, no module index is generated.
213 #html_use_modindex = True
209 #html_use_modindex = True
214
210
215 # If true, the reST sources are included in the HTML build as _sources/<name>.
211 # If true, the reST sources are included in the HTML build as _sources/<name>.
216 #html_copy_source = True
212 #html_copy_source = True
217
213
218 # If true, an OpenSearch description file will be output, and all pages will
214 # If true, an OpenSearch description file will be output, and all pages will
219 # contain a <link> tag referring to it. The value of this option must be the
215 # contain a <link> tag referring to it. The value of this option must be the
220 # base URL from which the finished HTML is served.
216 # base URL from which the finished HTML is served.
221 #html_use_opensearch = ''
217 #html_use_opensearch = ''
222
218
223 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
219 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
224 #html_file_suffix = ''
220 #html_file_suffix = ''
225
221
226 # Output file base name for HTML help builder.
222 # Output file base name for HTML help builder.
227 htmlhelp_basename = 'ipythondoc'
223 htmlhelp_basename = 'ipythondoc'
228
224
229 intersphinx_mapping = {'python': ('https://docs.python.org/3/', None),
225 intersphinx_mapping = {'python': ('https://docs.python.org/3/', None),
230 'rpy2': ('https://rpy2.readthedocs.io/en/version_2.8.x/', None),
226 'rpy2': ('https://rpy2.readthedocs.io/en/version_2.8.x/', None),
231 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
227 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
232 'jupyterclient': ('https://jupyter-client.readthedocs.io/en/latest/', None),
228 'jupyterclient': ('https://jupyter-client.readthedocs.io/en/latest/', None),
233 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/latest/', None),
229 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/latest/', None),
234 'jupyter': ('https://jupyter.readthedocs.io/en/latest/', None),
230 'jupyter': ('https://jupyter.readthedocs.io/en/latest/', None),
235 'jedi': ('https://jedi.readthedocs.io/en/latest/', None),
231 'jedi': ('https://jedi.readthedocs.io/en/latest/', None),
236 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
232 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
237 'ipykernel': ('https://ipykernel.readthedocs.io/en/latest/', None),
233 'ipykernel': ('https://ipykernel.readthedocs.io/en/latest/', None),
238 'prompt_toolkit' : ('https://python-prompt-toolkit.readthedocs.io/en/stable/', None),
234 'prompt_toolkit' : ('https://python-prompt-toolkit.readthedocs.io/en/stable/', None),
239 'ipywidgets': ('https://ipywidgets.readthedocs.io/en/stable/', None),
235 'ipywidgets': ('https://ipywidgets.readthedocs.io/en/stable/', None),
240 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/stable/', None)
236 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/stable/', None)
241 }
237 }
242
238
243 # Options for LaTeX output
239 # Options for LaTeX output
244 # ------------------------
240 # ------------------------
245
241
246 # The paper size ('letter' or 'a4').
242 # The paper size ('letter' or 'a4').
247 latex_paper_size = 'letter'
243 latex_paper_size = 'letter'
248
244
249 # The font size ('10pt', '11pt' or '12pt').
245 # The font size ('10pt', '11pt' or '12pt').
250 latex_font_size = '11pt'
246 latex_font_size = '11pt'
251
247
252 # Grouping the document tree into LaTeX files. List of tuples
248 # Grouping the document tree into LaTeX files. List of tuples
253 # (source start file, target name, title, author, document class [howto/manual]).
249 # (source start file, target name, title, author, document class [howto/manual]).
254
250
255 latex_documents = [
251 latex_documents = [
256 ('index', 'ipython.tex', 'IPython Documentation',
252 ('index', 'ipython.tex', 'IPython Documentation',
257 u"""The IPython Development Team""", 'manual', True),
253 u"""The IPython Development Team""", 'manual', True),
258 ('parallel/winhpc_index', 'winhpc_whitepaper.tex',
254 ('parallel/winhpc_index', 'winhpc_whitepaper.tex',
259 'Using IPython on Windows HPC Server 2008',
255 'Using IPython on Windows HPC Server 2008',
260 u"Brian E. Granger", 'manual', True)
256 u"Brian E. Granger", 'manual', True)
261 ]
257 ]
262
258
263 # The name of an image file (relative to this directory) to place at the top of
259 # The name of an image file (relative to this directory) to place at the top of
264 # the title page.
260 # the title page.
265 #latex_logo = None
261 #latex_logo = None
266
262
267 # For "manual" documents, if this is true, then toplevel headings are parts,
263 # For "manual" documents, if this is true, then toplevel headings are parts,
268 # not chapters.
264 # not chapters.
269 #latex_use_parts = False
265 #latex_use_parts = False
270
266
271 # Additional stuff for the LaTeX preamble.
267 # Additional stuff for the LaTeX preamble.
272 #latex_preamble = ''
268 #latex_preamble = ''
273
269
274 # Documents to append as an appendix to all manuals.
270 # Documents to append as an appendix to all manuals.
275 #latex_appendices = []
271 #latex_appendices = []
276
272
277 # If false, no module index is generated.
273 # If false, no module index is generated.
278 latex_use_modindex = True
274 latex_use_modindex = True
279
275
280
276
281 # Options for texinfo output
277 # Options for texinfo output
282 # --------------------------
278 # --------------------------
283
279
284 texinfo_documents = [
280 texinfo_documents = [
285 (master_doc, 'ipython', 'IPython Documentation',
281 (master_doc, 'ipython', 'IPython Documentation',
286 'The IPython Development Team',
282 'The IPython Development Team',
287 'IPython',
283 'IPython',
288 'IPython Documentation',
284 'IPython Documentation',
289 'Programming',
285 'Programming',
290 1),
286 1),
291 ]
287 ]
292
288
293 modindex_common_prefix = ['IPython.']
289 modindex_common_prefix = ['IPython.']
294
290
295
291
296 # Cleanup
292 # Cleanup
297 # -------
293 # -------
298 # delete release info to avoid pickling errors from sphinx
294 # delete release info to avoid pickling errors from sphinx
299
295
300 del iprelease
296 del iprelease
General Comments 0
You need to be logged in to leave comments. Login now