summaryrefslogtreecommitdiffstats
path: root/Lib/email/policy.py
Commit message (Collapse)AuthorAgeFilesLines
* #18891: Complete new provisional email API.R David Murray2013-10-171-0/+13
| | | | | | | | | | | | This adds EmailMessage and, MIMEPart subclasses of Message with new API methods, and a ContentManager class used by the new methods. Also a new policy setting, content_manager. Patch was reviewed by Stephen J. Turnbull and Serhiy Storchaka, and reflects their feedback. I will ideally add some examples of using the new API to the documentation before the final release.
* Issue #17047: remove doubled words added in 3.3Terry Jan Reedy2013-03-111-1/+1
| | | | as reported by Serhiy Storchaka and Matthew Barnett.
* #16811: Fix folding of headers with no value in provisional policies.R David Murray2013-02-041-1/+1
|
* Don't use metaclasses when class decorators can do the job.R David Murray2012-05-311-1/+2
| | | | | 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/+8
| | | | | | | | | | | 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.
* Make headerregistry fully part of the provisional api.R David Murray2012-05-271-3/+3
| | | | | | | | | | | | | When I made the checkin of the provisional email policy, I knew that Address and Group needed to be made accessible from somewhere. The more I looked at it, though, the more it became clear that since this is a provisional API anyway, there's no good reason to hide headerregistry as a private API. It was designed to ultimately be part of the public API, and so it should be part of the provisional API. This patch fully documents the headerregistry API, and deletes the abbreviated version of those docs I had added to the provisional policy docs.
* #12586: Fix a small oversight in the new email policy header setting code.R David Murray2012-05-261-1/+1
| | | | | This is a danger of focusing on unit tests: sometimes you forget to do the integration tests.
* #12586: add provisional email policy with new header parsing and folding.R David Murray2012-05-251-3/+170
| | | | | | | | | | | | | | 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-167/+5
| | | | | | | | | | | | | | | | | 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.
* #14344: fixed the repr of email.policy objects.R David Murray2012-03-171-1/+1
|
* #11731: simplify/enhance parser/generator API by introducing policy objects.R David Murray2011-04-181-0/+174
This new interface will also allow for future planned enhancements in control over the parser/generator without requiring any additional complexity in the parser/generator API. Patch reviewed by Éric Araujo and Barry Warsaw.