summaryrefslogtreecommitdiffstats
path: root/Lib/email/_policybase.py
Commit message (Collapse)AuthorAgeFilesLines
* [email] bpo-29478: Fix passing max_line_length=None from Compat32 policy ↵mircea-cosbuc2017-06-121-2/+6
| | | | | | (GH-595) If max_line_length=None is specified while using the Compat32 policy, it is no longer ignored.
* #20476: Deal with the message_factory circular import differently.R David Murray2016-09-101-1/+1
| | | | | | | It turns out we can't depend on email.message getting imported every place message_factory is needed, so to avoid a circular import we need to special case Policy.message_factory=None in the parser instead of using monkey patching. I had a feeling that was a bad idea when I did it.
* #20476: add a message_factory policy attribute to email.R David Murray2016-09-091-0/+4
|
* #20098: add mangle_from_ policy option.R David Murray2015-05-171-0/+8
| | | | | | | This defaults to True in the compat32 policy for backward compatibility, but to False for all new policies. Patch by Milan Oberkirch, with a few tweaks.
* Don't use metaclasses when class decorators can do the job.R David Murray2012-05-311-25/+20
| | | | | Thanks to Nick Coghlan for pointing out that I'd forgotten about class decorators.
* #10839: raise an error on add of duplicate unique headers in new email policiesR David Murray2012-05-291-0/+19
| | | | | | | | | | | This feature was supposed to be part of the initial email6 checkin, but it got lost in my big refactoring. In this patch I'm not providing an easy way to turn off the errors, but they only happen when a header is added programmatically, and it is almost never the right thing to do to allow the duplicate to be added. An application that needs to add duplicates of unique headers can create a policy subclass to allow it.
* #12586: add provisional email policy with new header parsing and folding.R David Murray2012-05-251-3/+9
| | | | | | | | | | | | | | 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.
* #14731: refactor email policy framework.R David Murray2012-05-251-0/+338
This patch primarily does two things: (1) it adds some internal-interface methods to Policy that allow for Policy to control the parsing and folding of headers in such a way that we can construct a backward compatibility policy that is 100% compatible with the 3.2 API, while allowing a new policy to implement the email6 API. (2) it adds that backward compatibility policy and refactors the test suite so that the only differences between the 3.2 test_email.py file and the 3.3 test_email.py file is some small changes in test framework and the addition of tests for bugs fixed that apply to the 3.2 API. There are some additional teaks, such as moving just the code needed for the compatibility policy into _policybase, so that the library code can import only _policybase. That way the new code that will be added for email6 will only get imported when a non-compatibility policy is imported.