summaryrefslogtreecommitdiffstats
path: root/Lib/email
Commit message (Collapse)AuthorAgeFilesLines
* Merge: #17171: fix email.encoders.encode_7or8bit when applied to binary data.R David Murray2013-02-111-1/+3
|\
| * Merge: #17171: fix email.encoders.encode_7or8bit when applied to binary data.R David Murray2013-02-111-1/+3
| |\
| | * #17171: fix email.encoders.encode_7or8bit when applied to binary data.R David Murray2013-02-112-2/+21
| | |
* | | Merge: #16564: Fix regression in use of encoders.encode_noop with binary data.R David Murray2013-02-092-0/+9
|\ \ \ | |/ /
| * | Merge: #16564: Fix regression in use of encoders.encode_noop with binary data.R David Murray2013-02-092-0/+9
| |\ \ | | |/
| | * #16564: Fix regression in use of encoders.encode_noop with binary data.R David Murray2013-02-093-0/+25
| | |
* | | Merge: #16948: Fix quopri encoding of non-latin1 character sets.R David Murray2013-02-051-0/+13
|\ \ \ | |/ /
| * | Merge: #16948: Fix quopri encoding of non-latin1 character sets.R David Murray2013-02-051-0/+13
| |\ \ | | |/
| | * #16948: Fix quopri encoding of non-latin1 character sets.R David Murray2013-02-052-0/+34
| | |
* | | Merge #16811: Fix folding of headers with no value in provisional policies.R David Murray2013-02-041-1/+1
|\ \ \ | |/ /
| * | #16811: Fix folding of headers with no value in provisional policies.R David Murray2013-02-041-1/+1
| | |
* | | Issue #16714: use 'raise' exceptions, don't 'throw'.Andrew Svetlov2012-12-183-4/+4
|\ \ \ | |/ / | | | | | | Patch by Serhiy Storchaka.
| * | Issue #16714: use 'raise' exceptions, don't 'throw'.Andrew Svetlov2012-12-183-4/+4
| |\ \ | | |/ | | | | | | Patch by Serhiy Storchaka.
| | * Issue #16714: use 'raise' exceptions, don't 'throw'.Andrew Svetlov2012-12-182-3/+3
| | | | | | | | | | | | Patch by Serhiy Storchaka.
* | | utilize yield fromPhilip Jenvey2012-10-012-6/+3
|/ /
* | Closes #15925: fix regression in parsedate() and parsedate_tz() that should ↵Georg Brandl2012-09-222-22/+6
| | | | | | | | return None if unable to parse the argument.
* | Merge #15249: Mangle From lines correctly when body contains invalid bytes.R David Murray2012-08-241-0/+2
|\ \ | |/ | | | | Fix by Colin Su. Test by me, based on a test written by Petri Lehtinen.
| * #15249: Mangle From lines correctly when body contains invalid bytes.R David Murray2012-08-242-1/+17
| | | | | | | | Fix by Colin Su. Test by me, based on a test written by Petri Lehtinen.
* | Issue #665194: Added a small optimizationAlexander Belopolsky2012-08-231-1/+1
| |
* | #665194: fix variable name in exception code path.R David Murray2012-08-231-1/+1
| | | | | | | | | | It was correct in the original patch and I foobared it when I restructured part of the code.
* | #665194: Update email.utils.localtime to use astimezone, and fix bug.R David Murray2012-08-231-29/+22
| | | | | | | | | | | | | | The new code correctly handles historic changes in UTC offsets. A test for this should follow. Original patch by Alexander Belopolsky.
* | Merge #15232: correctly mangle From lines in MIME preamble and epilogueR David Murray2012-07-231-2/+10
|\ \ | |/
| * #15232: correctly mangle From lines in MIME preamble and epilogueR David Murray2012-07-232-2/+32
| |
* | #15160: Extend the new email parser to handle MIME headers.R David Murray2012-06-242-18/+943
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code passes all the same tests that the existing RFC mime header parser passes, plus a bunch of additional ones. There are a couple of commented out tests where there are issues with the folding. The folding doesn't normally get invoked for headers parsed from source, and the cases are marginal anyway (headers with invalid binary data) so I'm not worried about them, but will fix them after the beta. There are things that can be done to make this API even more convenient, but I think this is a solid foundation worth having. And the parser is a full RFC parser, so it handles cases that the current parser doesn't. (There are also probably cases where it fails when the current parser doesn't, but I haven't found them yet ;) Oh, yeah, and there are some really ugly bits in the parser for handling some 'postel' cases that are unfortunately common. I hope/plan to to eventually refactor a lot of the code in the parser which should reduce the line count...but there is no escaping the fact that the error recovery is welter of special cases.
* | Issue #14653: email.utils.mktime_tz() no longer relies on systemAlexander Belopolsky2012-06-221-4/+4
|\ \ | |/ | | | | mktime() when timezone offest is supplied.
| * Issue #14653: email.utils.mktime_tz() no longer relies on systemAlexander Belopolsky2012-06-222-4/+10
| | | | | | | | mktime() when timezone offest is supplied.
* | Merge: Update out of date docstring.R David Murray2012-06-171-7/+5
|\ \ | |/
| * Update out of date docstring.R David Murray2012-06-171-7/+5
| |
* | Now that Defects are Exception subclasses, call super.R David Murray2012-06-091-0/+5
| | | | | | | | | | | | | | | | The behavior of MessageDefect is legacy behavior. The chances anyone is actually using the undocumented 'line' attribute is low, but it costs little to retain backward compatibility. Although one of the costs is having to restore normal exception behavior in HeaderDefect. On the other hand, I'll probably add some specialized behavior there later.
* | #1079: Fix parsing of encoded words.R David Murray2012-06-021-4/+41
| | | | | | | | | | | | | | | | | | This is a behavior change: before this leading and trailing spaces were stripped from ASCII parts, now they are preserved. Without this fix we didn't parse the examples in the RFC correctly, so I think breaking backward compatibility here is justified. Patch by Ralf Schlatterbeck.
* | Don't use metaclasses when class decorators can do the job.R David Murray2012-05-312-26/+22
| | | | | | | | | | 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-293-0/+37
| | | | | | | | | | | | | | | | | | | | | | 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.
* | #12515: email now registers a defect if the MIME end boundary is missing.R David Murray2012-05-282-3/+14
| | | | | | | | | | | | This commit also restores the news item for 167256 that it looks like Terry inadvertently deleted. (Either that, or I don't understand now merging works...which is equally possible.)
* | #1672568: email now registers defects for base64 payload format errors.R David Murray2012-05-281-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Which also means that it is now producing *something* for any base64 payload, which is what leads to the couple of older test changes in test_email. This is a slightly backward incompatible behavior change, but the new behavior is so much more useful than the old (you can now *reliably* detect errors, and any program that was detecting errors by sniffing for a base64 return from get_payload(decode=True) and then doing its own error-recovery decode will just get the error-recovery decode right away). So this seems to me to be worth the small risk inherent in this behavior change. This patch also refactors the defect tests into a separate test file, since they are no longer just parser tests.
* | #14925: email now registers a defect for missing header/body separator.R David Murray2012-05-282-7/+9
| | | | | | | | | | | | | | This patch also deprecates the MalformedHeaderDefect. My best guess is that this defect was rendered obsolete by a refactoring of the parser, and the corresponding defect for the new parser (which this patch introduces) was overlooked.
* | Make headerregistry fully part of the provisional api.R David Murray2012-05-272-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.
* | Add '__all__' to _encoded_words and mark QByteMap as private.R David Murray2012-05-271-2/+12
| |
* | Recognize '<>' as a special case of an angle-addr in header_value_parser.R David Murray2012-05-261-1/+11
| | | | | | | | | | | | | | Although '<>' is invalid according to RFC 5322, SMTP uses it for various things, and it sometimes ends up in email headers. This patch changes get_angle_addr to recognize it and just register a Defect instead of raising a parsing error.
* | #665194: Add a localtime function to email.utils.R David Murray2012-05-261-0/+53
| | | | | | | | | | | | | | | | Without this function people would be tempted to use the other date functions in email.utils to compute an aware localtime, and those functions are not as good for that purpose as this code. The code is Alexander Belopolsy's from his proposed patch for issue 9527, with a fix (and additional tests) by Brian K. Jones.
* | #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-258-11/+3047
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-258-260/+649
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | #14380: Make actual default match docs, fix __init__ order.R David Murray2012-03-231-7/+9
| | | | | | | | | | | | | | | | Éric pointed out that given that the default was documented as None, someone would reasonably pass that to get the default behavior. In fixing the code to use None, I noticed that the change to _charset was being done after it had already been passed to MIMENonMultipart. The change to the test verifies that the order is now correct.
* | #14380: Have MIMEText defaults to utf-8 when passed non-ASCII unicodeR David Murray2012-03-231-0/+10
| | | | | | | | | | | | | | Previously it would just accept the unicode, which would wind up as unicode in the transfer-encoded message object, which is just wrong. Patch by Jeff Knupp.
* | #14344: fixed the repr of email.policy objects.R David Murray2012-03-171-1/+1
| |
* | Merge #11686: add missing entries to email __all__ lists.R David Murray2012-03-173-2/+3
|\ \ | |/ | | | | Original patch by Steffen Daode Nurpmeso
| * #11686: add missing entries to email __all__ lists.R David Murray2012-03-175-11/+9
| | | | | | | | Original patch by Steffen Daode Nurpmeso
* | #12818: remove escaping of () in quoted strings in formataddrR David Murray2012-03-141-1/+1
| | | | | | | | | | The quoting of ()s inside quoted strings is allowed by the RFC, but is not needed. There seems to be no reason to add needless escapes.
* | #14062: fix BytesParser handling of Header objectsR David Murray2012-03-141-0/+3
|\ \ | |/ | | | | | | | | This is a different fix than the 3.2 fix, but the new tests are the same. This also affected smtplib.SMTP.send_message, which calls BytesParser.
| * #14062: fix BytesParser handling of linesep for Header objectsR David Murray2012-03-142-2/+25
| | | | | | | | This also affected smtplib.SMTP.send_message, which calls BytesParser.