mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
#2622 Import errors in email.message, from a py2app standalone application.
Patch by Mads Kiilerich, Reviewed by Barry Warsaw.
This commit is contained in:
parent
c91cbb948a
commit
74b8d333b7
9 changed files with 21 additions and 18 deletions
|
@ -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):
|
||||||
|
|
||||||
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):
|
||||||
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:
|
||||||
# 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:
|
||||||
"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:
|
||||||
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
|
||||||
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.
|
||||||
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):
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
|
|
||||||
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):
|
||||||
|
|
||||||
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))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""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:
|
||||||
|
|
||||||
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
|
||||||
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".
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue