[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[PATCH] 470733 - yet more unicode errors
- From: Chris Lumens <clumens redhat com>
- To: anaconda-devel-list redhat com
- Subject: [PATCH] 470733 - yet more unicode errors
- Date: Tue, 11 Nov 2008 11:38:50 -0500
Here's the latest in our continuing war against UnicodeDecodeError. I
don't want to claim victory yet, but I think this patch gets us closer.
The real problem is in assembling the string in AnacondaCallback, as
usual. All the rest of the patch is just me converting our typical
unicode() call into a function so we can be more lazy in the future.
- Chris
diff --git a/yuminstall.py b/yuminstall.py
index a962639..53f6327 100644
--- a/yuminstall.py
+++ b/yuminstall.py
@@ -67,21 +67,31 @@ urlgrabber.grabber.default_grabber.opts.user_agent = "%s (anaconda)/%s" %(produc
import iutil
import isys
+def toUTF8(str):
+ if type(str) != unicode:
+ return unicode(str, encoding='utf-8')
+ else:
+ return str
+
def size_string (size):
def number_format(s):
return locale.format("%s", s, 1)
+ retval = None
+
if size > 1024 * 1024:
size = size / (1024*1024)
- return _("%s MB") %(number_format(size),)
+ retval = _("%s MB") %(number_format(size),)
elif size > 1024:
size = size / 1024
- return _("%s KB") %(number_format(size),)
+ retval = _("%s KB") %(number_format(size),)
else:
if size == 1:
- return _("%s Byte") %(number_format(size),)
+ retval = _("%s Byte") %(number_format(size),)
else:
- return _("%s Bytes") %(number_format(size),)
+ retval = _("%s Bytes") %(number_format(size),)
+
+ return toUTF8(retval)
class AnacondaCallback:
@@ -155,14 +165,12 @@ class AnacondaCallback:
repo = self.repos.getRepo(po.repoid)
pkgStr = "%s-%s-%s.%s" % (po.name, po.version, po.release, po.arch)
- s = _("<b>Installing %s</b> (%s)\n") %(pkgStr, size_string(hdr['size']))
- summary = gettext.ldgettext("redhat-dist", hdr['summary'] or "")
- if type(summary) != unicode:
- summary = unicode(summary, encoding='utf-8')
+ s = toUTF8(_("<b>Installing %s</b> (%s)\n")) %(pkgStr, size_string(hdr['size']))
+ summary = toUTF8(gettext.ldgettext("redhat-dist", hdr['summary'] or ""))
s += summary.strip()
self.progress.set_label(s)
- self.instLog.write(self.modeText % pkgStr)
+ self.instLog.write(self.modeText % str(pkgStr))
self.instLog.flush()
self.openfile = None
@@ -645,9 +653,7 @@ class AnacondaYum(YumSorter):
else:
buttons = [_("Re_boot"), _("_Retry")]
- pkgFile = os.path.basename(package.returnSimple('relativepath'))
- if type(pkgFile) != unicode:
- pkgFile = unicode(pkgFile, encoding='utf-8')
+ pkgFile = toUTF8(os.path.basename(package.returnSimple('relativepath')))
rc = self.anaconda.intf.messageWindow(_("Error"),
_("The file %s cannot be opened. This is due to a missing "
@@ -839,11 +845,8 @@ class AnacondaYum(YumSorter):
msg = _("There was an error running your transaction for "
"the following reason(s): %s.\n") % ', '.join(uniqueProbs.values())
- if type(spaceprob) != unicode:
- spaceprob = unicode(spaceprob, encoding='utf-8')
-
- if type(fileprob) != unicode:
- fileprob = unicode(fileprob, encoding='utf-8')
+ spaceprob = toUTF8(spaceprob)
+ fileprob = toUTF8(fileprob)
if len(self.anaconda.backend.getRequiredMedia()) > 1:
intf.detailedMessageWindow(_("Error Running Transaction"),
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]