##// END OF EJS Templates
Installing Graphviz
Olesya Baranova -
Show More
@@ -1,53 +1,54 b''
1 # http://travis-ci.org/#!/ipython/ipython
1 # http://travis-ci.org/#!/ipython/ipython
2 language: python
2 language: python
3 python:
3 python:
4 - "nightly"
4 - "nightly"
5 - 3.6
5 - 3.6
6 - 3.5
6 - 3.5
7 - 3.4
7 - 3.4
8 - 3.3
8 - 3.3
9 sudo: false
9 sudo: false
10 env:
10 env:
11 global:
11 global:
12 - PATH=$TRAVIS_BUILD_DIR/pandoc:$PATH
12 - PATH=$TRAVIS_BUILD_DIR/pandoc:$PATH
13 group: edge
13 group: edge
14 before_install:
14 before_install:
15 - 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi'
15 - 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi'
16 install:
16 install:
17 - pip install setuptools pip --upgrade
17 - pip install setuptools pip --upgrade
18 - pip install -e file://$PWD#egg=ipython[test] --upgrade
18 - pip install -e file://$PWD#egg=ipython[test] --upgrade
19 - pip install codecov --upgrade
19 - pip install codecov --upgrade
20 - sudo apt-get install graphviz
20 script:
21 script:
21 - cd /tmp && iptest --coverage xml && cd -
22 - cd /tmp && iptest --coverage xml && cd -
22 # On the latest Python only, make sure that the docs build.
23 # On the latest Python only, make sure that the docs build.
23 - |
24 - |
24 if [[ "$TRAVIS_PYTHON_VERSION" == "3.6" ]]; then
25 if [[ "$TRAVIS_PYTHON_VERSION" == "3.6" ]]; then
25 pip install -r docs/requirements.txt
26 pip install -r docs/requirements.txt
26 make -C docs/ html
27 make -C docs/ html
27 fi
28 fi
28 after_success:
29 after_success:
29 - cp /tmp/ipy_coverage.xml ./
30 - cp /tmp/ipy_coverage.xml ./
30 - cp /tmp/.coverage ./
31 - cp /tmp/.coverage ./
31 - codecov
32 - codecov
32
33
33 matrix:
34 matrix:
34 allow_failures:
35 allow_failures:
35 - python: nightly
36 - python: nightly
36
37
37 before_deploy:
38 before_deploy:
38 - rm -rf dist/
39 - rm -rf dist/
39 - python setup.py sdist
40 - python setup.py sdist
40 - python setup.py bdist_wheel
41 - python setup.py bdist_wheel
41
42
42 deploy:
43 deploy:
43 provider: releases
44 provider: releases
44 api_key:
45 api_key:
45 secure: Y/Ae9tYs5aoBU8bDjN2YrwGG6tCbezj/h3Lcmtx8HQavSbBgXnhnZVRb2snOKD7auqnqjfT/7QMm4ZyKvaOEgyggGktKqEKYHC8KOZ7yp8I5/UMDtk6j9TnXpSqqBxPiud4MDV76SfRYEQiaDoG4tGGvSfPJ9KcNjKrNvSyyxns=
46 secure: Y/Ae9tYs5aoBU8bDjN2YrwGG6tCbezj/h3Lcmtx8HQavSbBgXnhnZVRb2snOKD7auqnqjfT/7QMm4ZyKvaOEgyggGktKqEKYHC8KOZ7yp8I5/UMDtk6j9TnXpSqqBxPiud4MDV76SfRYEQiaDoG4tGGvSfPJ9KcNjKrNvSyyxns=
46 file: dist/*
47 file: dist/*
47 file_glob: true
48 file_glob: true
48 skip_cleanup: true
49 skip_cleanup: true
49 on:
50 on:
50 repo: ipython/ipython
51 repo: ipython/ipython
51 all_branches: true # Backports are released from e.g. 5.x branch
52 all_branches: true # Backports are released from e.g. 5.x branch
52 tags: true
53 tags: true
53 python: 3.6 # Any version should work, but we only need one
54 python: 3.6 # Any version should work, but we only need one
@@ -1,297 +1,298 b''
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 'IPython.sphinxext.ipython_console_highlighting',
61 'IPython.sphinxext.ipython_console_highlighting',
61 'IPython.sphinxext.ipython_directive',
62 'IPython.sphinxext.ipython_directive',
62 'sphinx.ext.napoleon', # to preprocess docstrings
63 'sphinx.ext.napoleon', # to preprocess docstrings
63 'github', # for easy GitHub links
64 'github', # for easy GitHub links
64 'magics',
65 'magics',
65 'configtraits',
66 'configtraits',
66 ]
67 ]
67
68
68 if ON_RTD:
69 if ON_RTD:
69 # Remove extensions not currently supported on RTD
70 # Remove extensions not currently supported on RTD
70 extensions.remove('IPython.sphinxext.ipython_directive')
71 extensions.remove('IPython.sphinxext.ipython_directive')
71 extensions.remove('IPython.sphinxext.ipython_console_highlighting')
72 extensions.remove('IPython.sphinxext.ipython_console_highlighting')
72
73
73 # Add any paths that contain templates here, relative to this directory.
74 # Add any paths that contain templates here, relative to this directory.
74 templates_path = ['_templates']
75 templates_path = ['_templates']
75
76
76 # The suffix of source filenames.
77 # The suffix of source filenames.
77 source_suffix = '.rst'
78 source_suffix = '.rst'
78
79
79 rst_prolog = ''
80 rst_prolog = ''
80
81
81 def is_stable(extra):
82 def is_stable(extra):
82 for ext in {'dev', 'b', 'rc'}:
83 for ext in {'dev', 'b', 'rc'}:
83 if ext in extra:
84 if ext in extra:
84 return False
85 return False
85 return True
86 return True
86
87
87 if is_stable(iprelease['_version_extra']):
88 if is_stable(iprelease['_version_extra']):
88 tags.add('ipystable')
89 tags.add('ipystable')
89 else:
90 else:
90 tags.add('ipydev')
91 tags.add('ipydev')
91 rst_prolog += """
92 rst_prolog += """
92 .. warning::
93 .. warning::
93
94
94 This documentation covers a development version of IPython. The development
95 This documentation covers a development version of IPython. The development
95 version may differ significantly from the latest stable release.
96 version may differ significantly from the latest stable release.
96 """
97 """
97
98
98 rst_prolog += """
99 rst_prolog += """
99 .. important::
100 .. important::
100
101
101 This documentation covers IPython versions 6.0 and higher. Beginning with
102 This documentation covers IPython versions 6.0 and higher. Beginning with
102 version 6.0, IPython stopped supporting compatibility with Python versions
103 version 6.0, IPython stopped supporting compatibility with Python versions
103 lower than 3.3 including all versions of Python 2.7.
104 lower than 3.3 including all versions of Python 2.7.
104
105
105 If you are looking for an IPython version compatible with Python 2.7,
106 If you are looking for an IPython version compatible with Python 2.7,
106 please use the IPython 5.x LTS release and refer to its documentation (LTS
107 please use the IPython 5.x LTS release and refer to its documentation (LTS
107 is the long term support release).
108 is the long term support release).
108
109
109 """
110 """
110
111
111 # The master toctree document.
112 # The master toctree document.
112 master_doc = 'index'
113 master_doc = 'index'
113
114
114 # General substitutions.
115 # General substitutions.
115 project = 'IPython'
116 project = 'IPython'
116 copyright = 'The IPython Development Team'
117 copyright = 'The IPython Development Team'
117
118
118 # ghissue config
119 # ghissue config
119 github_project_url = "https://github.com/ipython/ipython"
120 github_project_url = "https://github.com/ipython/ipython"
120
121
121 # numpydoc config
122 # numpydoc config
122 numpydoc_show_class_members = False # Otherwise Sphinx emits thousands of warnings
123 numpydoc_show_class_members = False # Otherwise Sphinx emits thousands of warnings
123 numpydoc_class_members_toctree = False
124 numpydoc_class_members_toctree = False
124
125
125 # The default replacements for |version| and |release|, also used in various
126 # The default replacements for |version| and |release|, also used in various
126 # other places throughout the built documents.
127 # other places throughout the built documents.
127 #
128 #
128 # The full version, including alpha/beta/rc tags.
129 # The full version, including alpha/beta/rc tags.
129 release = "%s" % iprelease['version']
130 release = "%s" % iprelease['version']
130 # Just the X.Y.Z part, no '-dev'
131 # Just the X.Y.Z part, no '-dev'
131 version = iprelease['version'].split('-', 1)[0]
132 version = iprelease['version'].split('-', 1)[0]
132
133
133
134
134 # There are two options for replacing |today|: either, you set today to some
135 # There are two options for replacing |today|: either, you set today to some
135 # non-false value, then it is used:
136 # non-false value, then it is used:
136 #today = ''
137 #today = ''
137 # Else, today_fmt is used as the format for a strftime call.
138 # Else, today_fmt is used as the format for a strftime call.
138 today_fmt = '%B %d, %Y'
139 today_fmt = '%B %d, %Y'
139
140
140 # List of documents that shouldn't be included in the build.
141 # List of documents that shouldn't be included in the build.
141 #unused_docs = []
142 #unused_docs = []
142
143
143 # Exclude these glob-style patterns when looking for source files. They are
144 # Exclude these glob-style patterns when looking for source files. They are
144 # relative to the source/ directory.
145 # relative to the source/ directory.
145 exclude_patterns = ['whatsnew/pr']
146 exclude_patterns = ['whatsnew/pr']
146
147
147
148
148 # If true, '()' will be appended to :func: etc. cross-reference text.
149 # If true, '()' will be appended to :func: etc. cross-reference text.
149 #add_function_parentheses = True
150 #add_function_parentheses = True
150
151
151 # If true, the current module name will be prepended to all description
152 # If true, the current module name will be prepended to all description
152 # unit titles (such as .. function::).
153 # unit titles (such as .. function::).
153 #add_module_names = True
154 #add_module_names = True
154
155
155 # If true, sectionauthor and moduleauthor directives will be shown in the
156 # If true, sectionauthor and moduleauthor directives will be shown in the
156 # output. They are ignored by default.
157 # output. They are ignored by default.
157 #show_authors = False
158 #show_authors = False
158
159
159 # The name of the Pygments (syntax highlighting) style to use.
160 # The name of the Pygments (syntax highlighting) style to use.
160 pygments_style = 'sphinx'
161 pygments_style = 'sphinx'
161
162
162 # Set the default role so we can use `foo` instead of ``foo``
163 # Set the default role so we can use `foo` instead of ``foo``
163 default_role = 'literal'
164 default_role = 'literal'
164
165
165 # Options for HTML output
166 # Options for HTML output
166 # -----------------------
167 # -----------------------
167
168
168 # The style sheet to use for HTML and HTML Help pages. A file of that name
169 # The style sheet to use for HTML and HTML Help pages. A file of that name
169 # must exist either in Sphinx' static/ path, or in one of the custom paths
170 # must exist either in Sphinx' static/ path, or in one of the custom paths
170 # given in html_static_path.
171 # given in html_static_path.
171 # html_style = 'default.css'
172 # html_style = 'default.css'
172
173
173
174
174 # The name for this set of Sphinx documents. If None, it defaults to
175 # The name for this set of Sphinx documents. If None, it defaults to
175 # "<project> v<release> documentation".
176 # "<project> v<release> documentation".
176 #html_title = None
177 #html_title = None
177
178
178 # The name of an image file (within the static path) to place at the top of
179 # The name of an image file (within the static path) to place at the top of
179 # the sidebar.
180 # the sidebar.
180 #html_logo = None
181 #html_logo = None
181
182
182 # Add any paths that contain custom static files (such as style sheets) here,
183 # Add any paths that contain custom static files (such as style sheets) here,
183 # relative to this directory. They are copied after the builtin static files,
184 # relative to this directory. They are copied after the builtin static files,
184 # so a file named "default.css" will overwrite the builtin "default.css".
185 # so a file named "default.css" will overwrite the builtin "default.css".
185 html_static_path = ['_static']
186 html_static_path = ['_static']
186
187
187 # Favicon needs the directory name
188 # Favicon needs the directory name
188 html_favicon = '_static/favicon.ico'
189 html_favicon = '_static/favicon.ico'
189 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
190 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
190 # using the given strftime format.
191 # using the given strftime format.
191 html_last_updated_fmt = '%b %d, %Y'
192 html_last_updated_fmt = '%b %d, %Y'
192
193
193 # If true, SmartyPants will be used to convert quotes and dashes to
194 # If true, SmartyPants will be used to convert quotes and dashes to
194 # typographically correct entities.
195 # typographically correct entities.
195 #html_use_smartypants = True
196 #html_use_smartypants = True
196
197
197 # Custom sidebar templates, maps document names to template names.
198 # Custom sidebar templates, maps document names to template names.
198 #html_sidebars = {}
199 #html_sidebars = {}
199
200
200 # Additional templates that should be rendered to pages, maps page names to
201 # Additional templates that should be rendered to pages, maps page names to
201 # template names.
202 # template names.
202 html_additional_pages = {
203 html_additional_pages = {
203 'interactive/htmlnotebook': 'notebook_redirect.html',
204 'interactive/htmlnotebook': 'notebook_redirect.html',
204 'interactive/notebook': 'notebook_redirect.html',
205 'interactive/notebook': 'notebook_redirect.html',
205 'interactive/nbconvert': 'notebook_redirect.html',
206 'interactive/nbconvert': 'notebook_redirect.html',
206 'interactive/public_server': 'notebook_redirect.html',
207 'interactive/public_server': 'notebook_redirect.html',
207 }
208 }
208
209
209 # If false, no module index is generated.
210 # If false, no module index is generated.
210 #html_use_modindex = True
211 #html_use_modindex = True
211
212
212 # If true, the reST sources are included in the HTML build as _sources/<name>.
213 # If true, the reST sources are included in the HTML build as _sources/<name>.
213 #html_copy_source = True
214 #html_copy_source = True
214
215
215 # If true, an OpenSearch description file will be output, and all pages will
216 # If true, an OpenSearch description file will be output, and all pages will
216 # contain a <link> tag referring to it. The value of this option must be the
217 # contain a <link> tag referring to it. The value of this option must be the
217 # base URL from which the finished HTML is served.
218 # base URL from which the finished HTML is served.
218 #html_use_opensearch = ''
219 #html_use_opensearch = ''
219
220
220 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
221 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
221 #html_file_suffix = ''
222 #html_file_suffix = ''
222
223
223 # Output file base name for HTML help builder.
224 # Output file base name for HTML help builder.
224 htmlhelp_basename = 'ipythondoc'
225 htmlhelp_basename = 'ipythondoc'
225
226
226 intersphinx_mapping = {'python': ('https://docs.python.org/3/', None),
227 intersphinx_mapping = {'python': ('https://docs.python.org/3/', None),
227 'rpy2': ('https://rpy2.readthedocs.io/en/version_2.8.x/', None),
228 'rpy2': ('https://rpy2.readthedocs.io/en/version_2.8.x/', None),
228 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
229 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
229 'jupyterclient': ('https://jupyter-client.readthedocs.io/en/latest/', None),
230 'jupyterclient': ('https://jupyter-client.readthedocs.io/en/latest/', None),
230 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/latest/', None),
231 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/latest/', None),
231 'jupyter': ('https://jupyter.readthedocs.io/en/latest/', None),
232 'jupyter': ('https://jupyter.readthedocs.io/en/latest/', None),
232 'jedi': ('https://jedi.readthedocs.io/en/latest/', None),
233 'jedi': ('https://jedi.readthedocs.io/en/latest/', None),
233 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
234 'traitlets': ('https://traitlets.readthedocs.io/en/latest/', None),
234 'ipykernel': ('https://ipykernel.readthedocs.io/en/latest/', None),
235 'ipykernel': ('https://ipykernel.readthedocs.io/en/latest/', None),
235 'prompt_toolkit' : ('https://python-prompt-toolkit.readthedocs.io/en/stable/', None),
236 'prompt_toolkit' : ('https://python-prompt-toolkit.readthedocs.io/en/stable/', None),
236 'ipywidgets': ('https://ipywidgets.readthedocs.io/en/stable/', None),
237 'ipywidgets': ('https://ipywidgets.readthedocs.io/en/stable/', None),
237 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/stable/', None)
238 'ipyparallel': ('https://ipyparallel.readthedocs.io/en/stable/', None)
238 }
239 }
239
240
240 # Options for LaTeX output
241 # Options for LaTeX output
241 # ------------------------
242 # ------------------------
242
243
243 # The paper size ('letter' or 'a4').
244 # The paper size ('letter' or 'a4').
244 latex_paper_size = 'letter'
245 latex_paper_size = 'letter'
245
246
246 # The font size ('10pt', '11pt' or '12pt').
247 # The font size ('10pt', '11pt' or '12pt').
247 latex_font_size = '11pt'
248 latex_font_size = '11pt'
248
249
249 # Grouping the document tree into LaTeX files. List of tuples
250 # Grouping the document tree into LaTeX files. List of tuples
250 # (source start file, target name, title, author, document class [howto/manual]).
251 # (source start file, target name, title, author, document class [howto/manual]).
251
252
252 latex_documents = [
253 latex_documents = [
253 ('index', 'ipython.tex', 'IPython Documentation',
254 ('index', 'ipython.tex', 'IPython Documentation',
254 u"""The IPython Development Team""", 'manual', True),
255 u"""The IPython Development Team""", 'manual', True),
255 ('parallel/winhpc_index', 'winhpc_whitepaper.tex',
256 ('parallel/winhpc_index', 'winhpc_whitepaper.tex',
256 'Using IPython on Windows HPC Server 2008',
257 'Using IPython on Windows HPC Server 2008',
257 u"Brian E. Granger", 'manual', True)
258 u"Brian E. Granger", 'manual', True)
258 ]
259 ]
259
260
260 # The name of an image file (relative to this directory) to place at the top of
261 # The name of an image file (relative to this directory) to place at the top of
261 # the title page.
262 # the title page.
262 #latex_logo = None
263 #latex_logo = None
263
264
264 # For "manual" documents, if this is true, then toplevel headings are parts,
265 # For "manual" documents, if this is true, then toplevel headings are parts,
265 # not chapters.
266 # not chapters.
266 #latex_use_parts = False
267 #latex_use_parts = False
267
268
268 # Additional stuff for the LaTeX preamble.
269 # Additional stuff for the LaTeX preamble.
269 #latex_preamble = ''
270 #latex_preamble = ''
270
271
271 # Documents to append as an appendix to all manuals.
272 # Documents to append as an appendix to all manuals.
272 #latex_appendices = []
273 #latex_appendices = []
273
274
274 # If false, no module index is generated.
275 # If false, no module index is generated.
275 latex_use_modindex = True
276 latex_use_modindex = True
276
277
277
278
278 # Options for texinfo output
279 # Options for texinfo output
279 # --------------------------
280 # --------------------------
280
281
281 texinfo_documents = [
282 texinfo_documents = [
282 (master_doc, 'ipython', 'IPython Documentation',
283 (master_doc, 'ipython', 'IPython Documentation',
283 'The IPython Development Team',
284 'The IPython Development Team',
284 'IPython',
285 'IPython',
285 'IPython Documentation',
286 'IPython Documentation',
286 'Programming',
287 'Programming',
287 1),
288 1),
288 ]
289 ]
289
290
290 modindex_common_prefix = ['IPython.']
291 modindex_common_prefix = ['IPython.']
291
292
292
293
293 # Cleanup
294 # Cleanup
294 # -------
295 # -------
295 # delete release info to avoid pickling errors from sphinx
296 # delete release info to avoid pickling errors from sphinx
296
297
297 del iprelease
298 del iprelease
General Comments 0
You need to be logged in to leave comments. Login now