Kaydet (Commit) 74b8d333 authored tarafından Amaury Forgeot d'Arc's avatar Amaury Forgeot d'Arc

#2622 Import errors in email.message, from a py2app standalone application.

Patch by Mads Kiilerich, Reviewed by Barry Warsaw.
üst c91cbb94
...@@ -20,7 +20,7 @@ in To:, From:, Cc:, etc. fields, as well as Subject: lines. ...@@ -20,7 +20,7 @@ in To:, From:, Cc:, etc. fields, as well as Subject: lines.
This module does not do the line wrapping or end-of-line character conversion This module does not do the line wrapping or end-of-line character conversion
necessary for proper internationalized headers; it only does dumb encoding and necessary for proper internationalized headers; it only does dumb encoding and
decoding. To deal with the various line wrapping issues, use the email.Header decoding. To deal with the various line wrapping issues, use the email.header
module. module.
""" """
...@@ -167,7 +167,7 @@ def decode(s, convert_eols=None): ...@@ -167,7 +167,7 @@ def decode(s, convert_eols=None):
This function does not parse a full MIME header value encoded with This function does not parse a full MIME header value encoded with
base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high
level email.Header class for that functionality. level email.header class for that functionality.
""" """
if not s: if not s:
return s return s
......
...@@ -62,7 +62,7 @@ def decode_header(header): ...@@ -62,7 +62,7 @@ def decode_header(header):
header, otherwise a lower-case string containing the name of the character header, otherwise a lower-case string containing the name of the character
set specified in the encoded string. set specified in the encoded string.
An email.Errors.HeaderParseError may be raised when certain decoding error An email.errors.HeaderParseError may be raised when certain decoding error
occurs (e.g. a base64 decoding exception). occurs (e.g. a base64 decoding exception).
""" """
# If no encoding, just return the header # If no encoding, just return the header
...@@ -337,8 +337,8 @@ class Header: ...@@ -337,8 +337,8 @@ class Header:
# different charsets and/or encodings, and the resulting header will # different charsets and/or encodings, and the resulting header will
# accurately reflect each setting. # accurately reflect each setting.
# #
# Each encoding can be email.Utils.QP (quoted-printable, for # Each encoding can be email.utils.QP (quoted-printable, for
# ASCII-like character sets like iso-8859-1), email.Utils.BASE64 # ASCII-like character sets like iso-8859-1), email.utils.BASE64
# (Base64, for non-ASCII like character sets like KOI8-R and # (Base64, for non-ASCII like character sets like KOI8-R and
# iso-2022-jp), or None (no encoding). # iso-2022-jp), or None (no encoding).
# #
......
...@@ -129,7 +129,7 @@ class Message: ...@@ -129,7 +129,7 @@ class Message:
"From ". For more flexibility, use the flatten() method of a "From ". For more flexibility, use the flatten() method of a
Generator instance. Generator instance.
""" """
from email.Generator import Generator from email.generator import Generator
fp = StringIO() fp = StringIO()
g = Generator(fp) g = Generator(fp)
g.flatten(self, unixfrom=unixfrom) g.flatten(self, unixfrom=unixfrom)
...@@ -787,4 +787,4 @@ class Message: ...@@ -787,4 +787,4 @@ class Message:
return [part.get_content_charset(failobj) for part in self.walk()] return [part.get_content_charset(failobj) for part in self.walk()]
# I.e. def walk(self): ... # I.e. def walk(self): ...
from email.Iterators import walk from email.iterators import walk
...@@ -11,7 +11,7 @@ character set, but that includes some 8-bit characters that are normally not ...@@ -11,7 +11,7 @@ character set, but that includes some 8-bit characters that are normally not
allowed in email bodies or headers. allowed in email bodies or headers.
Quoted-printable is very space-inefficient for encoding binary files; use the Quoted-printable is very space-inefficient for encoding binary files; use the
email.base64MIME module for that instead. email.base64mime module for that instead.
This module provides an interface to encode and decode both headers and bodies This module provides an interface to encode and decode both headers and bodies
with quoted-printable encoding. with quoted-printable encoding.
...@@ -23,7 +23,7 @@ in To:/From:/Cc: etc. fields, as well as Subject: lines. ...@@ -23,7 +23,7 @@ in To:/From:/Cc: etc. fields, as well as Subject: lines.
This module does not do the line wrapping or end-of-line character This module does not do the line wrapping or end-of-line character
conversion necessary for proper internationalized headers; it only conversion necessary for proper internationalized headers; it only
does dumb encoding and decoding. To deal with the various line does dumb encoding and decoding. To deal with the various line
wrapping issues, use the email.Header module. wrapping issues, use the email.header module.
""" """
__all__ = [ __all__ = [
...@@ -330,7 +330,7 @@ def header_decode(s): ...@@ -330,7 +330,7 @@ def header_decode(s):
This function does not parse a full MIME header value encoded with This function does not parse a full MIME header value encoded with
quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use
the high level email.Header class for that functionality. the high level email.header class for that functionality.
""" """
s = s.replace('_', ' ') s = s.replace('_', ' ')
return re.sub(r'=\w{2}', _unquote_match, s) return re.sub(r'=\w{2}', _unquote_match, s)
...@@ -6,9 +6,9 @@ import unittest ...@@ -6,9 +6,9 @@ import unittest
from test.test_support import run_unittest from test.test_support import run_unittest
from email.test.test_email import TestEmailBase from email.test.test_email import TestEmailBase
from email.Charset import Charset from email.charset import Charset
from email.Header import Header, decode_header from email.header import Header, decode_header
from email.Message import Message from email.message import Message
# We're compatible with Python 2.3, but it doesn't have the built-in Asian # We're compatible with Python 2.3, but it doesn't have the built-in Asian
# codecs, so we have to skip all these tests. # codecs, so we have to skip all these tests.
......
...@@ -17,7 +17,7 @@ from test.test_support import TestSkipped ...@@ -17,7 +17,7 @@ from test.test_support import TestSkipped
import email import email
from email import __file__ as testfile from email import __file__ as testfile
from email.Iterators import _structure from email.iterators import _structure
def openfile(filename): def openfile(filename):
from os.path import join, dirname, abspath from os.path import join, dirname, abspath
......
...@@ -99,11 +99,11 @@ class MaildirTestCase(unittest.TestCase): ...@@ -99,11 +99,11 @@ class MaildirTestCase(unittest.TestCase):
def test_unix_mbox(self): def test_unix_mbox(self):
### should be better! ### should be better!
import email.Parser import email.parser
fname = self.createMessage("cur", True) fname = self.createMessage("cur", True)
n = 0 n = 0
for msg in mailbox.PortableUnixMailbox(open(fname), for msg in mailbox.PortableUnixMailbox(open(fname),
email.Parser.Parser().parse): email.parser.Parser().parse):
n += 1 n += 1
self.assertEqual(msg["subject"], "Simple Test") self.assertEqual(msg["subject"], "Simple Test")
self.assertEqual(len(str(msg)), len(FROM_)+len(DUMMY_MESSAGE)) self.assertEqual(len(str(msg)), len(FROM_)+len(DUMMY_MESSAGE))
......
"""Manage HTTP Response Headers """Manage HTTP Response Headers
Much of this module is red-handedly pilfered from email.Message in the stdlib, Much of this module is red-handedly pilfered from email.message in the stdlib,
so portions are Copyright (C) 2001,2002 Python Software Foundation, and were so portions are Copyright (C) 2001,2002 Python Software Foundation, and were
written by Barry Warsaw. written by Barry Warsaw.
""" """
...@@ -174,7 +174,7 @@ class Headers: ...@@ -174,7 +174,7 @@ class Headers:
h.add_header('content-disposition', 'attachment', filename='bud.gif') h.add_header('content-disposition', 'attachment', filename='bud.gif')
Note that unlike the corresponding 'email.Message' method, this does Note that unlike the corresponding 'email.message' method, this does
*not* handle '(charset, language, value)' tuples: all values must be *not* handle '(charset, language, value)' tuples: all values must be
strings or None. strings or None.
""" """
......
...@@ -350,6 +350,9 @@ Core and Builtins ...@@ -350,6 +350,9 @@ Core and Builtins
Library Library
------- -------
- Issue #2622: Fixed an ImportError when importing email.messsage from a
standalone application built with py2exe or py2app.
- Issue #6459: distutils.command.build_ext.get_export_symbols now uses the - Issue #6459: distutils.command.build_ext.get_export_symbols now uses the
"PyInit" prefix, rather than "init". "PyInit" prefix, rather than "init".
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment