Make "make webdocs" compatible with Python 3
The `webdocs` make target fails under Python 3. It fails due to a variety of syntax errors, such as the use of `except Foo, e` and `print 'foo'`. Fix #13463 by making code compatible with both Python 2 and 3.
This commit is contained in:
parent
9c4eae5253
commit
5cac8efd73
2 changed files with 14 additions and 13 deletions
|
@ -15,6 +15,7 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
from __future__ import print_function
|
||||
|
||||
__docformat__ = 'restructuredtext'
|
||||
|
||||
|
@ -24,9 +25,9 @@ import traceback
|
|||
try:
|
||||
from sphinx.application import Sphinx
|
||||
except ImportError:
|
||||
print "#################################"
|
||||
print "Dependency missing: Python Sphinx"
|
||||
print "#################################"
|
||||
print("#################################")
|
||||
print("Dependency missing: Python Sphinx")
|
||||
print("#################################")
|
||||
sys.exit(1)
|
||||
import os
|
||||
|
||||
|
@ -40,7 +41,7 @@ class SphinxBuilder(object):
|
|||
"""
|
||||
Run the DocCommand.
|
||||
"""
|
||||
print "Creating html documentation ..."
|
||||
print("Creating html documentation ...")
|
||||
|
||||
try:
|
||||
buildername = 'html'
|
||||
|
@ -69,10 +70,10 @@ class SphinxBuilder(object):
|
|||
|
||||
app.builder.build_all()
|
||||
|
||||
except ImportError, ie:
|
||||
except ImportError:
|
||||
traceback.print_exc()
|
||||
except Exception, ex:
|
||||
print >> sys.stderr, "FAIL! exiting ... (%s)" % ex
|
||||
except Exception as ex:
|
||||
print("FAIL! exiting ... (%s)" % ex, file=sys.stderr)
|
||||
|
||||
def build_docs(self):
|
||||
self.app.builder.build_all()
|
||||
|
@ -83,9 +84,9 @@ def build_rst_docs():
|
|||
|
||||
if __name__ == '__main__':
|
||||
if '-h' in sys.argv or '--help' in sys.argv:
|
||||
print "This script builds the html documentation from rst/asciidoc sources.\n"
|
||||
print " Run 'make docs' to build everything."
|
||||
print " Run 'make viewdocs' to build and then preview in a web browser."
|
||||
print("This script builds the html documentation from rst/asciidoc sources.\n")
|
||||
print(" Run 'make docs' to build everything.")
|
||||
print(" Run 'make viewdocs' to build and then preview in a web browser.")
|
||||
sys.exit(0)
|
||||
|
||||
build_rst_docs()
|
||||
|
@ -93,4 +94,4 @@ if __name__ == '__main__':
|
|||
if "view" in sys.argv:
|
||||
import webbrowser
|
||||
if not webbrowser.open('htmlout/index.html'):
|
||||
print >> sys.stderr, "Could not open on your webbrowser."
|
||||
print("Could not open on your webbrowser.", file=sys.stderr)
|
||||
|
|
|
@ -140,7 +140,7 @@ def list_modules(module_dir, depth=0):
|
|||
if os.path.isdir(d):
|
||||
|
||||
res = list_modules(d, depth + 1)
|
||||
for key in res.keys():
|
||||
for key in list(res.keys()):
|
||||
if key in categories:
|
||||
categories[key] = merge_hash(categories[key], res[key])
|
||||
res.pop(key, None)
|
||||
|
@ -451,7 +451,7 @@ def main():
|
|||
|
||||
categories = list_modules(options.module_dir)
|
||||
last_category = None
|
||||
category_names = categories.keys()
|
||||
category_names = list(categories.keys())
|
||||
category_names.sort()
|
||||
|
||||
category_list_path = os.path.join(options.output_dir, "modules_by_category.rst")
|
||||
|
|
Loading…
Reference in a new issue