cpython/Lib/email
Miss Islington (bot) a87ba60fe5 bpo-27240 Rewrite the email header folding algorithm. (GH-3488) (#4693)
The original algorithm tried to delegate the folding to the tokens so
that those tokens whose folding rules differed could specify the
differences.  However, this resulted in a lot of duplicated code because
most of the rules were the same.

The new algorithm moves all folding logic into a set of functions
external to the token classes, but puts the information about which
tokens can be folded in which ways on the tokens...with the exception of
mime-parameters, which are a special case (which was not even
implemented in the old folder).

This algorithm can still probably be improved and hopefully simplified
somewhat.

Note that some of the test expectations are changed.  I believe the
changes are toward more desirable and consistent behavior: in general
when (re) folding a line the canonical version of the tokens is
generated, rather than preserving errors or extra whitespace.
(cherry picked from commit 85d5c18c9d)
2017-12-03 19:46:23 -05:00
..
mime Issue #27445: Merge from 3.5 2016-09-08 19:42:11 +03:00
__init__.py #22508: Drop email __version__ string. It no longer means anything. 2014-10-03 13:02:47 -04:00
_encoded_words.py Escaped backslashes in docstrings. 2015-04-03 18:12:41 +03:00
_header_value_parser.py bpo-27240 Rewrite the email header folding algorithm. (GH-3488) (#4693) 2017-12-03 19:46:23 -05:00
_parseaddr.py Closes #15925: fix regression in parsedate() and parsedate_tz() that should return None if unable to parse the argument. 2012-09-22 09:03:56 +02:00
_policybase.py [email] bpo-29478: Fix passing max_line_length=None from Compat32 policy (GH-595) (GH-2233) 2017-06-16 07:18:58 -07:00
architecture.rst [3.6] Fix typos in multiple `.rst` files (GH-1668) (#1702) 2017-05-22 00:26:01 +03:00
base64mime.py Correct misspellings of ISO-8859 2016-08-10 05:25:16 +00:00
charset.py Issue #23326: Removed __ne__ implementations. Since fixing default __ne__ 2015-01-31 12:05:05 +02:00
contentmanager.py Merge with 3.5 2016-09-09 12:09:07 -07:00
encoders.py #19957: Simplify encode_7or8bit now that _payload is always str. 2013-12-12 21:40:20 -05:00
errors.py Now that Defects are Exception subclasses, call super. 2012-06-08 22:45:46 -04:00
feedparser.py #20476: Deal with the message_factory circular import differently. 2016-09-10 00:22:25 -04:00
generator.py Merge: #19003: Only replace \r and/or \n line endings in email.generator. 2016-09-11 17:23:33 -04:00
header.py Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-08-30 10:47:49 -07:00
headerregistry.py bpo-27240 Rewrite the email header folding algorithm. (GH-3488) (#4693) 2017-12-03 19:46:23 -05:00
iterators.py utilize yield from 2012-10-01 12:53:43 -07:00
message.py #20476: Deal with the message_factory circular import differently. 2016-09-10 00:22:25 -04:00
parser.py Issue #27076: Doc, comment and tests spelling fixes 2016-05-26 05:35:26 +00:00
policy.py #20476: add a message_factory policy attribute to email. 2016-09-09 18:39:18 -04:00
quoprimime.py Correct misspellings of ISO-8859 2016-08-10 05:25:16 +00:00
utils.py Fix trailing whitespaces in C and Python files. (#4131) 2017-10-26 17:00:13 +03:00