[Yum-devel] [PATCH] Rearrange the free space checking code
James Antill
james at fedoraproject.org
Tue Aug 9 14:02:32 UTC 2011
On Tue, 2011-08-09 at 05:35 -0400, Zdenek Pavlas wrote:
> >> except yum.Errors.YumBaseError, e:
> >> - return 1, [str(e)]
> >> + return 1, [to_utf8(e)]
>
> > This can't be "right", although I wouldn't be shocked to find out the
> > original is "wrong" in some cases.
>
> str(e) is certainly wrong. It calls __str__() method which returns
> 'e.value', possibly a unicode string. str() then tries to convert
> it to <type 'str'> with ascii codec, triggering an exception.
Yeh.
> to_utf8(e) is wrong, too. It does nothing (returns e), but the logging
> module later does unicode(e), and that's fine.
Yeh.
> > At a guess it should probably be [exception2msg(e)], might as well put
> > that in a different patch though.
>
> exception2msg() is in utils.py, and cli.py can't import that module
> without major code re-shuffling because it extends class YumBaseCli
> which is in the middle of cli.py
Ok, so we can move it about. Probably i18n.py or at worst misc.py.
> But, all what exception2msg() really does is 'to_unicode(e.value)',
> and YumBaseError.__unicode__() implements exactly the same thing.
> So, I suggest using [unicode(e)] instead. Is that ok?
The problem is that unicode(e) has problems on RHEL-5 python, IIRC.
More information about the Yum-devel
mailing list