-# Copyright (C) 2001,2002 Python Software Foundation
-# Author: barry@zope.com (Barry Warsaw)
+# Copyright (C) 2001-2004 Python Software Foundation
+# Author: barry@python.org (Barry Warsaw)
-"""Miscellaneous utilities.
-"""
+"""Miscellaneous utilities."""
-import time
-import socket
+import os
import re
+import time
+import base64
import random
-import os
+import socket
import warnings
from cStringIO import StringIO
-from types import ListType
from email._parseaddr import quote
from email._parseaddr import AddressList as _AddressList
from email._parseaddr import parsedate as _parsedate
from email._parseaddr import parsedate_tz as _parsedate_tz
-try:
- True, False
-except NameError:
- True = 1
- False = 0
-
-try:
- from quopri import decodestring as _qdecode
-except ImportError:
- # Python 2.1 doesn't have quopri.decodestring()
- def _qdecode(s):
- import quopri as _quopri
-
- if not s:
- return s
- infp = StringIO(s)
- outfp = StringIO()
- _quopri.decode(infp, outfp)
- value = outfp.getvalue()
- if not s.endswith('\n') and value.endswith('\n'):
- return value[:-1]
- return value
-
-import base64
+from quopri import decodestring as _qdecode
# Intrapackage imports
from email.Encoders import _bencode, _qencode
# Intra-package import here to avoid circular import problems.
from email.Header import decode_header
L = decode_header(s)
- if not isinstance(L, ListType):
+ if not isinstance(L, list):
# s wasn't decoded
return s
-# Copyright (C) 2001,2002 Python Software Foundation
-# Author: barry@zope.com (Barry Warsaw)
+# Copyright (C) 2001-2004 Python Software Foundation
+# Author: barry@python.org (Barry Warsaw)
-"""A package for parsing, handling, and generating email messages.
-"""
+"""A package for parsing, handling, and generating email messages."""
-__version__ = '2.5.5'
+__version__ = '3.0a0'
__all__ = [
'base64MIME',
'message_from_file',
]
-try:
- True, False
-except NameError:
- True = 1
- False = 0
-
\f
# Some convenience routines. Don't import Parser and Message as side-effects
_class = Message
return Parser(_class, strict=strict).parsestr(s)
+
def message_from_file(fp, _class=None, strict=False):
"""Read a file and parse its contents into a Message object model.
from email.Message import Message
_class = Message
return Parser(_class, strict=strict).parse(fp)
-
-
-\f
-# Patch encodings.aliases to recognize 'ansi_x3.4_1968' which isn't a standard
-# alias in Python 2.1.3, but is used by the email package test suite.
-from encodings.aliases import aliases # The aliases dictionary
-if not aliases.has_key('ansi_x3.4_1968'):
- aliases['ansi_x3.4_1968'] = 'ascii'
-del aliases # Not needed any more
-# Copyright (C) 2002 Python Software Foundation
+# Copyright (C) 2002-2004 Python Software Foundation
"""Email address parsing code.
"""
import time
-from types import TupleType
-
-try:
- True, False
-except NameError:
- True = 1
- False = 0
SPACE = ' '
EMPTYSTRING = ''
def parsedate(data):
"""Convert a time string to a time tuple."""
t = parsedate_tz(data)
- if isinstance(t, TupleType):
+ if isinstance(t, tuple):
return t[:9]
else:
return t
from binascii import b2a_base64, a2b_base64
from email.Utils import fix_eols
-try:
- from email._compat22 import _floordiv
-except SyntaxError:
- # Python 2.1 spells integer division differently
- from email._compat21 import _floordiv
-
-
CRLF = '\r\n'
NL = '\n'
EMPTYSTRING = ''
# See also Charset.py
MISC_LEN = 7
-try:
- True, False
-except NameError:
- True = 1
- False = 0
-
\f
# Helpers
# length, after the RFC chrome is added in.
base64ed = []
max_encoded = maxlinelen - len(charset) - MISC_LEN
- max_unencoded = _floordiv(max_encoded * 3, 4)
+ max_unencoded = max_encoded * 3 // 4
for i in range(0, len(header), max_unencoded):
base64ed.append(b2a_base64(header[i:i+max_unencoded]))
s = fix_eols(s)
encvec = []
- max_unencoded = _floordiv(maxlinelen * 3, 4)
+ max_unencoded = maxlinelen * 3 // 4
for i in range(0, len(s), max_unencoded):
# BAW: should encode() inherit b2a_base64()'s dubious behavior in
# adding a newline to the encoded string?
-# Copyright (C) 2001,2002 Python Software Foundation
+# Copyright (C) 2001-2004 Python Software Foundation
# Author: che@debian.org (Ben Gertzfield)
"""Quoted-printable content transfer encoding per RFCs 2045-2047.
hqre = re.compile(r'[^-a-zA-Z0-9!*+/ ]')
bqre = re.compile(r'[^ !-<>-~\t]')
-try:
- True, False
-except NameError:
- True = 1
- False = 0
-
\f
# Helpers