[Mailman-Developers] Try 2: URGENT BREAKAGE: New unicode-related
error with CVS
Tokio Kikuchi
tkikuchi at is.kochi-u.ac.jp
Fri Feb 7 12:26:25 EST 2003
Sorry, Dan.
I have just updated the patch. I uploaded an intermediate version.
https://sourceforge.net/tracker/download.php?group_id=103&atid=300103&file_id=41736&aid=674401
Dan Mick wrote:
> Tokio:
>
> I haven't tried it yet, but I guess I don't understand how this is going
> to help.
> The problem is that unicode() inside Header.__unicode__() fails, because
> the input
> string has 8-bit characters in it; your patch still calls __unicode__()
> outside
> a try/except.
>
> Tokio Kikuchi wrote:
>
>> Dan,
>>
>> It is not a good idea to hack email package. The error raised should be
>> treated in higher coding level. Please try patch #674401, most recent one
>> (ToDigest.py.diff2.txt).
>> https://sourceforge.net/tracker/download.php?group_id=103&atid=300103&file_id=41727&aid=674401
>>
>>
>> Dan Mick wrote:
>>
>>> One of my users has 8bit characters in his "username" string (the
>>> 'comment' part of his
>>> From address); that's causing this problem. The Unicode stuff
>>> doesn't like that.
>>>
>>> This hacks around the problem for now (just discarding those
>>> characters when manipulating
>>> the address). It's not a fix, but it let mail flow for me until a
>>> better one
>>> comes along.
>>>
>>>
>>> *** Header.py Mon Oct 14 09:50:57 2002
>>> --- /export/home/mailman/pythonlib/email/Header.py Thu Feb 6
>>> 12:15:55 2003
>>> ***************
>>> *** 183,189 ****
>>> def __unicode__(self):
>>> """Helper for the built-in unicode function."""
>>> # charset item is a Charset instance so we need to
>>> stringify it.
>>> ! uchunks = [unicode(s, str(charset)) for s, charset in
>>> self._chunks]
>>> return u''.join(uchunks)
>>>
>>> # Rich comparison operators for equality only. BAW: does it
>>> make sense to
>>> --- 183,189 ----
>>> def __unicode__(self):
>>> """Helper for the built-in unicode function."""
>>> # charset item is a Charset instance so we need to
>>> stringify it.
>>> ! uchunks = [unicode(s, str(charset), 'ignore') for s,
>>> charset in self._chunks]
>>> return u''.join(uchunks)
>>>
>>> # Rich comparison operators for equality only. BAW: does it
>>> make sense to
>>> ***************
>>> *** 227,233 ****
>>> # Possibly raise UnicodeError if the byte string
>>> can't be
>>> # converted to a unicode with the input codec of
>>> the charset.
>>> incodec = charset.input_codec or 'us-ascii'
>>> ! ustr = unicode(s, incodec)
>>> # Now make sure that the unicode could be converted
>>> back to a
>>> # byte string with the output codec, which may be
>>> different
>>> # than the iput coded. Still, use the original
>>> byte string.
>>> --- 227,233 ----
>>> # Possibly raise UnicodeError if the byte string
>>> can't be
>>> # converted to a unicode with the input codec of
>>> the charset.
>>> incodec = charset.input_codec or 'us-ascii'
>>> ! ustr = unicode(s, incodec, 'ignore')
>>> # Now make sure that the unicode could be converted
>>> back to a
>>> # byte string with the output codec, which may be
>>> different
>>> # than the iput coded. Still, use the original
>>> byte string.
>>>
>>> Dan Mick wrote:
>>>
>>>> Sent this last night; haven't seen it on the list yet
>>>>
>>>> Updated to CVS today, and now I'm seeing these; anyone else?
>>>> This seems to be stopping all traffic to the list
>>>>
>>>>
>>>> Feb 05 20:17:15 2003 (4633) Uncaught runner exception: ASCII
>>>> decoding error: ordinal not in range(128)
>>>> Feb 05 20:17:15 2003 (4633) Traceback (most recent call last):
>>>> File "/export/home/mailman/Mailman/Queue/Runner.py", line 105, in
>>>> _oneloop
>>>> self._onefile(msg, msgdata)
>>>> File "/export/home/mailman/Mailman/Queue/Runner.py", line 155, in
>>>> _onefile
>>>> keepqueued = self._dispose(mlist, msg, msgdata)
>>>> File "/export/home/mailman/Mailman/Queue/IncomingRunner.py", line
>>>> 130, in _dispose
>>>> more = self._dopipeline(mlist, msg, msgdata, pipeline)
>>>> File "/export/home/mailman/Mailman/Queue/IncomingRunner.py", line
>>>> 153, in _dopipeline
>>>> sys.modules[modname].process(mlist, msg, msgdata)
>>>> File "/export/home/mailman/Mailman/Handlers/ToDigest.py", line 79,
>>>> in process
>>>> send_digests(mlist, mboxfp)
>>>> File "/export/home/mailman/Mailman/Handlers/ToDigest.py", line
>>>> 120, in send_digests
>>>> send_i18n_digests(mlist, mboxfp)
>>>> File "/export/home/mailman/Mailman/Handlers/ToDigest.py", line
>>>> 213, in send_i18n_digests
>>>> addresses = getaddresses([lheader(msg.get('from', ''), lcset)])
>>>> File "/export/home/mailman/Mailman/Handlers/ToDigest.py", line
>>>> 372, in lheader
>>>> h = make_header(decode_header(s), **kws)
>>>> File "/export/home/mailman/pythonlib/email/Header.py", line 123,
>>>> in make_header
>>>> h.append(s, charset)
>>>> File "/export/home/mailman/pythonlib/email/Header.py", line 230,
>>>> in append
>>>> ustr = unicode(s, incodec)
>>>> UnicodeError: ASCII decoding error: ordinal not in range(128)
>>>>
>>>> Feb 05 20:17:15 2003 (4633) SHUNTING:
>>>> 1044504218.645468+31ecfd687a04619284497495da50c740cbddf364
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailman-Developers mailing list
>>>> Mailman-Developers at python.org
>>>> http://mail.python.org/mailman/listinfo/mailman-developers
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailman-Developers mailing list
>>> Mailman-Developers at python.org
>>> http://mail.python.org/mailman/listinfo/mailman-developers
>>>
>>>
>>
>>
>
>
>
More information about the Mailman-Developers
mailing list