Skip to content

Commit 7f1db43

Browse files
committed
Revert changes not related to empy
Signed-off-by: Jose Luis Rivero <jrivero@honurobotics.com>
1 parent 37c2c90 commit 7f1db43

File tree

2 files changed

+47
-11
lines changed

2 files changed

+47
-11
lines changed

bloom/generators/debian/generator.py

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,23 @@
104104
debug(traceback.format_exc())
105105
error("rosdistro was not detected, please install it.", exit=True)
106106

107+
try:
108+
import em
109+
except ImportError:
110+
debug(traceback.format_exc())
111+
error("empy was not detected, please install it.", exit=True)
112+
113+
# Fix unicode bug in empy
114+
# This should be removed once upstream empy is fixed
115+
# See: https://github.com/ros-infrastructure/bloom/issues/196
116+
try:
117+
em.str = unicode
118+
em.Stream.write_old = em.Stream.write
119+
em.Stream.write = lambda self, data: em.Stream.write_old(self, data.encode('utf8'))
120+
except NameError:
121+
pass
122+
# End fix
123+
107124
# Drop the first log prefix for this command
108125
enable_drop_first_log_prefix(True)
109126

@@ -136,7 +153,10 @@ def __place_template_folder(group, src, dst, gbp=False):
136153
debug("Not overwriting existing file '{0}'".format(template_dst))
137154
else:
138155
with io.open(template_dst, 'w', encoding='utf-8') as f:
139-
if isinstance(template, bytes):
156+
if not isinstance(template, str):
157+
template = template.decode('utf-8')
158+
# Python 2 API needs a `unicode` not a utf-8 string.
159+
elif sys.version_info.major == 2:
140160
template = template.decode('utf-8')
141161
f.write(template)
142162
shutil.copystat(template_abs_path, template_dst)
@@ -465,11 +485,17 @@ def generate_substitutions_from_package(
465485
data['Licenses'] = licenses
466486

467487
def convertToUnicode(obj):
468-
if isinstance(obj, bytes):
469-
return str(obj.decode('utf8'))
470-
elif isinstance(obj, str):
471-
return obj
472-
elif isinstance(obj, list):
488+
if sys.version_info.major == 2:
489+
if isinstance(obj, str):
490+
return unicode(obj.decode('utf8'))
491+
elif isinstance(obj, unicode):
492+
return obj
493+
else:
494+
if isinstance(obj, bytes):
495+
return str(obj.decode('utf8'))
496+
elif isinstance(obj, str):
497+
return obj
498+
if isinstance(obj, list):
473499
for i, val in enumerate(obj):
474500
obj[i] = convertToUnicode(val)
475501
return obj
@@ -518,6 +544,8 @@ def __process_template_folder(path, subs):
518544
continue
519545
# Write the result
520546
with io.open(template_path, 'w', encoding='utf-8') as f:
547+
if sys.version_info.major == 2:
548+
result = result.decode('utf-8')
521549
f.write(result)
522550
# Copy the permissions
523551
shutil.copymode(item, template_path)

bloom/generators/rpm/generator.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,17 @@ def generate_substitutions_from_package(
320320
summarize_dependency_mapping(data, depends, build_depends, resolved_deps)
321321

322322
def convertToUnicode(obj):
323-
if isinstance(obj, bytes):
324-
return str(obj.decode('utf8'))
325-
elif isinstance(obj, str):
326-
return obj
327-
elif isinstance(obj, list):
323+
if sys.version_info.major == 2:
324+
if isinstance(obj, str):
325+
return unicode(obj.decode('utf8'))
326+
elif isinstance(obj, unicode):
327+
return obj
328+
else:
329+
if isinstance(obj, bytes):
330+
return str(obj.decode('utf8'))
331+
elif isinstance(obj, str):
332+
return obj
333+
if isinstance(obj, list):
328334
for i, val in enumerate(obj):
329335
obj[i] = convertToUnicode(val)
330336
return obj
@@ -370,6 +376,8 @@ def __process_template_folder(path, subs):
370376
result = expand_template_em(template, subs)
371377
# Write the result
372378
with io.open(template_path, 'w', encoding='utf-8') as f:
379+
if sys.version_info.major == 2:
380+
result = result.decode('utf-8')
373381
f.write(result)
374382
# Copy the permissions
375383
shutil.copymode(item, template_path)

0 commit comments

Comments
 (0)