ui: avoid needless casting to a str
In many cases, we don't need to cast to a str because the object will
be cast when it is eventually written.
As part of testing this, I added some code to raise exceptions when a
non-str was passed in and wasn't able to trigger it. i.e. we're already
passing str into this function everywhere, so the casting isn't
necessary.
--- a/hgext/color.py Tue Nov 24 11:23:10 2015 -0800
+++ b/hgext/color.py Sun Nov 22 14:44:55 2015 -0800
@@ -434,16 +434,15 @@
label = opts.get('label', '')
if self._buffers:
if self._bufferapplylabels:
- self._buffers[-1].extend(self.label(str(a), label)
- for a in args)
+ self._buffers[-1].extend(self.label(a, label) for a in args)
else:
- self._buffers[-1].extend(str(a) for a in args)
+ self._buffers[-1].extend(args)
elif self._colormode == 'win32':
for a in args:
win32print(a, super(colorui, self).write, **opts)
else:
return super(colorui, self).write(
- *[self.label(str(a), label) for a in args], **opts)
+ *[self.label(a, label) for a in args], **opts)
def write_err(self, *args, **opts):
if self._colormode is None:
@@ -457,7 +456,7 @@
win32print(a, super(colorui, self).write_err, **opts)
else:
return super(colorui, self).write_err(
- *[self.label(str(a), label) for a in args], **opts)
+ *[self.label(a, label) for a in args], **opts)
def showlabel(self, msg, label):
if label and msg:
--- a/mercurial/ui.py Tue Nov 24 11:23:10 2015 -0800
+++ b/mercurial/ui.py Sun Nov 22 14:44:55 2015 -0800
@@ -622,11 +622,11 @@
a label of "status.modified" for modified files.
'''
if self._buffers:
- self._buffers[-1].extend([str(a) for a in args])
+ self._buffers[-1].extend(a for a in args)
else:
self._progclear()
for a in args:
- self.fout.write(str(a))
+ self.fout.write(a)
def write_err(self, *args, **opts):
self._progclear()
@@ -636,7 +636,7 @@
if not getattr(self.fout, 'closed', False):
self.fout.flush()
for a in args:
- self.ferr.write(str(a))
+ self.ferr.write(a)
# stderr may be buffered under win32 when redirected to files,
# including stdout.
if not getattr(self.ferr, 'closed', False):