summaryrefslogtreecommitdiff
path: root/Lib/email
Commit message (Collapse)AuthorAgeFilesLines
* test_body_encoding(): a new test for Charset.body_encode(), especiallyBarry Warsaw2002-10-211-0/+14
| | | | one that tests the obscure bug reported in SF # 625509.
* test_body_encoding(): a new testBarry Warsaw2002-10-211-0/+23
|
* body_encode(): Fixed typo reported by Chris Lawrence, closing SF bugBarry Warsaw2002-10-211-1/+1
| | | | | | #625509. This isn't a huge problem because at the moment there are no built-in charsets for which header_encoding is QP but body_encoding is not.
* append(): Fixing the test for convertability after consultation withBarry Warsaw2002-10-141-14/+28
| | | | | | | Ben. If s is a byte string, make sure it can be converted to unicode with the input codec, and from unicode with the output codec, or raise a UnicodeError exception early. Skip this test (and the unicode->byte string conversion) when the charset is our faux 8bit raw charset.
* Two new tests for splitting (or not splitting) 8-bit header data.Barry Warsaw2002-10-141-0/+21
|
* Bump the __version__Barry Warsaw2002-10-141-1/+1
|
* __init__(): Fix an invariant, that the charset item in a chunk tupleBarry Warsaw2002-10-141-2/+11
| | | | | | | | | | must be a Charset instance, not a string. The bug here was that self._charset wasn't being converted to a Charset instance so later .append() calls which used the default charset would break. _split(): If the charset of the chunk is '8bit', return the chunk unchanged. We can't safely split it, so this is the avenue of least harm.
* _split_header(): If we have a header which is a byte string containingBarry Warsaw2002-10-141-1/+17
| | | | | | | | | 8-bit data, we cannot split it safely, so return the original string unchanged. _is8bitstring(): Helper function which returns True when we have a byte string that contains non-ascii characters (i.e. mysterious 8-bit data).
* CHARSETS: Add faux '8bit' encoding for representing raw 8-bit data forBarry Warsaw2002-10-141-0/+2
| | | | which we know nothing else.
* _encode_chunks(), encode(): Don't modify self._chunks. As Ben says:Barry Warsaw2002-10-131-23/+22
| | | | | | | | | Also, it fixes a really egregious error in Header.encode() (really in Header._encode_chunks()) that could cause a header to grow and grow each time encode() was called if output_codec was different from input_codec. Also, fix a typo.
* Update the urls and other information about the add-on Japanese,Barry Warsaw2002-10-131-13/+8
| | | | Korean, and Chinese codecs.
* Bump version number to 2.4.2 to pick up the latest minor bug fixes.Barry Warsaw2002-10-101-1/+1
|
* New tests to verify that charsets are case insensitive, and that byBarry Warsaw2002-10-101-0/+34
| | | | default get_body_encoding() cannot be SHORTEST.
* get_content_charset(): RFC 2046 $4.1.2 says charsets are not caseBarry Warsaw2002-10-101-4/+6
| | | | sensitive. Coerce the argument to lower case.
* __init__(): RFC 2046 $4.1.2 says charsets are not case sensitive.Barry Warsaw2002-10-101-1/+3
| | | | | Coerce the argument to lower case. Also, since body encodings can't be SHORTEST, default the CHARSETS failobj's second item to BASE64.
* openfile(): Go back to opening the files in text mode. This undoesBarry Warsaw2002-10-072-2/+2
| | | | | | the change in revision 1.11 (test_email.py) in response to SF bug #609988. We now think that was the wrong fix and that WinZip was the real culprit there.
* _parsebody(): Use get_content_type() instead of the deprecatedBarry Warsaw2002-10-071-5/+6
| | | | | | | get_type(). Also, one of the regular expressions is constant so might as well make it a module global. And, when splitting up digests, handle lineseps that are longer than 1 character in length (e.g. \r\n).
* Bump the version to 2.4.1 (not 2.5 as previously mentioned) to sync itBarry Warsaw2002-10-071-1/+1
| | | | with the standalone mimelib package.
* test__all__(): Fix the import list.Barry Warsaw2002-10-011-4/+4
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-10-011-3/+3
|
* _structure(): Swap fp and level arguments.Barry Warsaw2002-10-011-2/+2
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-10-011-6/+15
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-10-012-17/+17
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-09-301-3/+4
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-09-301-3/+3
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-09-301-3/+3
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-09-301-3/+3
|
* __all__: UpdatedBarry Warsaw2002-09-301-20/+22
|
* Docstring consistency with the updated .tex files.Barry Warsaw2002-09-301-0/+14
|
* __contains__(): Change the second argument to `name' for consistency.Barry Warsaw2002-09-301-58/+69
| | | | | | I seriously doubt this will break any deployed code. Docstring consistency with the updated .tex files.
* With help from Martin v. Loewis, clarification is added for theBarry Warsaw2002-09-301-29/+61
| | | | | | | | | | | | | | | | | | | | semantics of header chunks using byte and Unicode strings. Specifically, append(): When the given string is a byte string, charset (whether specified explicitly in the argument list or implicitly via the constructor default) is the encoding of the byte string, and a UnicodeError will be raised if the string cannot be decoded with that charset. If s is a Unicode string, then charset is a hint specifying the character set of the characters in the string. In this case, when producing an RFC 2822 compliant header using RFC 2047 rules, the Unicode string will be encoded using the following charsets in order: us-ascii, the charset hint, utf-8. __init__(): Use the global USASCII Charset instance when the charset argument is None. Also, clarification in the docstring. Also, use True/False where appropriate.
* The ansi_x3.4_1968 encoding is an alias for ascii, but isn't known inBarry Warsaw2002-09-302-12/+9
| | | | | | | | Python 2.1.3. However it's required by the email tests suite, so poke it into the encodings aliases if it's missing. The is apparently the approved API for doing so. Now we can remove the hexversion shortcircuits in the test suite.
* Make the tests pass under Python 2.1 but only by cheating. Python 2.1Barry Warsaw2002-09-281-0/+12
| | | | | doesn't know about the ansi-x3.4-1968 charset so skip two tests that rely on that (msg_32.txt and msg_33.txt).
* Add a test for SHORTEST encoding of utf-8 headers, and also updateBarry Warsaw2002-09-281-9/+16
| | | | some of the test values which change because of this.
* Use True/False everywhere, and other code cleanups.Barry Warsaw2002-09-282-18/+30
|
* Code cleanup and add docstrings.Barry Warsaw2002-09-281-2/+17
|
* Use True/False everywhere, and other code cleanups.Barry Warsaw2002-09-281-7/+11
|
* Use True/False everywhere.Barry Warsaw2002-09-281-5/+12
|
* is_multipart(): Use isinstance() instead of type equality.Barry Warsaw2002-09-281-1/+1
|
* Docstring and code cleanups, e.g. use True/False everywhere.Barry Warsaw2002-09-281-58/+62
|
* __init__(): Minor code cleanup.Barry Warsaw2002-09-281-1/+1
|
* Add a pychecker suppression.Barry Warsaw2002-09-281-0/+4
|
* Use True/False everywhere.Barry Warsaw2002-09-281-20/+19
|
* Added a feature suggested by Martin v Loewis, where a new headerBarry Warsaw2002-09-281-37/+55
| | | | | | | | | | | | | encoding flag SHORTEST means to return the shortest encoding between base64 and qp. This is used for the header_enc for utf-8. SHORTEST isn't legal for body_enc. Also some code cleanup: - use True/False everywhere - use == instead of `is' in a few places - added _unicode() and make consistent the "is unicode" checks - update docstrings
* test_unicode_error(): Comment this test out, since we still haveBarry Warsaw2002-09-261-8/+8
| | | | controversy.
* Fixing some RFC 2231 related issues as reported in the SpambayesBarry Warsaw2002-09-263-0/+66
| | | | | | | project, and with assistance from Oleg Broytmann. Specifically, added some new tests to make sure we handle RFC 2231 encoded parameters correctly. Two new data files were added which contain RFC 2231 encoded parameters.
* Fixing some RFC 2231 related issues as reported in the SpambayesBarry Warsaw2002-09-261-9/+39
| | | | | | | | | | | | | | | | | | | | | project, and with assistance from Oleg Broytmann. Specifically, get_param(), get_params(): Document that these methods may return parameter values that are either strings, or 3-tuples in the case of RFC 2231 encoded parameters. The application should be prepared to deal with such return values. get_boundary(): Be prepared to deal with RFC 2231 encoded boundary parameters. It makes little sense to have boundaries that are anything but ascii, so if we get back a 3-tuple from get_param() we will decode it into ascii and let any failures percolate up. get_content_charset(): New method which treats the charset parameter just like the boundary parameter in get_boundary(). Note that "get_charset()" was already taken to return the default Charset object. get_charsets(): Rewrite to use get_content_charset().
* __version__: Bump to 2.4Barry Warsaw2002-09-251-9/+16
| | | | | | | | | | | Move the imports of Parser and Message inside the message_from_string() and message_from_file() functions. This way just "import email" won't suck in most of the submodules of the package. Note: this will break code that relied on "import email" giving you a bunch of the submodules, but that was never documented and should not have been relied on.
* Open the test files in binary mode so the \r\n files won't causeBarry Warsaw2002-09-182-3/+3
| | | | failures on Windows. Closes SF bug # 609988.
* Bump to 2.3.1 to pick up the missing file.Barry Warsaw2002-09-121-1/+1
|