[Email-SIG] PEP 8 module names for email 3.1?

Tokio Kikuchi tkikuchi at is.kochi-u.ac.jp
Sun Feb 12 01:38:55 CET 2006


Barry Warsaw wrote:
> 
> http://svn.python.org/projects/sandbox/trunk/emailpkg/3.1/
> 
> I'm going to post a message to python-dev, but let's keep the discussion
> here.

Hi,

I had a short time importing this code into my mailman-2.2 test code.

It looks like we need adding 'email.mime' into the packages list.

      url='http://www.python.org/sigs/email-sig',
      packages=['email', 'email.mime'],
      )

Another problem was that charset was stored in unicode and doesn't fit
into current mailman code.  A sample test code below illustrates this
problem:

$ cat testcset.py
import email.Message
import email.Charset

m = email.Message.Message()
m.set_payload('Hello!\n', 'us-ascii')
charset = m.get_content_charset()
if type(charset) <> type(email.Charset.Charset()):
    charset = email.Charset.Charset(charset)
print type(charset)

$ python testcset.py
Traceback (most recent call last):
  File "testcset.py", line 8, in ?
    charset = email.Charset.Charset(charset)
  File "/home/tkikuchi/work/email/3.1/email/charset.py", line 190, in
__init__
    input_charset = unicode(input_charset, 'ascii').lower()
TypeError: decoding Unicode is not supported

This is fixed by this patch:
$ diff -u charset.py.orig charset.py
--- charset.py.orig     2006-02-12 09:01:14.374411200 +0900
+++ charset.py  2006-02-12 09:03:18.663129600 +0900
@@ -187,7 +187,7 @@
     def __init__(self, input_charset=DEFAULT_CHARSET):
         # RFC 2046, $4.1.2 says charsets are not case sensitive.  We
coerce to
         # unicode because its .lower() is locale insensitive.
-        input_charset = unicode(input_charset, 'ascii').lower()
+        input_charset = unicode(input_charset,
'ascii').lower().encode('ascii')

         # Set the input charset after filtering through the aliases
         self.input_charset = ALIASES.get(input_charset, input_charset)
         # We can try to guess which encoding and conversion to use by the

But, I don't know if this is the right fix.  A charset should be written
in ASCII only and I don't know if there is a locale dependent lower()
function which fails to lower the ASCII characters.

-- 
Tokio Kikuchi, tkikuchi@ is.kochi-u.ac.jp
http://weather.is.kochi-u.ac.jp/


More information about the Email-SIG mailing list