cpython/Lib
Miss Islington (bot) a87ba60fe5 bpo-27240 Rewrite the email header folding algorithm. (GH-3488) (#4693)
The original algorithm tried to delegate the folding to the tokens so
that those tokens whose folding rules differed could specify the
differences.  However, this resulted in a lot of duplicated code because
most of the rules were the same.

The new algorithm moves all folding logic into a set of functions
external to the token classes, but puts the information about which
tokens can be folded in which ways on the tokens...with the exception of
mime-parameters, which are a special case (which was not even
implemented in the old folder).

This algorithm can still probably be improved and hopefully simplified
somewhat.

Note that some of the test expectations are changed.  I believe the
changes are toward more desirable and consistent behavior: in general
when (re) folding a line the canonical version of the tokens is
generated, rather than preserving errors or extra whitespace.
(cherry picked from commit 85d5c18c9d)
2017-12-03 19:46:23 -05:00
..
asyncio asyncio: Remove unused Future._tb_logger attribute (GH-4596) (#4598) 2017-11-28 10:32:28 +01:00
collections Backport docstring improvements to OrderedDict. (GH-3470) 2017-09-10 18:11:18 -07:00
concurrent [3.6] bpo-31641: Allow arbitrary iterables in concurrent.futures.as_completed() (GH-3830) (#3831) 2017-09-29 15:07:01 -07:00
ctypes bpo-28129: fix ctypes crashes (#386) (#3799) 2017-09-28 07:32:11 -07:00
curses Issue #13051: Fixed recursion errors in large or resized curses.textpad.Textbox. 2016-12-28 10:16:06 +02:00
dbm Issue #28847: dbm.dumb now supports reading read-only files and no longer 2016-12-07 11:00:06 +02:00
distutils [3.6] bpo-30389 Adds detection of VS 2017 to distutils._msvccompiler GH-1632 (#3425) 2017-09-07 13:58:07 -07:00
email bpo-27240 Rewrite the email header folding algorithm. (GH-3488) (#4693) 2017-12-03 19:46:23 -05:00
encodings Revert #27959: ImportError within an encoding module should also skip the encoding 2016-09-09 08:56:37 -07:00
ensurepip bpo-31351: Set return code in ensurepip when pip fails (GH-3626) (GH-3683) 2017-09-22 06:45:37 -07:00
html #27364: fix "incorrect" uses of escape character in the stdlib. 2016-09-08 13:59:53 -04:00
http Issue #22493: Inline flags now should be used only at the start of the 2016-09-11 12:50:02 +03:00
idlelib bpo-32164: Delete unused file idlelib/tabbedpages.py (GH-4628) (#4631) 2017-11-29 01:07:21 -05:00
importlib [3.6] bpo-21720: Restore the Python 2.7 logic in handling a fromlist. (GH-4118) (#4128) 2017-10-26 12:02:54 +03:00
json [3.6] Fix trivial typo in json module docstring (GH-2274) (#2430) 2017-06-30 21:15:18 -04:00
lib2to3 bpo-28837: Fix lib2to3 handling of map/zip/filter calls when followed with a 'trailer', e.g. zip()[x] (GH-24) (GH-2235) 2017-06-15 19:56:52 -07:00
logging bpo-30904: Removed duplicated Host: header. (GH-4465) (#4468) 2017-11-19 19:16:17 +00:00
msilib #27364: fix "incorrect" uses of escape character in the stdlib. 2016-09-08 13:59:53 -04:00
multiprocessing [3.6] bpo-31310: multiprocessing's semaphore tracker should be launched again if crashed (GH-3247) (#4254) 2017-11-03 14:58:37 +01:00
pydoc_data Update pydoc topics and NEWS blurbs for 3.6.3rc1 2017-09-18 23:04:41 -04:00
site-packages Issue #29283: Delete accidentally added Lib/site-packages/README 2017-01-30 13:55:49 +03:00
sqlite3 bpo-31764: Prevent a crash in sqlite3.Cursor.close() in case the Cursor object is uninitialized (GH-3958) (#4303) 2017-11-06 16:45:19 -08:00
test bpo-27240 Rewrite the email header folding algorithm. (GH-3488) (#4693) 2017-12-03 19:46:23 -05:00
tkinter [3.6] bpo-27319, bpo-31508: Document deprecation in Treeview.selection(). (GH-3667) (#3719) 2017-09-24 15:03:48 +03:00
turtledemo bpo-32155: Bugfixes found by flake8 F841 warnings (#4619) 2017-11-28 23:04:12 +01:00
unittest Update TestCase.assertAlmostEqual and assertNotAlmostEqual docstrings. (GH-3998) (GH-4039) 2017-10-18 10:34:27 -07:00
urllib bpo-31325: Fix usage of namedtuple in RobotFileParser.parse() (GH-4529) (#4533) 2017-11-23 15:57:58 -08:00
venv [3.6] bpo-25351: avoid activate failure on strict shells (GH-3804) (#3820) 2017-09-29 05:34:43 -07:00
wsgiref Issue #26721: Change StreamRequestHandler.wfile to BufferedIOBase 2016-06-29 10:12:22 +00:00
xml bpo-30264: ExpatParser closes the source on error (#1451) (#1474) 2017-05-05 10:04:57 +02:00
xmlrpc bpo-31247: xmlrpc.server: break reference cycle (#3166) (#3168) 2017-08-21 18:35:04 +02:00
__future__.py PEP 479: Change StopIteration handling inside generators. 2015-05-09 11:44:30 -04:00
__phello__.foo.py
_bootlocale.py
_collections_abc.py bpo-26915: Test identity first in index() and count() of collections.abc.Sequence (GH-553) 2017-03-08 11:43:35 +08:00
_compat_pickle.py Issue #15767: Add ModuleNotFoundError. 2016-09-07 15:42:32 -07:00
_compression.py Issue #23529: Limit the size of decompressed data when reading from 2015-04-11 00:31:01 +02:00
_dummy_thread.py
_markupbase.py
_osx_support.py Fix misplaced positional argument in OS X support library (#1137) 2017-04-14 17:44:34 +03:00
_pydecimal.py Issue #27348: Merge exception formatting fix from 3.5 into 3.6 2016-09-22 10:33:21 +00:00
_pyio.py Merge from 3.5. 2016-12-07 13:31:47 +02:00
_sitebuiltins.py
_strptime.py Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by 2016-03-12 10:53:09 +02:00
_threading_local.py
_weakrefset.py
abc.py bpo-29581: bpo-29581: Make ABCMeta.__new__ pass **kwargs to type.__new__ (GH-527) (GH-1282) 2017-06-06 17:31:03 -07:00
aifc.py [3.6] bpo-29110: Fix file object leak in aifc.open (#310) 2017-02-27 04:09:32 +09:00
antigravity.py Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. 2016-09-16 13:48:10 +02:00
argparse.py Issue #29290: Merge 3.5. 2017-01-22 14:39:20 +08:00
ast.py Add ast.Constant 2016-01-26 00:40:57 +01:00
asynchat.py Issue #25002: Back out asyncore/asynchat deprecation. 2016-10-25 18:42:51 -07:00
asyncore.py bpo-30980: Fix double close in asyncore.file_wrapper (#2789) (#2898) 2017-07-27 01:27:08 +02:00
base64.py Add Python version since deprecation in base64 methods. (#33) (#429) 2017-03-03 18:07:18 +03:00
bdb.py
binhex.py Issue #23865: close() methods in multiple modules now are idempotent and more 2015-04-10 13:29:28 +03:00
bisect.py
bz2.py Issue #28225: bz2 module now supports pathlib 2016-10-02 20:07:06 +03:00
calendar.py Issue #28255: calendar.TextCalendar().prmonth() no longer prints a space 2016-10-25 15:02:36 +03:00
cgi.py Issue #27105: Add cgi.test() to __all__, based on Jacek Kołodziej’s patch 2016-06-06 01:53:28 +00:00
cgitb.py Issue #22831: Use "with" to avoid possible fd leaks. 2015-04-04 11:01:02 +03:00
chunk.py Issue #25523: Correct "a" article to "an" article 2015-11-02 03:37:02 +00:00
cmd.py
code.py Issue #27573 make the exit message configurable. 2016-08-24 01:42:15 +10:00
codecs.py bpo-32110: codecs.StreamReader.read(n) now returns not more than n (GH-4499) (#4622) 2017-11-29 02:06:53 +02:00
codeop.py
colorsys.py
compileall.py Issue #28485: Merge single-threading fix from 3.5 into 3.6 2016-11-05 01:35:25 +00:00
configparser.py [3.6] bpo-29623: Make PathLike objects work with ConfigParser.read() (#242) (#432) 2017-03-03 20:48:37 +03:00
contextlib.py bpo-30266: support "= None" pattern in AbstractContextManager (GH-1448) (GH-2054) 2017-06-09 20:36:28 -07:00
copy.py Issue #26167: Minimized overhead in copy.copy() and copy.deepcopy(). 2016-03-06 14:56:57 +02:00
copyreg.py [3.6] bpo-31107: Fix copyreg mangled slot names calculation. (GH-2989) (#3003) 2017-08-05 18:01:10 +03:00
cProfile.py
crypt.py Issue #25287: Don't add crypt.METHOD_CRYPT to crypt.methods if it's not 2015-10-02 23:00:39 +02:00
csv.py Issue #18219: Optimize csv.DictWriter for large number of columns. 2016-10-21 19:47:57 +09:00
datetime.py bpo-31222: Make (datetime|date|time).replace return subclass type in Pure Python (GH-4176) (#4356) 2017-11-09 16:52:05 -08:00
decimal.py Issue #23641: Cleaned out legacy dunder names from tests and docs. 2015-03-12 21:56:08 +02:00
difflib.py #27364: fix "incorrect" uses of escape character in the stdlib. 2016-09-08 13:59:53 -04:00
dis.py Issue #28317: The disassembler now decodes FORMAT_VALUE argument. 2016-10-08 12:34:25 +03:00
doctest.py #27364: fix "incorrect" uses of escape character in the stdlib. 2016-09-08 13:59:53 -04:00
dummy_threading.py
enum.py [3.6] bpo-30616: Functional API of enum allows to create empty enums. (#2304) (#2324) 2017-06-24 09:12:20 -07:00
filecmp.py
fileinput.py Issue #25788: fileinput.hook_encoded() now supports an "errors" argument 2016-04-27 23:13:46 +03:00
fnmatch.py Issue #22493: Inline flags now should be used only at the start of the 2016-09-11 12:50:02 +03:00
formatter.py Issue #25407: Drop the mention of the formatter module being removed 2015-10-16 12:09:33 -07:00
fractions.py Issue #27832: Make _normalize parameter to Fraction.__init__ keyword-only. 2016-08-23 16:16:52 +01:00
ftplib.py [3.6] bpo-30119: fix ftplib.FTP.putline() to throw an error for a illegal command (#1214) (#2886) 2017-07-26 14:11:25 +02:00
functools.py Sync-up with 3.7 by backporting minor lru_cache code beautification 2017-01-08 18:22:24 -08:00
genericpath.py Issue #26027, #27524: Add PEP 519/__fspath__() support to os and 2016-08-26 14:44:48 -07:00
getopt.py Issue #25523: Correct "a" article to "an" article 2015-11-02 03:37:02 +00:00
getpass.py getpass: update docstrings (GH-49) (GH-419) 2017-03-02 21:56:06 -08:00
gettext.py [3.6] bpo-29755: Fixed the lgettext() family of functions in the gettext module. (GH-2266) (#2297) 2017-06-20 18:06:35 +03:00
glob.py Issue #27998: Removed workarounds for supporting bytes paths on Windows in 2016-10-05 23:17:10 +03:00
gzip.py Issue #28227: gzip now supports pathlib 2016-10-02 13:47:58 +03:00
hashlib.py Issue #16113: Add SHA-3 and SHAKE support to hashlib module. 2016-09-07 11:58:24 +02:00
heapq.py Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc 2016-04-15 02:14:19 +00:00
hmac.py Use sequence repetition instead of bytes constructor with integer argument. 2016-09-11 14:41:02 +03:00
imaplib.py bpo-30329: Catch Windows error 10022 on shutdown() (#1538) (#1620) 2017-05-16 15:29:41 -07:00
imghdr.py Issue #28228: imghdr now supports pathlib 2016-10-01 05:01:54 +03:00
imp.py [3.6] bpo-30645: don't append to an inner loop path in imp.load_package() (GH-2268) (#2364) 2017-06-23 11:23:36 -07:00
inspect.py [3.6] bpo-25532: Protect against infinite loops in inspect.unwrap() (GH-1717) (#3778) 2017-09-27 09:34:44 +03:00
io.py Issue #1602: Windows console doesn't input or print Unicode (PEP 528) 2016-08-30 21:22:36 -07:00
ipaddress.py [3.6] bpo-29931 fix __lt__ check in ipaddress.ip_interface for both v4 and v6. (GH-879) (#2217) 2017-06-15 17:16:38 +03:00
keyword.py
linecache.py Issue #23838: linecache now clears the cache and returns an empty result on 2015-04-01 16:56:13 +03:00
locale.py Issue #27076: Merge spelling from 3.5 2016-05-26 06:03:19 +00:00
lzma.py Issue #28229: lzma module now supports pathlib 2016-10-04 20:41:20 +03:00
macpath.py Issue #23780: Improved error message in os.path.join() with single argument. 2015-05-19 11:00:07 +03:00
macurl2path.py
mailbox.py Issue #28764: Fix a test_mailbox failure on Android API 24 when run as a non-root user. 2016-12-12 09:55:57 +01:00
mailcap.py #14977: Make mailcap respect the order of the lines in the mailcap file. 2016-09-09 20:04:23 -04:00
mimetypes.py [3.6] bpo-30824: Add mimetype for .json (GH-3048) (#3401) 2017-09-06 20:04:14 -04:00
modulefinder.py Issue #26881: Restored the name of scan_opcodes_25(). 2016-05-11 22:19:49 +03:00
netrc.py bpo-30806: Fix netrc.__repr__() format (GH-2491) 2017-11-03 14:36:45 +09:00
nntplib.py Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc 2016-04-15 02:14:19 +00:00
ntpath.py Issue #27355: Removed support for Windows CE. It was never finished, 2016-09-05 15:11:23 -07:00
nturl2path.py Issue21160: Correct comments in nturl2path. Patch by Jurko Gospodnetić. 2015-10-24 17:39:36 +03:00
numbers.py Issue #21408: The default __ne__() now returns NotImplemented if __eq__() 2015-01-26 09:57:07 +02:00
opcode.py Issue #28257: Improved error message when pass a non-iterable as 2016-10-02 10:33:46 +03:00
operator.py Issue #24379: Revert the operator.subscript patch (dccc4e63aef5) pending resolution of the related refcnt leak. 2015-11-02 00:39:56 -05:00
optparse.py Merge doc and comment fixes from 3.5 2016-04-19 23:23:16 +00:00
os.py [3.6] bpo-30441: Fix bug when modifying os.environ while iterating over it (GH-2409). (#2556) 2017-07-04 07:55:32 +03:00
pathlib.py bpo-30177: pathlib: include the full path in resolve(strict=False) (#1893) (#1985) 2017-06-07 10:18:56 -07:00
pdb.py Issue #20766: Merge with 3.5. 2016-10-12 20:16:05 +02:00
pickle.py Issue #17711: Fixed unpickling by the persistent ID with protocol 0. 2016-07-17 11:35:35 +03:00
pickletools.py Use sequence repetition instead of bytes constructor with integer argument. 2016-09-11 14:41:02 +03:00
pipes.py
pkgutil.py Issue #17211: Yield a namedtuple in pkgutil. 2016-09-07 18:37:17 -07:00
platform.py [3.6] bpo-27593: Get SCM build info from git instead of hg. (#446) (#454) 2017-03-04 01:05:06 -05:00
plistlib.py bpo-32072: Fix issues with binary plists. (GH-4455) (#4654) 2017-12-01 00:15:30 +02:00
poplib.py bpo-30329: Catch Windows error 10022 on shutdown() (#1538) (#1620) 2017-05-16 15:29:41 -07:00
posixpath.py Issue #26027, #27524: Add PEP 519/__fspath__() support to os and 2016-08-26 14:44:48 -07:00
pprint.py Issue #26778: Fixed "a/an/and" typos in code comment and documentation. 2016-04-17 08:32:47 +03:00
profile.py
pstats.py bpo-29554: Improve docs for pstat module and profile. (#88) (#227) 2017-02-22 04:55:33 +03:00
pty.py
py_compile.py Issue #23911: Move path-based bootstrap code to a separate frozen module. 2015-05-02 19:15:18 -06:00
pyclbr.py Removed unused imports. 2016-04-25 00:12:32 +03:00
pydoc.py Issue #15767: Use ModuleNotFoundError. 2016-09-07 16:56:15 -07:00
queue.py
quopri.py Issue #23681: Fixed Python 2 to 3 poring bugs. 2015-03-20 16:46:19 +02:00
random.py [3.6] bpo-31482: Missing bytes support for random.seed() version 1 (GH-3614) (GH-3659) 2017-09-19 10:56:33 -07:00
re.py Issue #28637: Reapply changeset 223731925d06 2016-11-14 12:35:55 +01:00
reprlib.py Issue #26634: recursive_repr() now sets __qualname__ of wrapper. 2016-04-26 09:30:44 +03:00
rlcompleter.py Merge 3.5 2016-02-04 14:08:23 -05:00
runpy.py [backport to 3.5] - issue26896 - Disambiguate uses of "importer" with "finder". 2016-09-07 00:52:20 -07:00
sched.py Issue #5830: Remove old comment. Add empty slots. 2016-10-24 07:31:55 -07:00
secrets.py Issue #29061: secrets.randbelow() would hang with a negative input 2016-12-29 22:54:25 -07:00
selectors.py Issue #27759: Fix selectors incorrectly retain invalid file descriptors. 2016-10-06 14:03:03 -04:00
shelve.py Issue #23865: close() methods in multiple modules now are idempotent and more 2015-04-10 13:24:41 +03:00
shlex.py Fixed #29132: Updated shlex to work better with punctuation chars in POSIX mode. 2017-01-15 10:06:52 +00:00
shutil.py Issue #14061: Misc fixes and cleanups in archiving code in shutil. 2016-12-16 19:00:55 +02:00
signal.py Issue #25523: Further a-to-an corrections new in 3.5 2015-11-02 04:20:33 +00:00
site.py Issue #28637: No longer use re in site.py. 2016-11-08 20:17:35 +02:00
smtpd.py Issue #27110: Add smtpd.SMTPChannel to __all__, by Jacek Kołodziej 2016-06-06 02:03:11 +00:00
smtplib.py bpo-30394: Fix a socket leak in smtplib.SMTP.__init__() (#1700) (#1790) 2017-05-25 02:59:06 +08:00
sndhdr.py Issue #24878: Add docstrings to selected namedtuples 2015-08-17 22:04:45 -07:00
socket.py [3.6] bpo-31234, socket.create_connection(): Fix ref cycle (GH-3546) (#3552) 2017-09-13 15:54:34 -07:00
socketserver.py Issue #26721: Change StreamRequestHandler.wfile to BufferedIOBase 2016-06-29 10:12:22 +00:00
sre_compile.py Issue #433028: Added support of modifier spans in regular expressions. 2016-09-10 00:57:55 +03:00
sre_constants.py [3.6] bpo-30398: Add a docstring for re.error. (GH-1647) (#1830) 2017-05-27 16:37:40 +03:00
sre_parse.py [3.6] bpo-30605: Fix compiling binary regexs with BytesWarnings enabled. (GH-2016) (#2214) 2017-06-15 16:55:22 +03:00
ssl.py [3.6] bpo-29136: Add TLS 1.3 cipher suites and OP_NO_TLSv1_3 (GH-1363) (#3444) 2017-09-07 20:23:52 -07:00
stat.py
statistics.py Issue #27181 remove geometric_mean and defer for 3.7. 2016-10-05 03:24:45 +11:00
string.py bpo-31672: Fix string.Template accidentally matched non-ASCII identifiers (GH-3872) 2017-10-14 14:21:59 +09:00
stringprep.py
struct.py
subprocess.py [3.6] bpo-22635: Update the getstatusoutput docstring. (GH-3435) (#3439) 2017-09-07 16:44:58 -07:00
sunau.py Corrected docstrings of audio modules. writeframes() accepts bytes, not str. 2015-07-10 22:13:40 +03:00
symbol.py Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations. 2016-09-08 20:50:03 -07:00
symtable.py Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations. 2016-09-08 20:50:03 -07:00
sysconfig.py Issue #28046: get_sysconfigdata_name() uses the _PYTHON_SYSCONFIGDATA_NAME 2016-09-11 22:22:24 +02:00
tabnanny.py fix function name in tabnanny documentation (GH-762) 2017-03-22 15:26:53 +08:00
tarfile.py Issue #26937: The chown() method of the tarfile.TarFile class does not fail now 2016-12-09 09:33:09 +01:00
telnetlib.py #25485: Add context manager support to Telnet class. 2015-11-28 12:24:52 -05:00
tempfile.py Add a source parameter to warnings.warn() 2016-03-23 00:28:08 +01:00
textwrap.py Issue #20491: The textwrap.TextWrapper class now honors non-breaking spaces. 2016-10-25 14:44:54 +03:00
this.py
threading.py [3.6] bpo-31516: current_thread() should not return a dummy thread at shutdown (GH-3673) (#3856) 2017-10-02 17:20:01 +02:00
timeit.py bpo-29661: fix contradiction in timeit.Timer.autorange's docstring (GH-331) (GH-353) 2017-02-28 11:28:44 +08:00
token.py PEP 0492 -- Coroutines with async and await syntax. Issue #24017. 2015-05-11 22:57:16 -04:00
tokenize.py Issue #26331: Implement the parsing part of PEP 515. 2016-09-09 14:57:09 -07:00
trace.py More typo fixes for 3.6 2016-06-04 05:06:25 +00:00
traceback.py [3.6] bpo-28603: Fix formatting tracebacks for unhashable exceptions (GH-4014) (#4024) 2017-10-18 01:14:19 +03:00
tracemalloc.py tracemalloc now supports domains 2016-03-22 12:58:23 +01:00
tty.py
turtle.py Correct spelling in documentation and code comment 2016-09-10 10:38:28 +00:00
types.py Issue #28003: Implement PEP 525 -- Asynchronous Generators. 2016-09-08 22:01:51 -07:00
typing.py [3.6] bpo-28556: typing.get_type_hints: better globalns for classes and modules (GH-3582) (#3583) 2017-09-14 16:52:05 -04:00
uu.py
uuid.py bpo-9678: Fix determining the MAC address in the uuid module. (GH-4264) (#4269) 2017-11-04 10:11:20 +02:00
warnings.py Issue #28835: Tidy previous showwarning changes based on review comments. 2016-12-06 17:12:47 -05:00
wave.py Issue #23883: Add missing APIs to __all__; patch by Jacek Kołodziej 2015-11-14 12:46:42 +00:00
weakref.py Fix #29519: weakref spewing exceptions during interp finalization 2017-02-10 00:14:55 -08:00
webbrowser.py Issue #23262: The webbrowser module now supports Firefox 36+ and derived 2016-10-30 19:16:33 +02:00
xdrlib.py
zipapp.py Issue #26778: Fixed "a/an/and" typos in code comment and documentation. 2016-04-17 08:32:47 +03:00
zipfile.py [3.6] Revert bpo-26293 for zipfile breakage. See also bpo-29094. (GH-1484). (#1485) 2017-05-06 15:10:50 +03:00