From b83ab91578ee13089db2286844161a9a6ae5e9b6 Mon Sep 17 00:00:00 2001 From: "Ian Y. Choi" Date: Sat, 22 Jun 2019 15:05:35 +0900 Subject: [PATCH] Fix publishdocs error with Python 3 This patch fixes the following error - AttributeError: 'bytes' object has no attribute 'encode' Change-Id: I49febda11f53dc8dc794deaa21d846c5875b613e --- tools/www-generator.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/www-generator.py b/tools/www-generator.py index 9d36ca757..cf23370b3 100755 --- a/tools/www-generator.py +++ b/tools/www-generator.py @@ -15,6 +15,7 @@ import argparse import logging import os +import six import sys import lxml.html @@ -97,7 +98,8 @@ def main(): lxml.html.fromstring(template.render()), pretty_print=True) else: - output = template.render(REVERSE=service_types.reverse) + output_string = template.render(REVERSE=service_types.reverse) + output = output_string.encode() except Exception as e: logger.error("rendering template %s failed: %s" % (templateFile, e)) @@ -113,7 +115,10 @@ def main(): os.makedirs(target_directory) logger.debug("writing %s" % target_file) with open(os.path.join(target_file), 'wb') as fh: - fh.write(output.encode('utf8')) + if six.PY3: + fh.write(output) + else: + fh.write(output.encode('utf8')) except (IOError, OSError, UnicodeEncodeError) as e: logger.error("writing %s failed: %s" % (target_file, e)) raise