]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
#12586: add provisional email policy with new header parsing and folding.
authorR David Murray <rdmurray@bitdance.com>
Fri, 25 May 2012 22:42:14 +0000 (18:42 -0400)
committerR David Murray <rdmurray@bitdance.com>
Fri, 25 May 2012 22:42:14 +0000 (18:42 -0400)
commit0b6f6c82b51b7071d88f48abb3192bf3dc2a2d24
treed6bd5f56722b8fff6db8bdf39b47b1c4a87a3d42
parent0fa2edd08f7b2b028f61a22fab9a648d58699c0b
#12586: add provisional email policy with new header parsing and folding.

When the new policies are used (and only when the new policies are explicitly
used) headers turn into objects that have attributes based on their parsed
values, and can be set using objects that encapsulate the values, as well as
set directly from unicode strings.  The folding algorithm then takes care of
encoding unicode where needed, and folding according to the highest level
syntactic objects.

With this patch only date and time headers are parsed as anything other than
unstructured, but that is all the helper methods in the existing API handle.
I do plan to add more parsers, and complete the set specified in the RFC
before the package becomes stable.
16 files changed:
Doc/library/email.policy.rst
Lib/email/_encoded_words.py [new file with mode: 0644]
Lib/email/_header_value_parser.py [new file with mode: 0644]
Lib/email/_headerregistry.py [new file with mode: 0644]
Lib/email/_policybase.py
Lib/email/errors.py
Lib/email/generator.py
Lib/email/policy.py
Lib/email/utils.py
Lib/test/test_email/__init__.py
Lib/test/test_email/test__encoded_words.py [new file with mode: 0644]
Lib/test/test_email/test__header_value_parser.py [new file with mode: 0644]
Lib/test/test_email/test__headerregistry.py [new file with mode: 0644]
Lib/test/test_email/test_generator.py
Lib/test/test_email/test_pickleable.py [new file with mode: 0644]
Lib/test/test_email/test_policy.py