1.. bpo: 28893 2.. date: 9892 3.. nonce: WTKnpj 4.. release date: 2017-03-04 5.. section: Core and Builtins 6 7Set correct __cause__ for errors about invalid awaitables returned from 8__aiter__ and __anext__. 9 10.. 11 12.. bpo: 29683 13.. date: 9891 14.. nonce: G5iS-P 15.. section: Core and Builtins 16 17Fixes to memory allocation in _PyCode_SetExtra. Patch by Brian Coleman. 18 19.. 20 21.. bpo: 29684 22.. date: 9890 23.. nonce: wTgEoh 24.. section: Core and Builtins 25 26Fix minor regression of PyEval_CallObjectWithKeywords. It should raise 27TypeError when kwargs is not a dict. But it might cause segv when args=NULL 28and kwargs is not a dict. 29 30.. 31 32.. bpo: 28598 33.. date: 9889 34.. nonce: QxbzQn 35.. section: Core and Builtins 36 37Support __rmod__ for subclasses of str being called before str.__mod__. 38Patch by Martijn Pieters. 39 40.. 41 42.. bpo: 29607 43.. date: 9888 44.. nonce: 7NvBA1 45.. section: Core and Builtins 46 47Fix stack_effect computation for CALL_FUNCTION_EX. Patch by Matthieu 48Dartiailh. 49 50.. 51 52.. bpo: 29602 53.. date: 9887 54.. nonce: qyyskC 55.. section: Core and Builtins 56 57Fix incorrect handling of signed zeros in complex constructor for complex 58subclasses and for inputs having a __complex__ method. Patch by Serhiy 59Storchaka. 60 61.. 62 63.. bpo: 29347 64.. date: 9886 65.. nonce: 1RPPGN 66.. section: Core and Builtins 67 68Fixed possibly dereferencing undefined pointers when creating weakref 69objects. 70 71.. 72 73.. bpo: 29438 74.. date: 9885 75.. nonce: IKxD6I 76.. section: Core and Builtins 77 78Fixed use-after-free problem in key sharing dict. 79 80.. 81 82.. bpo: 29319 83.. date: 9884 84.. nonce: KLDUZf 85.. section: Core and Builtins 86 87Prevent RunMainFromImporter overwriting sys.path[0]. 88 89.. 90 91.. bpo: 29337 92.. date: 9883 93.. nonce: bjX8AE 94.. section: Core and Builtins 95 96Fixed possible BytesWarning when compare the code objects. Warnings could be 97emitted at compile time. 98 99.. 100 101.. bpo: 29327 102.. date: 9882 103.. nonce: XXQarW 104.. section: Core and Builtins 105 106Fixed a crash when pass the iterable keyword argument to sorted(). 107 108.. 109 110.. bpo: 29034 111.. date: 9881 112.. nonce: 7-uEDT 113.. section: Core and Builtins 114 115Fix memory leak and use-after-free in os module (path_converter). 116 117.. 118 119.. bpo: 29159 120.. date: 9880 121.. nonce: gEn_kP 122.. section: Core and Builtins 123 124Fix regression in bytes(x) when x.__index__() raises Exception. 125 126.. 127 128.. bpo: 28932 129.. date: 9879 130.. nonce: QnLx8A 131.. section: Core and Builtins 132 133Do not include <sys/random.h> if it does not exist. 134 135.. 136 137.. bpo: 25677 138.. date: 9878 139.. nonce: RWhZrb 140.. section: Core and Builtins 141 142Correct the positioning of the syntax error caret for indented blocks. 143Based on patch by Michael Layzell. 144 145.. 146 147.. bpo: 29000 148.. date: 9877 149.. nonce: K6wQ-3 150.. section: Core and Builtins 151 152Fixed bytes formatting of octals with zero padding in alternate form. 153 154.. 155 156.. bpo: 26919 157.. date: 9876 158.. nonce: Cm7MSa 159.. section: Core and Builtins 160 161On Android, operating system data is now always encoded/decoded to/from 162UTF-8, instead of the locale encoding to avoid inconsistencies with 163os.fsencode() and os.fsdecode() which are already using UTF-8. 164 165.. 166 167.. bpo: 28991 168.. date: 9875 169.. nonce: lGA0FK 170.. section: Core and Builtins 171 172functools.lru_cache() was susceptible to an obscure reentrancy bug 173triggerable by a monkey-patched len() function. 174 175.. 176 177.. bpo: 28739 178.. date: 9874 179.. nonce: w1fvhk 180.. section: Core and Builtins 181 182f-string expressions are no longer accepted as docstrings and by 183ast.literal_eval() even if they do not include expressions. 184 185.. 186 187.. bpo: 28512 188.. date: 9873 189.. nonce: i-pv6d 190.. section: Core and Builtins 191 192Fixed setting the offset attribute of SyntaxError by 193PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject(). 194 195.. 196 197.. bpo: 28918 198.. date: 9872 199.. nonce: SFVuPz 200.. section: Core and Builtins 201 202Fix the cross compilation of xxlimited when Python has been built with 203Py_DEBUG defined. 204 205.. 206 207.. bpo: 28731 208.. date: 9871 209.. nonce: oNF59u 210.. section: Core and Builtins 211 212Optimize _PyDict_NewPresized() to create correct size dict. Improve speed of 213dict literal with constant keys up to 30%. 214 215.. 216 217.. bpo: 29169 218.. date: 9870 219.. nonce: 8ypApm 220.. section: Library 221 222Update zlib to 1.2.11. 223 224.. 225 226.. bpo: 29623 227.. date: 9869 228.. nonce: D3-NP2 229.. section: Library 230 231Allow use of path-like object as a single argument in ConfigParser.read(). 232Patch by David Ellis. 233 234.. 235 236.. bpo: 28963 237.. date: 9868 238.. nonce: tPl8dq 239.. section: Library 240 241Fix out of bound iteration in asyncio.Future.remove_done_callback 242implemented in C. 243 244.. 245 246.. bpo: 29704 247.. date: 9867 248.. nonce: r-kWqv 249.. section: Library 250 251asyncio.subprocess.SubprocessStreamProtocol no longer closes before all 252pipes are closed. 253 254.. 255 256.. bpo: 29271 257.. date: 9866 258.. nonce: y8Vj2v 259.. section: Library 260 261Fix Task.current_task and Task.all_tasks implemented in C to accept None 262argument as their pure Python implementation. 263 264.. 265 266.. bpo: 29703 267.. date: 9865 268.. nonce: ZdsPCR 269.. section: Library 270 271Fix asyncio to support instantiation of new event loops in child processes. 272 273.. 274 275.. bpo: 29376 276.. date: 9864 277.. nonce: rrJhJy 278.. section: Library 279 280Fix assertion error in threading._DummyThread.is_alive(). 281 282.. 283 284.. bpo: 28624 285.. date: 9863 286.. nonce: 43TJib 287.. section: Library 288 289Add a test that checks that cwd parameter of Popen() accepts PathLike 290objects. Patch by Sayan Chowdhury. 291 292.. 293 294.. bpo: 28518 295.. date: 9862 296.. nonce: o-Q2Nw 297.. section: Library 298 299Start a transaction implicitly before a DML statement. Patch by Aviv 300Palivoda. 301 302.. 303 304.. bpo: 29532 305.. date: 9861 306.. nonce: YCwVQn 307.. section: Library 308 309Altering a kwarg dictionary passed to functools.partial() no longer affects 310a partial object after creation. 311 312.. 313 314.. bpo: 29110 315.. date: 9860 316.. nonce: wmE-_T 317.. section: Library 318 319Fix file object leak in aifc.open() when file is given as a filesystem path 320and is not in valid AIFF format. Patch by Anthony Zhang. 321 322.. 323 324.. bpo: 28556 325.. date: 9859 326.. nonce: p6967e 327.. section: Library 328 329Various updates to typing module: typing.Counter, typing.ChainMap, improved 330ABC caching, etc. Original PRs by Jelle Zijlstra, Ivan Levkivskyi, Manuel 331Krebber, and Łukasz Langa. 332 333.. 334 335.. bpo: 29100 336.. date: 9858 337.. nonce: LAAERS 338.. section: Library 339 340Fix datetime.fromtimestamp() regression introduced in Python 3.6.0: check 341minimum and maximum years. 342 343.. 344 345.. bpo: 29519 346.. date: 9857 347.. nonce: oGGgZ4 348.. section: Library 349 350Fix weakref spewing exceptions during interpreter shutdown when used with a 351rare combination of multiprocessing and custom codecs. 352 353.. 354 355.. bpo: 29416 356.. date: 9856 357.. nonce: KJGyI_ 358.. section: Library 359 360Prevent infinite loop in pathlib.Path.mkdir 361 362.. 363 364.. bpo: 29444 365.. date: 9855 366.. nonce: cEwgmk 367.. section: Library 368 369Fixed out-of-bounds buffer access in the group() method of the match object. 370Based on patch by WGH. 371 372.. 373 374.. bpo: 29335 375.. date: 9854 376.. nonce: _KC7IK 377.. section: Library 378 379Fix subprocess.Popen.wait() when the child process has exited to a stopped 380instead of terminated state (ex: when under ptrace). 381 382.. 383 384.. bpo: 29290 385.. date: 9853 386.. nonce: XBqptF 387.. section: Library 388 389Fix a regression in argparse that help messages would wrap at non-breaking 390spaces. 391 392.. 393 394.. bpo: 28735 395.. date: 9852 396.. nonce: admHLO 397.. section: Library 398 399Fixed the comparison of mock.MagickMock with mock.ANY. 400 401.. 402 403.. bpo: 29316 404.. date: 9851 405.. nonce: OeOQw5 406.. section: Library 407 408Restore the provisional status of typing module, add corresponding note to 409documentation. Patch by Ivan L. 410 411.. 412 413.. bpo: 29219 414.. date: 9850 415.. nonce: kxui7t 416.. section: Library 417 418Fixed infinite recursion in the repr of uninitialized ctypes.CDLL instances. 419 420.. 421 422.. bpo: 29011 423.. date: 9849 424.. nonce: MI5f2R 425.. section: Library 426 427Fix an important omission by adding Deque to the typing module. 428 429.. 430 431.. bpo: 28969 432.. date: 9848 433.. nonce: j3HJYO 434.. section: Library 435 436Fixed race condition in C implementation of functools.lru_cache. KeyError 437could be raised when cached function with full cache was simultaneously 438called from different threads with the same uncached arguments. 439 440.. 441 442.. bpo: 29142 443.. date: 9847 444.. nonce: xo6kAv 445.. section: Library 446 447In urllib.request, suffixes in no_proxy environment variable with leading 448dots could match related hostnames again (e.g. .b.c matches a.b.c). Patch by 449Milan Oberkirch. 450 451.. 452 453.. bpo: 28961 454.. date: 9846 455.. nonce: Rt93vg 456.. section: Library 457 458Fix unittest.mock._Call helper: don't ignore the name parameter anymore. 459Patch written by Jiajun Huang. 460 461.. 462 463.. bpo: 29203 464.. date: 9845 465.. nonce: kN5S6v 466.. section: Library 467 468functools.lru_cache() now respects :pep:`468` and preserves the order of 469keyword arguments. f(a=1, b=2) is now cached separately from f(b=2, a=1) 470since both calls could potentially give different results. 471 472.. 473 474.. bpo: 15812 475.. date: 9844 476.. nonce: R1U-Ec 477.. section: Library 478 479inspect.getframeinfo() now correctly shows the first line of a context. 480Patch by Sam Breese. 481 482.. 483 484.. bpo: 29094 485.. date: 9843 486.. nonce: 460ZQo 487.. section: Library 488 489Offsets in a ZIP file created with extern file object and modes "w" and "x" 490now are relative to the start of the file. 491 492.. 493 494.. bpo: 29085 495.. date: 9842 496.. nonce: bm3gkx 497.. section: Library 498 499Allow random.Random.seed() to use high quality OS randomness rather than the 500pid and time. 501 502.. 503 504.. bpo: 29061 505.. date: 9841 506.. nonce: YKq0Ba 507.. section: Library 508 509Fixed bug in secrets.randbelow() which would hang when given a negative 510input. Patch by Brendan Donegan. 511 512.. 513 514.. bpo: 29079 515.. date: 9840 516.. nonce: g4YLix 517.. section: Library 518 519Prevent infinite loop in pathlib.resolve() on Windows 520 521.. 522 523.. bpo: 13051 524.. date: 9839 525.. nonce: YzC1Te 526.. section: Library 527 528Fixed recursion errors in large or resized curses.textpad.Textbox. Based on 529patch by Tycho Andersen. 530 531.. 532 533.. bpo: 29119 534.. date: 9838 535.. nonce: Ov69fr 536.. section: Library 537 538Fix weakrefs in the pure python version of collections.OrderedDict 539move_to_end() method. Contributed by Andra Bogildea. 540 541.. 542 543.. bpo: 9770 544.. date: 9837 545.. nonce: WJJnwP 546.. section: Library 547 548curses.ascii predicates now work correctly with negative integers. 549 550.. 551 552.. bpo: 28427 553.. date: 9836 554.. nonce: vUd-va 555.. section: Library 556 557old keys should not remove new values from WeakValueDictionary when 558collecting from another thread. 559 560.. 561 562.. bpo: 28923 563.. date: 9835 564.. nonce: naVULD 565.. section: Library 566 567Remove editor artifacts from Tix.py. 568 569.. 570 571.. bpo: 29055 572.. date: 9834 573.. nonce: -r_9jc 574.. section: Library 575 576Neaten-up empty population error on random.choice() by suppressing the 577upstream exception. 578 579.. 580 581.. bpo: 28871 582.. date: 9833 583.. nonce: cPMXCJ 584.. section: Library 585 586Fixed a crash when deallocate deep ElementTree. 587 588.. 589 590.. bpo: 19542 591.. date: 9832 592.. nonce: 5tCkaK 593.. section: Library 594 595Fix bugs in WeakValueDictionary.setdefault() and WeakValueDictionary.pop() 596when a GC collection happens in another thread. 597 598.. 599 600.. bpo: 20191 601.. date: 9831 602.. nonce: Q7uZCS 603.. section: Library 604 605Fixed a crash in resource.prlimit() when passing a sequence that doesn't own 606its elements as limits. 607 608.. 609 610.. bpo: 28779 611.. date: 9830 612.. nonce: t-mjED 613.. section: Library 614 615multiprocessing.set_forkserver_preload() would crash the forkserver process 616if a preloaded module instantiated some multiprocessing objects such as 617locks. 618 619.. 620 621.. bpo: 28847 622.. date: 9829 623.. nonce: J7d3nG 624.. section: Library 625 626dbm.dumb now supports reading read-only files and no longer writes the index 627file when it is not changed. 628 629.. 630 631.. bpo: 26937 632.. date: 9828 633.. nonce: c9kgiA 634.. section: Library 635 636The chown() method of the tarfile.TarFile class does not fail now when the 637grp module cannot be imported, as for example on Android platforms. 638 639.. 640 641.. bpo: 29071 642.. date: 9827 643.. nonce: FCOpJn 644.. section: IDLE 645 646IDLE colors f-string prefixes (but not invalid ur prefixes). 647 648.. 649 650.. bpo: 28572 651.. date: 9826 652.. nonce: 1_duKY 653.. section: IDLE 654 655Add 10% to coverage of IDLE's test_configdialog. Update and augment 656description of the configuration system. 657 658.. 659 660.. bpo: 29579 661.. date: 9825 662.. nonce: Ih-G2Q 663.. section: Windows 664 665Removes readme.txt from the installer 666 667.. 668 669.. bpo: 29326 670.. date: 9824 671.. nonce: 4qDQzs 672.. section: Windows 673 674Ignores blank lines in ._pth files (Patch by Alexey Izbyshev) 675 676.. 677 678.. bpo: 28164 679.. date: 9823 680.. nonce: h4CFX8 681.. section: Windows 682 683Correctly handle special console filenames (patch by Eryk Sun) 684 685.. 686 687.. bpo: 29409 688.. date: 9822 689.. nonce: bhvrJ2 690.. section: Windows 691 692Implement :pep:`529` for io.FileIO (Patch by Eryk Sun) 693 694.. 695 696.. bpo: 29392 697.. date: 9821 698.. nonce: OtqS5t 699.. section: Windows 700 701Prevent crash when passing invalid arguments into msvcrt module. 702 703.. 704 705.. bpo: 25778 706.. date: 9820 707.. nonce: 8uKJ82 708.. section: Windows 709 710winreg does not truncate string correctly (Patch by Eryk Sun) 711 712.. 713 714.. bpo: 28896 715.. date: 9819 716.. nonce: VMi9w0 717.. section: Windows 718 719Deprecate WindowsRegistryFinder and disable it by default. 720 721.. 722 723.. bpo: 27867 724.. date: 9818 725.. nonce: UC5ohc 726.. section: C API 727 728Function PySlice_GetIndicesEx() is replaced with a macro if Py_LIMITED_API 729is not set or set to the value between 0x03050400 and 0x03060000 (not 730including) or 0x03060100 or higher. 731 732.. 733 734.. bpo: 29083 735.. date: 9817 736.. nonce: tGTjr_ 737.. section: C API 738 739Fixed the declaration of some public API functions. PyArg_VaParse() and 740PyArg_VaParseTupleAndKeywords() were not available in limited API. 741PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and Py_BuildValue() 742were not available in limited API of version < 3.3 when PY_SSIZE_T_CLEAN is 743defined. 744 745.. 746 747.. bpo: 29058 748.. date: 9816 749.. nonce: 0wNVP8 750.. section: C API 751 752All stable API extensions added after Python 3.2 are now available only when 753Py_LIMITED_API is set to the PY_VERSION_HEX value of the minimum Python 754version supporting this API. 755 756.. 757 758.. bpo: 28929 759.. date: 9815 760.. nonce: Md7kb0 761.. section: Documentation 762 763Link the documentation to its source file on GitHub. 764 765.. 766 767.. bpo: 25008 768.. date: 9814 769.. nonce: CeIzyU 770.. section: Documentation 771 772Document smtpd.py as effectively deprecated and add a pointer to aiosmtpd, a 773third-party asyncio-based replacement. 774 775.. 776 777.. bpo: 26355 778.. date: 9813 779.. nonce: SDq_8Y 780.. section: Documentation 781 782Add canonical header link on each page to corresponding major version of the 783documentation. Patch by Matthias Bussonnier. 784 785.. 786 787.. bpo: 29349 788.. date: 9812 789.. nonce: PjSo-t 790.. section: Documentation 791 792Fix Python 2 syntax in code for building the documentation. 793 794.. 795 796.. bpo: 28087 797.. date: 9811 798.. nonce: m8dc4R 799.. section: Tests 800 801Skip test_asyncore and test_eintr poll failures on macOS. Skip some tests of 802select.poll when running on macOS due to unresolved issues with the 803underlying system poll function on some macOS versions. 804 805.. 806 807.. bpo: 29571 808.. date: 9810 809.. nonce: r6Dixr 810.. section: Tests 811 812to match the behaviour of the ``re.LOCALE`` flag, test_re.test_locale_flag 813now uses ``locale.getpreferredencoding(False)`` to determine the candidate 814encoding for the test regex (allowing it to correctly skip the test when the 815default locale encoding is a multi-byte encoding) 816 817.. 818 819.. bpo: 28950 820.. date: 9809 821.. nonce: 1W8Glo 822.. section: Tests 823 824Disallow -j0 to be combined with -T/-l in regrtest command line arguments. 825 826.. 827 828.. bpo: 28683 829.. date: 9808 830.. nonce: Fp-Hdq 831.. section: Tests 832 833Fix the tests that bind() a unix socket and raise PermissionError on Android 834for a non-root user. 835 836.. 837 838.. bpo: 26939 839.. date: 9807 840.. nonce: 7j_W5R 841.. section: Tests 842 843Add the support.setswitchinterval() function to fix test_functools hanging 844on the Android armv7 qemu emulator. 845 846.. 847 848.. bpo: 27593 849.. date: 9806 850.. nonce: v87xEr 851.. section: Build 852 853sys.version and the platform module python_build(), python_branch(), and 854python_revision() functions now use git information rather than hg when 855building from a repo. 856 857.. 858 859.. bpo: 29572 860.. date: 9805 861.. nonce: iZ1XKK 862.. section: Build 863 864Update Windows build and OS X installers to use OpenSSL 1.0.2k. 865 866.. 867 868.. bpo: 26851 869.. date: 9804 870.. nonce: R5243g 871.. section: Build 872 873Set Android compilation and link flags. 874 875.. 876 877.. bpo: 28768 878.. date: 9803 879.. nonce: b9_a6E 880.. section: Build 881 882Fix implicit declaration of function _setmode. Patch by Masayuki Yamamoto 883 884.. 885 886.. bpo: 29080 887.. date: 9802 888.. nonce: b3qLQT 889.. section: Build 890 891Removes hard dependency on hg.exe from PCBuild/build.bat 892 893.. 894 895.. bpo: 23903 896.. date: 9801 897.. nonce: JXJ889 898.. section: Build 899 900Added missed names to PC/python3.def. 901 902.. 903 904.. bpo: 28762 905.. date: 9800 906.. nonce: Ru0YN_ 907.. section: Build 908 909lockf() is available on Android API level 24, but the F_LOCK macro is not 910defined in android-ndk-r13. 911 912.. 913 914.. bpo: 28538 915.. date: 9799 916.. nonce: FqtN7v 917.. section: Build 918 919Fix the compilation error that occurs because if_nameindex() is available on 920Android API level 24, but the if_nameindex structure is not defined. 921 922.. 923 924.. bpo: 20211 925.. date: 9798 926.. nonce: gpNptI 927.. section: Build 928 929Do not add the directory for installing C header files and the directory for 930installing object code libraries to the cross compilation search paths. 931Original patch by Thomas Petazzoni. 932 933.. 934 935.. bpo: 28849 936.. date: 9797 937.. nonce: AzRRF5 938.. section: Build 939 940Do not define sys.implementation._multiarch on Android. 941