1.. bpo: 38722 2.. date: 2019-11-18-16-17-56 3.. nonce: x3mECW 4.. release date: 2019-11-19 5.. section: Security 6 7:mod:`runpy` now uses :meth:`io.open_code` to open code files. Patch by 8Jason Killen. 9 10.. 11 12.. bpo: 38622 13.. date: 2019-11-14-16-13-23 14.. nonce: 3DYkfb 15.. section: Security 16 17Add additional audit events for the :mod:`ctypes` module. 18 19.. 20 21.. bpo: 38418 22.. date: 2019-10-08-19-29-55 23.. nonce: QL7s0- 24.. section: Security 25 26Fixes audit event for :func:`os.system` to be named ``os.system``. 27 28.. 29 30.. bpo: 38243 31.. date: 2019-09-25-13-21-09 32.. nonce: 1pfz24 33.. section: Security 34 35Escape the server title of :class:`xmlrpc.server.DocXMLRPCServer` when 36rendering the document page as HTML. (Contributed by Dong-hee Na in 37:issue:`38243`.) 38 39.. 40 41.. bpo: 38174 42.. date: 2019-09-23-21-02-46 43.. nonce: MeWuJd 44.. section: Security 45 46Update vendorized expat library version to 2.2.8, which resolves 47CVE-2019-15903. 48 49.. 50 51.. bpo: 37764 52.. date: 2019-08-27-01-13-05 53.. nonce: qv67PQ 54.. section: Security 55 56Fixes email._header_value_parser.get_unstructured going into an infinite 57loop for a specific case in which the email header does not have trailing 58whitespace, and the case in which it contains an invalid encoded word. Patch 59by Ashwin Ramaswami. 60 61.. 62 63.. bpo: 37461 64.. date: 2019-07-16-08-11-00 65.. nonce: 1Ahz7O 66.. section: Security 67 68Fix an infinite loop when parsing specially crafted email headers. Patch by 69Abhilash Raj. 70 71.. 72 73.. bpo: 37363 74.. date: 2019-07-01-10-31-14 75.. nonce: fSjatj 76.. section: Security 77 78Adds audit events for the range of supported run commands (see 79:ref:`using-on-general`). 80 81.. 82 83.. bpo: 37463 84.. date: 2019-07-01-08-46-14 85.. nonce: 1CHwjE 86.. section: Security 87 88ssl.match_hostname() no longer accepts IPv4 addresses with additional text 89after the address and only quad-dotted notation without trailing 90whitespaces. Some inet_aton() implementations ignore whitespace and all data 91after whitespace, e.g. '127.0.0.1 whatever'. 92 93.. 94 95.. bpo: 37363 96.. date: 2019-06-21-15-58-59 97.. nonce: diouyl 98.. section: Security 99 100Adds audit events for :mod:`ensurepip`, :mod:`ftplib`, :mod:`glob`, 101:mod:`imaplib`, :mod:`nntplib`, :mod:`pdb`, :mod:`poplib`, :mod:`shutil`, 102:mod:`smtplib`, :mod:`sqlite3`, :mod:`subprocess`, :mod:`telnetlib`, 103:mod:`tempfile` and :mod:`webbrowser`, as well as :func:`os.listdir`, 104:func:`os.scandir` and :func:`breakpoint`. 105 106.. 107 108.. bpo: 37364 109.. date: 2019-06-21-14-42-53 110.. nonce: IIRc2s 111.. section: Security 112 113:func:`io.open_code` is now used when reading :file:`.pth` files. 114 115.. 116 117.. bpo: 34631 118.. date: 2019-06-17-09-34-25 119.. nonce: DBfM4j 120.. section: Security 121 122Updated OpenSSL to 1.1.1c in Windows installer 123 124.. 125 126.. bpo: 34155 127.. date: 2019-05-04-13-33-37 128.. nonce: MJll68 129.. section: Security 130 131Fix parsing of invalid email addresses with more than one ``@`` (e.g. 132a@[email protected].) to not return the part before 2nd ``@`` as valid email address. 133Patch by maxking & jpic. 134 135.. 136 137.. bpo: 38631 138.. date: 2019-11-18-17-10-20 139.. nonce: tRHaAk 140.. section: Core and Builtins 141 142Replace ``Py_FatalError()`` call with a regular :exc:`RuntimeError` 143exception in :meth:`float.__getformat__`. 144 145.. 146 147.. bpo: 38639 148.. date: 2019-10-30-11-31-47 149.. nonce: 9-vKtO 150.. section: Core and Builtins 151 152Optimized :func:`math.floor()`, :func:`math.ceil()` and :func:`math.trunc()` 153for floats. 154 155.. 156 157.. bpo: 38640 158.. date: 2019-10-30-11-25-25 159.. nonce: 4sAFh5 160.. section: Core and Builtins 161 162Fixed a bug in the compiler that was causing to raise in the presence of 163break statements and continue statements inside always false while loops. 164Patch by Pablo Galindo. 165 166.. 167 168.. bpo: 38613 169.. date: 2019-10-29-15-44-24 170.. nonce: V_R3NC 171.. section: Core and Builtins 172 173Optimized some set operations (e.g. ``|``, ``^``, and ``-``) of 174``dict_keys``. ``d.keys() | other`` was slower than ``set(d) | other`` but 175they are almost same performance for now. 176 177.. 178 179.. bpo: 28029 180.. date: 2019-10-29-09-38-54 181.. nonce: AmRMEF 182.. section: Core and Builtins 183 184``"".replace("", s, n)`` now returns ``s`` instead of an empty string for 185all non-zero ``n``. There are similar changes for :class:`bytes` and 186:class:`bytearray` objects. 187 188.. 189 190.. bpo: 38535 191.. date: 2019-10-20-12-43-48 192.. nonce: ESMkVN 193.. section: Core and Builtins 194 195Fixed line numbers and column offsets for AST nodes for calls without 196arguments in decorators. 197 198.. 199 200.. bpo: 38525 201.. date: 2019-10-20-00-36-18 202.. nonce: Vty1cA 203.. section: Core and Builtins 204 205Fix a segmentation fault when using reverse iterators of empty ``dict`` 206objects. Patch by Dong-hee Na and Inada Naoki. 207 208.. 209 210.. bpo: 38465 211.. date: 2019-10-19-12-44-13 212.. nonce: V1L8c4 213.. section: Core and Builtins 214 215:class:`bytearray`, :class:`~array.array` and :class:`~mmap.mmap` objects 216allow now to export more than ``2**31`` buffers at a time. 217 218.. 219 220.. bpo: 38469 221.. date: 2019-10-13-23-41-38 222.. nonce: 9kmuQj 223.. section: Core and Builtins 224 225Fixed a bug where the scope of named expressions was not being resolved 226correctly in the presence of the *global* keyword. Patch by Pablo Galindo. 227 228.. 229 230.. bpo: 38437 231.. date: 2019-10-10-20-42-09 232.. nonce: z_0mZp 233.. section: Core and Builtins 234 235Activate the ``GC_DEBUG`` macro for debug builds of the interpreter (when 236``Py_DEBUG`` is set). Patch by Pablo Galindo. 237 238.. 239 240.. bpo: 38379 241.. date: 2019-10-10-01-41-02 242.. nonce: _q4dhn 243.. section: Core and Builtins 244 245When the garbage collector makes a collection in which some objects 246resurrect (they are reachable from outside the isolated cycles after the 247finalizers have been executed), do not block the collection of all objects 248that are still unreachable. Patch by Pablo Galindo and Tim Peters. 249 250.. 251 252.. bpo: 38379 253.. date: 2019-10-09-16-50-52 254.. nonce: oz5qZx 255.. section: Core and Builtins 256 257When cyclic garbage collection (gc) runs finalizers that resurrect 258unreachable objects, the current gc run ends, without collecting any cyclic 259trash. However, the statistics reported by ``collect()`` and 260``get_stats()`` claimed that all cyclic trash found was collected, and that 261the resurrected objects were collected. Changed the stats to report that 262none were collected. 263 264.. 265 266.. bpo: 38392 267.. date: 2019-10-07-22-51-39 268.. nonce: KaXXps 269.. section: Core and Builtins 270 271In debug mode, :c:func:`PyObject_GC_Track` now calls ``tp_traverse()`` of 272the object type to ensure that the object is valid: test that objects 273visited by ``tp_traverse()`` are valid. 274 275.. 276 277.. bpo: 38210 278.. date: 2019-10-06-15-01-57 279.. nonce: Xgc6F_ 280.. section: Core and Builtins 281 282Remove unnecessary intersection and update set operation in dictview with 283empty set. (Contributed by Dong-hee Na in :issue:`38210`.) 284 285.. 286 287.. bpo: 38402 288.. date: 2019-10-05-19-36-16 289.. nonce: EZuzgK 290.. section: Core and Builtins 291 292Check the error from the system's underlying ``crypt`` or ``crypt_r``. 293 294.. 295 296.. bpo: 37474 297.. date: 2019-10-01-12-46-30 298.. nonce: cB3se1 299.. section: Core and Builtins 300 301On FreeBSD, Python no longer calls ``fedisableexcept()`` at startup to 302control the floating point control mode. The call became useless since 303FreeBSD 6: it became the default mode. 304 305.. 306 307.. bpo: 38006 308.. date: 2019-09-30-09-33-21 309.. nonce: UYlJum 310.. section: Core and Builtins 311 312Fix a bug due to the interaction of weakrefs and the cyclic garbage 313collector. We must clear any weakrefs in garbage in order to prevent their 314callbacks from executing and causing a crash. 315 316.. 317 318.. bpo: 38317 319.. date: 2019-09-30-00-56-21 320.. nonce: pmqlIQ 321.. section: Core and Builtins 322 323Fix warnings options priority: ``PyConfig.warnoptions`` has the highest 324priority, as stated in the :pep:`587`. 325 326.. 327 328.. bpo: 38310 329.. date: 2019-09-28-22-54-25 330.. nonce: YDTbEo 331.. section: Core and Builtins 332 333Predict ``BUILD_MAP_UNPACK_WITH_CALL`` -> ``CALL_FUNCTION_EX`` opcode pairs 334in the main interpreter loop. Patch by Brandt Bucher. 335 336.. 337 338.. bpo: 36871 339.. date: 2019-09-24-18-45-46 340.. nonce: p47knk 341.. section: Core and Builtins 342 343Improve error handling for the assert_has_calls and assert_has_awaits 344methods of mocks. Fixed a bug where any errors encountered while binding the 345expected calls to the mock's spec were silently swallowed, leading to 346misleading error output. 347 348.. 349 350.. bpo: 11410 351.. date: 2019-09-24-05-32-27 352.. nonce: vS182p 353.. section: Core and Builtins 354 355Better control over symbol visibility is provided through use of the 356visibility attributes available in gcc >= 4.0, provided in a uniform way 357across POSIX and Windows. The POSIX build files have been updated to compile 358with -fvisibility=hidden, minimising exported symbols. 359 360.. 361 362.. bpo: 38219 363.. date: 2019-09-22-13-56-18 364.. nonce: rFl7JD 365.. section: Core and Builtins 366 367Optimized the :class:`dict` constructor and the :meth:`~dict.update` method 368for the case when the argument is a dict. 369 370.. 371 372.. bpo: 38236 373.. date: 2019-09-20-19-06-23 374.. nonce: eQ0Tmj 375.. section: Core and Builtins 376 377Python now dumps path configuration if it fails to import the Python codecs 378of the filesystem and stdio encodings. 379 380.. 381 382.. bpo: 38013 383.. date: 2019-09-12-19-50-01 384.. nonce: I7btD0 385.. section: Core and Builtins 386 387Allow to call ``async_generator_athrow().throw(...)`` even for non-started 388async generator helper. It fixes annoying warning at the end of 389:func:`asyncio.run` call. 390 391.. 392 393.. bpo: 38124 394.. date: 2019-09-12-00-14-01 395.. nonce: n6E0H7 396.. section: Core and Builtins 397 398Fix an off-by-one error in PyState_AddModule that could cause out-of-bounds 399memory access. 400 401.. 402 403.. bpo: 38116 404.. date: 2019-09-11-14-49-42 405.. nonce: KDwmwt 406.. section: Core and Builtins 407 408The select module is now PEP-384 compliant and no longer has static state 409 410.. 411 412.. bpo: 38113 413.. date: 2019-09-11-14-10-02 414.. nonce: yZXC3P 415.. section: Core and Builtins 416 417ast module updated to PEP-384 and all statics removed 418 419.. 420 421.. bpo: 38076 422.. date: 2019-09-09-16-36-37 423.. nonce: C5dVBl 424.. section: Core and Builtins 425 426The struct module is now PEP-384 compatible 427 428.. 429 430.. bpo: 38075 431.. date: 2019-09-09-15-59-50 432.. nonce: N8OZKF 433.. section: Core and Builtins 434 435The random module is now PEP-384 compatible 436 437.. 438 439.. bpo: 38074 440.. date: 2019-09-09-15-40-57 441.. nonce: MsVbeI 442.. section: Core and Builtins 443 444zlib module made PEP-384 compatible 445 446.. 447 448.. bpo: 38073 449.. date: 2019-09-09-15-17-58 450.. nonce: ZoKYOU 451.. section: Core and Builtins 452 453Make pwd extension module PEP-384 compatible 454 455.. 456 457.. bpo: 38072 458.. date: 2019-09-09-15-00-42 459.. nonce: Y1xpDO 460.. section: Core and Builtins 461 462grp module made PEP-384 compatible 463 464.. 465 466.. bpo: 38069 467.. date: 2019-09-09-14-46-05 468.. nonce: cn8XLv 469.. section: Core and Builtins 470 471Make _posixsubprocess PEP-384 compatible 472 473.. 474 475.. bpo: 38071 476.. date: 2019-09-09-14-44-17 477.. nonce: bLwkBJ 478.. section: Core and Builtins 479 480Make termios extension module PEP-384 compatible 481 482.. 483 484.. bpo: 38005 485.. date: 2019-09-02-20-00-31 486.. nonce: e7VsTA 487.. section: Core and Builtins 488 489Fixed comparing and creating of InterpreterID and ChannelID. 490 491.. 492 493.. bpo: 36946 494.. date: 2019-09-02-16-17-42 495.. nonce: _lAuSR 496.. section: Core and Builtins 497 498Fix possible signed integer overflow when handling slices. Patch by 499hongweipeng. 500 501.. 502 503.. bpo: 37994 504.. date: 2019-08-31-11-13-25 505.. nonce: Rj6S4j 506.. section: Core and Builtins 507 508Fixed silencing arbitrary errors if an attribute lookup fails in several 509sites. Only AttributeError should be silenced. 510 511.. 512 513.. bpo: 8425 514.. date: 2019-08-29-01-55-38 515.. nonce: FTq4A8 516.. section: Core and Builtins 517 518Optimize set difference_update for the case when the other set is much 519larger than the base set. (Suggested by Evgeny Kapun with code contributed 520by Michele Orrù). 521 522.. 523 524.. bpo: 37966 525.. date: 2019-08-27-21-21-36 526.. nonce: 5OBLez 527.. section: Core and Builtins 528 529The implementation of :func:`~unicodedata.is_normalized` has been greatly 530sped up on strings that aren't normalized, by implementing the full 531normalization-quick-check algorithm from the Unicode standard. 532 533.. 534 535.. bpo: 37947 536.. date: 2019-08-26-04-09-57 537.. nonce: mzAQtB 538.. section: Core and Builtins 539 540Adjust correctly the recursion level in the symtable generation for named 541expressions. Patch by Pablo Galindo. 542 543.. 544 545.. bpo: 37812 546.. date: 2019-08-23-22-46-25 547.. nonce: vsWZwS 548.. section: Core and Builtins 549 550The ``CHECK_SMALL_INT`` macro used inside :file:`Object/longobject.c` has 551been replaced with an explicit ``return`` at each call site. 552 553.. 554 555.. bpo: 37751 556.. date: 2019-08-20-04-36-37 557.. nonce: CSFzUd 558.. section: Core and Builtins 559 560Fix :func:`codecs.lookup` to normalize the encoding name the same way than 561:func:`encodings.normalize_encoding`, except that :func:`codecs.lookup` also 562converts the name to lower case. 563 564.. 565 566.. bpo: 37830 567.. date: 2019-08-17-18-41-59 568.. nonce: fNfMbz 569.. section: Core and Builtins 570 571Fixed compilation of :keyword:`break` and :keyword:`continue` in the 572:keyword:`finally` block when the corresponding :keyword:`try` block 573contains :keyword:`return` with a non-constant value. 574 575.. 576 577.. bpo: 20490 578.. date: 2019-08-15-12-48-36 579.. nonce: -hXeEn 580.. section: Core and Builtins 581 582Improve import error message for partially initialized module on circular 583``from`` imports - by Anthony Sottile. 584 585.. 586 587.. bpo: 37840 588.. date: 2019-08-13-18-05-20 589.. nonce: elLCci 590.. section: Core and Builtins 591 592Fix handling of negative indices in :c:member:`~PySequenceMethods.sq_item` 593of :class:`bytearray`. Patch by Sergey Fedoseev. 594 595.. 596 597.. bpo: 37802 598.. date: 2019-08-09-18-28-57 599.. nonce: pKxcAW 600.. section: Core and Builtins 601 602Slightly improve performance of :c:func:`PyLong_FromUnsignedLong`, 603:c:func:`PyLong_FromUnsignedLongLong` and :c:func:`PyLong_FromSize_t`. Patch 604by Sergey Fedoseev. 605 606.. 607 608.. bpo: 37409 609.. date: 2019-08-06-23-39-05 610.. nonce: 1qwzn2 611.. section: Core and Builtins 612 613Ensure explicit relative imports from interactive sessions and scripts 614(having no parent package) always raise ImportError, rather than treating 615the current module as the package. Patch by Ben Lewis. 616 617.. 618 619.. bpo: 32912 620.. date: 2019-08-06-14-03-59 621.. nonce: UDwSMJ 622.. section: Core and Builtins 623 624Reverted :issue:`32912`: emitting :exc:`SyntaxWarning` instead of 625:exc:`DeprecationWarning` for invalid escape sequences in string and bytes 626literals. 627 628.. 629 630.. bpo: 37757 631.. date: 2019-08-05-14-22-59 632.. nonce: lRv5HX 633.. section: Core and Builtins 634 635:pep:`572`: As described in the PEP, assignment expressions now raise 636:exc:`SyntaxError` when their interaction with comprehension scoping results 637in an ambiguous target scope. 638 639The ``TargetScopeError`` subclass originally proposed by the PEP has been 640removed in favour of just raising regular syntax errors for the disallowed 641cases. 642 643.. 644 645.. bpo: 36279 646.. date: 2019-08-04-12-24-18 647.. nonce: 8Zy7jZ 648.. section: Core and Builtins 649 650Fix potential use of uninitialized memory in :func:`os.wait3`. 651 652.. 653 654.. bpo: 36311 655.. date: 2019-08-02-15-01-33 656.. nonce: uY5vt- 657.. section: Core and Builtins 658 659Decoding bytes objects larger than 2GiB is faster and no longer fails when a 660multibyte characters spans a chunk boundary. 661 662.. 663 664.. bpo: 34880 665.. date: 2019-08-01-10-45-51 666.. nonce: u_x_CG 667.. section: Core and Builtins 668 669The :keyword:`assert` statement now works properly if the 670:exc:`AssertionError` exception is being shadowed. Patch by Zackery Spytz. 671 672.. 673 674.. bpo: 37340 675.. date: 2019-07-25-11-06-57 676.. nonce: 5ktLEg 677.. section: Core and Builtins 678 679Removed object cache (``free_list``) for bound method objects. Temporary 680bound method objects are less used than before thanks to the ``LOAD_METHOD`` 681opcode and the ``_PyObject_VectorcallMethod`` C API. 682 683.. 684 685.. bpo: 37648 686.. date: 2019-07-22-11-05-05 687.. nonce: 6TY2L- 688.. section: Core and Builtins 689 690Fixed minor inconsistency in :meth:`list.__contains__`, 691:meth:`tuple.__contains__` and a few other places. The collection's item is 692now always at the left and the needle is on the right of ``==``. 693 694.. 695 696.. bpo: 37444 697.. date: 2019-07-20-22-34-42 698.. nonce: UOd3Xs 699.. section: Core and Builtins 700 701Update differing exception between :meth:`builtins.__import__` and 702:meth:`importlib.__import__`. 703 704.. 705 706.. bpo: 37619 707.. date: 2019-07-18-11-50-49 708.. nonce: X6Lulo 709.. section: Core and Builtins 710 711When adding a wrapper descriptor from one class to a different class (for 712example, setting ``__add__ = str.__add__`` on an ``int`` subclass), an 713exception is correctly raised when the operator is called. 714 715.. 716 717.. bpo: 37593 718.. date: 2019-07-14-23-57-27 719.. nonce: yHSTwH 720.. section: Core and Builtins 721 722Swap the positions of the *posonlyargs* and *args* parameters in the 723constructor of :class:`ast.parameters` nodes. 724 725.. 726 727.. bpo: 37543 728.. date: 2019-07-10-20-33-53 729.. nonce: EvI19D 730.. section: Core and Builtins 731 732Optimized pymalloc for non PGO build. 733 734.. 735 736.. bpo: 37537 737.. date: 2019-07-10-09-56-47 738.. nonce: OkB0wd 739.. section: Core and Builtins 740 741Compute allocated pymalloc blocks inside _Py_GetAllocatedBlocks(). This 742slows down _Py_GetAllocatedBlocks() but gives a small speedup to 743_PyObject_Malloc() and _PyObject_Free(). 744 745.. 746 747.. bpo: 37467 748.. date: 2019-07-01-12-22-44 749.. nonce: u-XyEu 750.. section: Core and Builtins 751 752Fix :func:`sys.excepthook` and :c:func:`PyErr_Display` if a filename is a 753bytes string. For example, for a SyntaxError exception where the filename 754attribute is a bytes string. 755 756.. 757 758.. bpo: 37433 759.. date: 2019-06-27-15-01-14 760.. nonce: amNGqr 761.. section: Core and Builtins 762 763Fix ``SyntaxError`` indicator printing too many spaces for multi-line 764strings - by Anthony Sottile. 765 766.. 767 768.. bpo: 37417 769.. date: 2019-06-26-18-41-00 770.. nonce: VsZeHL 771.. section: Core and Builtins 772 773:meth:`bytearray.extend` now correctly handles errors that arise during 774iteration. Patch by Brandt Bucher. 775 776.. 777 778.. bpo: 37414 779.. date: 2019-06-26-17-27-26 780.. nonce: o6Lnbc 781.. section: Core and Builtins 782 783The undocumented ``sys.callstats()`` function has been removed. Since Python 7843.7, it was deprecated and always returned ``None``. It required a special 785build option ``CALL_PROFILE`` which was already removed in Python 3.7. 786 787.. 788 789.. bpo: 37392 790.. date: 2019-06-25-01-45-06 791.. nonce: J3JhIx 792.. section: Core and Builtins 793 794Remove ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions. 795They were deprecated since Python 3.2. Use :func:`sys.getswitchinterval` and 796:func:`sys.setswitchinterval` instead. Remove also ``check_interval`` field 797of the ``PyInterpreterState`` structure. 798 799.. 800 801.. bpo: 37388 802.. date: 2019-06-24-21-53-52 803.. nonce: 0XTZmW 804.. section: Core and Builtins 805 806In development mode and in debug build, *encoding* and *errors* arguments 807are now checked on string encoding and decoding operations. Examples: 808:func:`open`, :meth:`str.encode` and :meth:`bytes.decode`. 809 810By default, for best performances, the *errors* argument is only checked at 811the first encoding/decoding error, and the *encoding* argument is sometimes 812ignored for empty strings. 813 814.. 815 816.. bpo: 37348 817.. date: 2019-06-23-00-26-30 818.. nonce: pp8P-x 819.. section: Core and Builtins 820 821Optimized decoding short ASCII string with UTF-8 and ascii codecs. 822``b"foo".decode()`` is about 15% faster. Patch by Inada Naoki. 823 824.. 825 826.. bpo: 24214 827.. date: 2019-06-22-12-45-20 828.. nonce: hIiHeD 829.. section: Core and Builtins 830 831Improved support of the surrogatepass error handler in the UTF-8 and UTF-16 832incremental decoders. 833 834.. 835 836.. bpo: 37330 837.. date: 2019-06-18-17-53-06 838.. nonce: wAvHmz 839.. section: Core and Builtins 840 841:func:`open`, :func:`io.open`, :func:`codecs.open` and 842:class:`fileinput.FileInput` no longer accept ``'U'`` ("universal newline") 843in the file mode. This flag was deprecated since Python 3.3. 844 845.. 846 847.. bpo: 35224 848.. date: 2019-06-17-06-03-55 849.. nonce: FHWPGv 850.. section: Core and Builtins 851 852Reverse evaluation order of key: value in dict comprehensions as proposed in 853PEP 572. I.e. in ``{k: v for ...}``, ``k`` will be evaluated before ``v``. 854 855.. 856 857.. bpo: 37316 858.. date: 2019-06-17-03-53-16 859.. nonce: LytDX_ 860.. section: Core and Builtins 861 862Fix the :c:func:`PySys_Audit` call in :class:`mmap.mmap`. 863 864.. 865 866.. bpo: 37300 867.. date: 2019-06-16-02-38-25 868.. nonce: WJkgKV 869.. section: Core and Builtins 870 871Remove an unnecessary Py_XINCREF in classobject.c. 872 873.. 874 875.. bpo: 37269 876.. date: 2019-06-14-06-32-33 877.. nonce: SjVVAe 878.. section: Core and Builtins 879 880Fix a bug in the peephole optimizer that was not treating correctly constant 881conditions with binary operators. Patch by Pablo Galindo. 882 883.. 884 885.. bpo: 20443 886.. date: 2019-06-13-12-55-38 887.. nonce: bQWAxg 888.. section: Core and Builtins 889 890Python now gets the absolute path of the script filename specified on the 891command line (ex: "python3 script.py"): the __file__ attribute of the 892__main__ module and sys.path[0] become an absolute path, rather than a 893relative path. 894 895.. 896 897.. bpo: 37257 898.. date: 2019-06-13-02-27-12 899.. nonce: IMxDvT 900.. section: Core and Builtins 901 902Python's small object allocator (``obmalloc.c``) now allows (no more than) 903one empty arena to remain available for immediate reuse, without returning 904it to the OS. This prevents thrashing in simple loops where an arena could 905be created and destroyed anew on each iteration. 906 907.. 908 909.. bpo: 37231 910.. date: 2019-06-12-14-39-16 911.. nonce: LF41Es 912.. section: Core and Builtins 913 914The dispatching of type slots to special methods (for example calling 915``__mul__`` when doing ``x * y``) has been made faster. 916 917.. 918 919.. bpo: 36974 920.. date: 2019-06-11-12-59-38 921.. nonce: bVYmSA 922.. section: Core and Builtins 923 924Implemented separate vectorcall functions for every calling convention of 925builtin functions and methods. This improves performance for calls. 926 927.. 928 929.. bpo: 37213 930.. date: 2019-06-11-11-15-19 931.. nonce: UPii5K 932.. section: Core and Builtins 933 934Handle correctly negative line offsets in the peephole optimizer. Patch by 935Pablo Galindo. 936 937.. 938 939.. bpo: 37219 940.. date: 2019-06-10-23-18-31 941.. nonce: jPSufq 942.. section: Core and Builtins 943 944Remove erroneous optimization for empty set differences. 945 946.. 947 948.. bpo: 15913 949.. date: 2019-06-06-20-52-38 950.. nonce: 5Sg5cv 951.. section: Core and Builtins 952 953Implement :c:func:`PyBuffer_SizeFromFormat()` function (previously 954documented but not implemented): call :func:`struct.calcsize`. Patch by 955Joannah Nanjekye. 956 957.. 958 959.. bpo: 36922 960.. date: 2019-06-06-13-59-52 961.. nonce: EMZ3TF 962.. section: Core and Builtins 963 964Slot functions optimize any callable with ``Py_TPFLAGS_METHOD_DESCRIPTOR`` 965instead of only instances of ``function``. 966 967.. 968 969.. bpo: 36974 970.. date: 2019-06-06-11-00-55 971.. nonce: wdzzym 972.. section: Core and Builtins 973 974The slot ``tp_vectorcall_offset`` is inherited unconditionally to support 975``super().__call__()`` when the base class uses vectorcall. 976 977.. 978 979.. bpo: 37160 980.. date: 2019-06-05-09-24-17 981.. nonce: O3IAY3 982.. section: Core and Builtins 983 984:func:`threading.get_native_id` now also supports NetBSD. 985 986.. 987 988.. bpo: 37077 989.. date: 2019-05-28-11-47-44 990.. nonce: S1h0Fc 991.. section: Core and Builtins 992 993Add :func:`threading.get_native_id` support for AIX. Patch by M. Felt 994 995.. 996 997.. bpo: 36781 998.. date: 2019-05-06-09-59-31 999.. nonce: uocWt6 1000.. section: Core and Builtins 1001 1002:func:`sum` has been optimized for boolean values. 1003 1004.. 1005 1006.. bpo: 34556 1007.. date: 2019-05-05-18-09-40 1008.. nonce: o9kfpu 1009.. section: Core and Builtins 1010 1011Add ``--upgrade-deps`` to venv module. Patch by Cooper Ry Lees 1012 1013.. 1014 1015.. bpo: 20523 1016.. date: 2019-02-15-20-42-36 1017.. nonce: rRLrvr 1018.. section: Core and Builtins 1019 1020``pdb.Pdb`` supports ~/.pdbrc in Windows 7. Patch by Tim Hopper and Dan 1021Lidral-Porter. 1022 1023.. 1024 1025.. bpo: 35551 1026.. date: 2019-01-18-16-16-27 1027.. nonce: oF5pbO 1028.. section: Core and Builtins 1029 1030Updated encodings: - Removed the "tis260" encoding, which was an alias for 1031the nonexistent "tactis" codec. - Added "mac_centeuro" as an alias for the 1032mac_latin2 encoding. 1033 1034.. 1035 1036.. bpo: 19072 1037.. date: 2018-07-23-13-09-54 1038.. nonce: Gc59GS 1039.. section: Core and Builtins 1040 1041The :class:`classmethod` decorator can now wrap other descriptors such as 1042property objects. Adapted from a patch written by Graham Dumpleton. 1043 1044.. 1045 1046.. bpo: 27575 1047.. date: 2018-06-14-13-55-45 1048.. nonce: mMYgzv 1049.. section: Core and Builtins 1050 1051Improve speed of dictview intersection by directly using set intersection 1052logic. Patch by David Su. 1053 1054.. 1055 1056.. bpo: 30773 1057.. date: 2018-06-07-01-01-20 1058.. nonce: C31rVE 1059.. section: Core and Builtins 1060 1061Prohibit parallel running of aclose() / asend() / athrow(). Fix ag_running 1062to reflect the actual running status of the AG. 1063 1064.. 1065 1066.. bpo: 36589 1067.. date: 2019-11-16-22-56-51 1068.. nonce: 0Io76D 1069.. section: Library 1070 1071The :func:`curses.update_lines_cols` function now returns ``None`` instead 1072of ``1`` on success. 1073 1074.. 1075 1076.. bpo: 38807 1077.. date: 2019-11-15-09-30-29 1078.. nonce: PsmRog 1079.. section: Library 1080 1081Update :exc:`TypeError` messages for :meth:`os.path.join` to include 1082:class:`os.PathLike` objects as acceptable input types. 1083 1084.. 1085 1086.. bpo: 38724 1087.. date: 2019-11-14-14-13-29 1088.. nonce: T5ySfR 1089.. section: Library 1090 1091Add a repr for ``subprocess.Popen`` objects. Patch by Andrey Doroschenko. 1092 1093.. 1094 1095.. bpo: 38786 1096.. date: 2019-11-13-16-49-03 1097.. nonce: gNOwKh 1098.. section: Library 1099 1100pydoc now recognizes and parses HTTPS URLs. Patch by python273. 1101 1102.. 1103 1104.. bpo: 38785 1105.. date: 2019-11-13-16-17-43 1106.. nonce: NEOEfk 1107.. section: Library 1108 1109Prevent asyncio from crashing if parent ``__init__`` is not called from a 1110constructor of object derived from ``asyncio.Future``. 1111 1112.. 1113 1114.. bpo: 38723 1115.. date: 2019-11-12-15-46-28 1116.. nonce: gcdMFn 1117.. section: Library 1118 1119:mod:`pdb` now uses :meth:`io.open_code` to trigger auditing events. 1120 1121.. 1122 1123.. bpo: 27805 1124.. date: 2019-11-11-21-43-06 1125.. nonce: D3zl1_ 1126.. section: Library 1127 1128Allow opening pipes and other non-seekable files in append mode with 1129:func:`open`. 1130 1131.. 1132 1133.. bpo: 38438 1134.. date: 2019-11-11-06-14-25 1135.. nonce: vSVeHN 1136.. section: Library 1137 1138Simplify the :mod:`argparse` usage message for ``nargs="*"``. 1139 1140.. 1141 1142.. bpo: 38761 1143.. date: 2019-11-10-13-40-33 1144.. nonce: P1UUIZ 1145.. section: Library 1146 1147WeakSet is now registered as a collections.abc.MutableSet. 1148 1149.. 1150 1151.. bpo: 38716 1152.. date: 2019-11-06-15-58-07 1153.. nonce: R3uMLT 1154.. section: Library 1155 1156logging: change RotatingHandler namer and rotator to class-level attributes. 1157This stops __init__ from setting them to None in the case where a subclass 1158defines them with eponymous methods. 1159 1160.. 1161 1162.. bpo: 38713 1163.. date: 2019-11-05-21-22-22 1164.. nonce: bmhquU 1165.. section: Library 1166 1167Add :data:`os.P_PIDFD` constant, which may be passed to :func:`os.waitid` to 1168wait on a Linux process file descriptor. 1169 1170.. 1171 1172.. bpo: 38692 1173.. date: 2019-11-05-19-15-57 1174.. nonce: 2DCDA- 1175.. section: Library 1176 1177Add :class:`asyncio.PidfdChildWatcher`, a Linux-specific child watcher 1178implementation that polls process file descriptors. 1179 1180.. 1181 1182.. bpo: 38692 1183.. date: 2019-11-05-07-18-24 1184.. nonce: UpatA7 1185.. section: Library 1186 1187Expose the Linux ``pidfd_open`` syscall as :func:`os.pidfd_open`. 1188 1189.. 1190 1191.. bpo: 38602 1192.. date: 2019-10-27-22-29-45 1193.. nonce: 7jvYFA 1194.. section: Library 1195 1196Added constants :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl.F_OFD_SETLK` and 1197:data:`~fcntl.F_OFD_SETLKW` to the :mod:`fcntl` module. Patch by Dong-hee 1198Na. 1199 1200.. 1201 1202.. bpo: 38334 1203.. date: 2019-10-27-00-08-49 1204.. nonce: pfLLmc 1205.. section: Library 1206 1207Fixed seeking backward on an encrypted :class:`zipfile.ZipExtFile`. 1208 1209.. 1210 1211.. bpo: 38312 1212.. date: 2019-10-26-14-42-20 1213.. nonce: e_FVWh 1214.. section: Library 1215 1216Add :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, 1217:func:`curses.get_tabsize`, and :func:`curses.set_tabsize` functions - by 1218Anthony Sottile. 1219 1220.. 1221 1222.. bpo: 38586 1223.. date: 2019-10-24-17-26-39 1224.. nonce: cyq5nr 1225.. section: Library 1226 1227Now :func:`~logging.config.fileConfig` correctly sets the .name of handlers 1228loaded. 1229 1230.. 1231 1232.. bpo: 38565 1233.. date: 2019-10-24-08-10-30 1234.. nonce: SWSUst 1235.. section: Library 1236 1237Add new cache_parameters() method for functools.lru_cache() to better 1238support pickling. 1239 1240.. 1241 1242.. bpo: 34679 1243.. date: 2019-10-23-16-25-12 1244.. nonce: Bnw8o3 1245.. section: Library 1246 1247asynci.ProactorEventLoop.close() now only calls signal.set_wakeup_fd() in 1248the main thread. 1249 1250.. 1251 1252.. bpo: 31202 1253.. date: 2019-10-20-12-04-48 1254.. nonce: NfdIus 1255.. section: Library 1256 1257The case the result of :func:`pathlib.WindowsPath.glob` matches now the case 1258of the pattern for literal parts. 1259 1260.. 1261 1262.. bpo: 36321 1263.. date: 2019-10-19-21-41-20 1264.. nonce: CFlxfy 1265.. section: Library 1266 1267Remove misspelled attribute. The 3.8 changelog noted that this would be 1268removed in 3.9. 1269 1270.. 1271 1272.. bpo: 38521 1273.. date: 2019-10-18-13-57-31 1274.. nonce: U-7aaM 1275.. section: Library 1276 1277Fixed erroneous equality comparison in statistics.NormalDist(). 1278 1279.. 1280 1281.. bpo: 38493 1282.. date: 2019-10-16-19-56-51 1283.. nonce: 86ExWB 1284.. section: Library 1285 1286Added :data:`~os.CLD_KILLED` and :data:`~os.CLD_STOPPED` for 1287:attr:`si_code`. Patch by Dong-hee Na. 1288 1289.. 1290 1291.. bpo: 38478 1292.. date: 2019-10-15-11-37-57 1293.. nonce: A87OPO 1294.. section: Library 1295 1296Fixed a bug in :meth:`inspect.signature.bind` that was causing it to fail 1297when handling a keyword argument with same name as positional-only 1298parameter. Patch by Pablo Galindo. 1299 1300.. 1301 1302.. bpo: 33604 1303.. date: 2019-10-15-09-47-40 1304.. nonce: J12cWT 1305.. section: Library 1306 1307Fixed `hmac.new` and `hmac.HMAC` to raise TypeError instead of ValueError 1308when the digestmod parameter, now required in 3.8, is omitted. Also 1309clarified the hmac module documentation and docstrings. 1310 1311.. 1312 1313.. bpo: 38378 1314.. date: 2019-10-13-11-00-03 1315.. nonce: yYNpSm 1316.. section: Library 1317 1318Parameters *out* and *in* of :func:`os.sendfile` was renamed to *out_fd* and 1319*in_fd*. 1320 1321.. 1322 1323.. bpo: 38417 1324.. date: 2019-10-12-00-13-47 1325.. nonce: W7x_aS 1326.. section: Library 1327 1328Added support for setting the umask in the child process to the subprocess 1329module on POSIX systems. 1330 1331.. 1332 1333.. bpo: 38449 1334.. date: 2019-10-11-18-49-00 1335.. nonce: 9TWMlz 1336.. section: Library 1337 1338Revert PR 15522, which introduces a regression in 1339:meth:`mimetypes.guess_type` due to improper handling of filenames as urls. 1340 1341.. 1342 1343.. bpo: 38431 1344.. date: 2019-10-10-16-53-00 1345.. nonce: d5wzNp 1346.. section: Library 1347 1348Fix ``__repr__`` method for :class:`dataclasses.InitVar` to support typing 1349objects, patch by Samuel Colvin. 1350 1351.. 1352 1353.. bpo: 38109 1354.. date: 2019-10-10-00-25-28 1355.. nonce: 9w-IGF 1356.. section: Library 1357 1358Add missing :data:`stat.S_IFDOOR`, :data:`stat.S_IFPORT`, 1359:data:`stat.S_IFWHT`, :func:`stat.S_ISDOOR`, :func:`stat.S_ISPORT`, and 1360:func:`stat.S_ISWHT` values to the Python implementation of :mod:`stat`. 1361 1362.. 1363 1364.. bpo: 38422 1365.. date: 2019-10-09-18-16-51 1366.. nonce: aiM5bq 1367.. section: Library 1368 1369Clarify docstrings of pathlib suffix(es) 1370 1371.. 1372 1373.. bpo: 38405 1374.. date: 2019-10-08-11-18-40 1375.. nonce: 0-7e7s 1376.. section: Library 1377 1378Nested subclasses of :class:`typing.NamedTuple` are now pickleable. 1379 1380.. 1381 1382.. bpo: 38332 1383.. date: 2019-10-05-02-07-52 1384.. nonce: hwrPN7 1385.. section: Library 1386 1387Prevent :exc:`KeyError` thrown by :func:`_encoded_words.decode` when given 1388an encoded-word with invalid content-type encoding from propagating all the 1389way to :func:`email.message.get`. 1390 1391.. 1392 1393.. bpo: 38371 1394.. date: 2019-10-04-18-39-59 1395.. nonce: S6Klvm 1396.. section: Library 1397 1398Deprecated the ``split()`` method in :class:`_tkinter.TkappType` in favour 1399of the ``splitlist()`` method which has more consistent and predicable 1400behavior. 1401 1402.. 1403 1404.. bpo: 38341 1405.. date: 2019-10-01-21-06-18 1406.. nonce: uqwgU_ 1407.. section: Library 1408 1409Add :exc:`smtplib.SMTPNotSupportedError` to the :mod:`smtplib` exported 1410names. 1411 1412.. 1413 1414.. bpo: 38319 1415.. date: 2019-09-30-22-06-33 1416.. nonce: 5QjiDa 1417.. section: Library 1418 1419sendfile() used in socket and shutil modules was raising OverflowError for 1420files >= 2GiB on 32-bit architectures. (patch by Giampaolo Rodola) 1421 1422.. 1423 1424.. bpo: 38242 1425.. date: 2019-09-30-00-15-27 1426.. nonce: uPIyAc 1427.. section: Library 1428 1429Revert the new asyncio Streams API 1430 1431.. 1432 1433.. bpo: 13153 1434.. date: 2019-09-29-22-47-37 1435.. nonce: 0mO9qR 1436.. section: Library 1437 1438OS native encoding is now used for converting between Python strings and Tcl 1439objects. This allows to display, copy and paste to clipboard emoji and 1440other non-BMP characters. Converting strings from Tcl to Python and back 1441now never fails (except MemoryError). 1442 1443.. 1444 1445.. bpo: 38019 1446.. date: 2019-09-29-13-50-24 1447.. nonce: 6MoOE3 1448.. section: Library 1449 1450Correctly handle pause/resume reading of closed asyncio unix pipe. 1451 1452.. 1453 1454.. bpo: 38163 1455.. date: 2019-09-28-20-16-40 1456.. nonce: x51-vK 1457.. section: Library 1458 1459Child mocks will now detect their type as either synchronous or 1460asynchronous, asynchronous child mocks will be AsyncMocks and synchronous 1461child mocks will be either MagicMock or Mock (depending on their parent 1462type). 1463 1464.. 1465 1466.. bpo: 38161 1467.. date: 2019-09-27-16-31-28 1468.. nonce: zehai1 1469.. section: Library 1470 1471Removes _AwaitEvent from AsyncMock. 1472 1473.. 1474 1475.. bpo: 38216 1476.. date: 2019-09-27-15-24-45 1477.. nonce: -7yvZR 1478.. section: Library 1479 1480Allow the rare code that wants to send invalid http requests from the 1481`http.client` library a way to do so. The fixes for bpo-30458 led to 1482breakage for some projects that were relying on this ability to test their 1483own behavior in the face of bad requests. 1484 1485.. 1486 1487.. bpo: 28286 1488.. date: 2019-09-26-12-16-30 1489.. nonce: LdSsrN 1490.. section: Library 1491 1492Deprecate opening :class:`~gzip.GzipFile` for writing implicitly. Always 1493specify the *mode* argument for writing. 1494 1495.. 1496 1497.. bpo: 38108 1498.. date: 2019-09-25-21-37-02 1499.. nonce: Jr9HU6 1500.. section: Library 1501 1502Any synchronous magic methods on an AsyncMock now return a MagicMock. Any 1503asynchronous magic methods on a MagicMock now return an AsyncMock. 1504 1505.. 1506 1507.. bpo: 38265 1508.. date: 2019-09-25-05-16-19 1509.. nonce: X6-gsT 1510.. section: Library 1511 1512Update the *length* parameter of :func:`os.pread` to accept 1513:c:type:`Py_ssize_t` instead of :c:expr:`int`. 1514 1515.. 1516 1517.. bpo: 38112 1518.. date: 2019-09-24-10-55-01 1519.. nonce: 2EinX9 1520.. section: Library 1521 1522:mod:`compileall` has a higher default recursion limit and new command-line 1523arguments for path manipulation, symlinks handling, and multiple 1524optimization levels. 1525 1526.. 1527 1528.. bpo: 38248 1529.. date: 2019-09-22-13-05-36 1530.. nonce: Yo3N_1 1531.. section: Library 1532 1533asyncio: Fix inconsistent immediate Task cancellation 1534 1535.. 1536 1537.. bpo: 38237 1538.. date: 2019-09-20-14-27-17 1539.. nonce: xRUZbx 1540.. section: Library 1541 1542The arguments for the builtin pow function are more descriptive. They can 1543now also be passed in as keywords. 1544 1545.. 1546 1547.. bpo: 34002 1548.. date: 2019-09-19-19-58-33 1549.. nonce: KBnaVX 1550.. section: Library 1551 1552Improve efficiency in parts of email package by changing while-pop to a for 1553loop, using isdisjoint instead of set intersections. 1554 1555.. 1556 1557.. bpo: 38191 1558.. date: 2019-09-17-12-28-27 1559.. nonce: 1TU0HV 1560.. section: Library 1561 1562Constructors of :class:`~typing.NamedTuple` and :class:`~typing.TypedDict` 1563types now accept arbitrary keyword argument names, including "cls", "self", 1564"typename", "_typename", "fields" and "_fields". 1565 1566.. 1567 1568.. bpo: 38155 1569.. date: 2019-09-16-21-47-48 1570.. nonce: d92lRc 1571.. section: Library 1572 1573Add ``__all__`` to :mod:`datetime`. Patch by Tahia Khan. 1574 1575.. 1576 1577.. bpo: 38185 1578.. date: 2019-09-16-19-12-57 1579.. nonce: zYWppY 1580.. section: Library 1581 1582Fixed case-insensitive string comparison in :class:`sqlite3.Row` indexing. 1583 1584.. 1585 1586.. bpo: 38136 1587.. date: 2019-09-16-09-54-42 1588.. nonce: MdI-Zb 1589.. section: Library 1590 1591Changes AsyncMock call count and await count to be two different counters. 1592Now await count only counts when a coroutine has been awaited, not when it 1593has been called, and vice-versa. Update the documentation around this. 1594 1595.. 1596 1597.. bpo: 37828 1598.. date: 2019-09-15-21-31-18 1599.. nonce: gLLDX7 1600.. section: Library 1601 1602Fix default mock name in :meth:`unittest.mock.Mock.assert_called` 1603exceptions. Patch by Abraham Toriz Cruz. 1604 1605.. 1606 1607.. bpo: 38175 1608.. date: 2019-09-15-10-30-33 1609.. nonce: 61XlUv 1610.. section: Library 1611 1612Fix a memory leak in comparison of :class:`sqlite3.Row` objects. 1613 1614.. 1615 1616.. bpo: 33936 1617.. date: 2019-09-14-10-34-00 1618.. nonce: 8wCI_n 1619.. section: Library 1620 1621_hashlib no longer calls obsolete OpenSSL initialization function with 1622OpenSSL 1.1.0+. 1623 1624.. 1625 1626.. bpo: 34706 1627.. date: 2019-09-13-14-54-33 1628.. nonce: HWVpOY 1629.. section: Library 1630 1631Preserve subclassing in inspect.Signature.from_callable. 1632 1633.. 1634 1635.. bpo: 38153 1636.. date: 2019-09-13-12-18-51 1637.. nonce: nHAbuJ 1638.. section: Library 1639 1640Names of hashing algorithms from OpenSSL are now normalized to follow 1641Python's naming conventions. For example OpenSSL uses sha3-512 instead of 1642sha3_512 or blake2b512 instead of blake2b. 1643 1644.. 1645 1646.. bpo: 38115 1647.. date: 2019-09-13-09-24-58 1648.. nonce: BOO-Y1 1649.. section: Library 1650 1651Fix a bug in dis.findlinestarts() where it would return invalid bytecode 1652offsets. Document that a code object's co_lnotab can contain invalid 1653bytecode offsets. 1654 1655.. 1656 1657.. bpo: 38148 1658.. date: 2019-09-13-08-55-43 1659.. nonce: Lnww6D 1660.. section: Library 1661 1662Add slots to :mod:`asyncio` transport classes, which can reduce memory 1663usage. 1664 1665.. 1666 1667.. bpo: 38142 1668.. date: 2019-09-12-18-41-35 1669.. nonce: 1I0Ch0 1670.. section: Library 1671 1672The _hashlib OpenSSL wrapper extension module is now PEP-384 compliant. 1673 1674.. 1675 1676.. bpo: 9216 1677.. date: 2019-09-12-14-54-45 1678.. nonce: W7QMpC 1679.. section: Library 1680 1681hashlib constructors now support usedforsecurity flag to signal that a 1682hashing algorithm is not used in a security context. 1683 1684.. 1685 1686.. bpo: 36991 1687.. date: 2019-09-12-14-52-38 1688.. nonce: 1OcSm8 1689.. section: Library 1690 1691Fixes a potential incorrect AttributeError exception escaping 1692ZipFile.extract() in some unsupported input error situations. 1693 1694.. 1695 1696.. bpo: 38134 1697.. date: 2019-09-12-13-18-55 1698.. nonce: gXJTbP 1699.. section: Library 1700 1701Remove obsolete copy of PBKDF2_HMAC_fast. All supported OpenSSL versions 1702contain a fast implementation. 1703 1704.. 1705 1706.. bpo: 38132 1707.. date: 2019-09-12-12-47-35 1708.. nonce: KSFx1F 1709.. section: Library 1710 1711The OpenSSL hashlib wrapper uses a simpler implementation. Several Macros 1712and pointless caches are gone. The hash name now comes from OpenSSL's EVP. 1713The algorithm name stays the same, except it is now always lower case. 1714 1715.. 1716 1717.. bpo: 38008 1718.. date: 2019-09-12-10-47-34 1719.. nonce: sH74Iy 1720.. section: Library 1721 1722Fix parent class check in protocols to correctly identify the module that 1723provides a builtin protocol, instead of assuming they all come from the 1724:mod:`collections.abc` module 1725 1726.. 1727 1728.. bpo: 34037 1729.. date: 2019-09-11-21-38-41 1730.. nonce: LIAS_3 1731.. section: Library 1732 1733For :mod:`asyncio`, add a new coroutine 1734:meth:`loop.shutdown_default_executor`. The new coroutine provides an API to 1735schedule an executor shutdown that waits on the threadpool to finish 1736closing. Also, :func:`asyncio.run` has been updated to utilize the new 1737coroutine. Patch by Kyle Stanley. 1738 1739.. 1740 1741.. bpo: 37405 1742.. date: 2019-09-11-20-27-41 1743.. nonce: MG5xiY 1744.. section: Library 1745 1746Fixed regression bug for socket.getsockname() for non-CAN_ISOTP AF_CAN 1747address family sockets by returning a 1-tuple instead of string. 1748 1749.. 1750 1751.. bpo: 38121 1752.. date: 2019-09-11-16-54-57 1753.. nonce: SrSDzB 1754.. section: Library 1755 1756Update parameter names on functions in importlib.metadata matching the 1757changes in the 0.22 release of importlib_metadata. 1758 1759.. 1760 1761.. bpo: 38110 1762.. date: 2019-09-11-14-49-20 1763.. nonce: A19Y-q 1764.. section: Library 1765 1766The os.closewalk() implementation now uses the libc fdwalk() API on 1767platforms where it is available. 1768 1769.. 1770 1771.. bpo: 38093 1772.. date: 2019-09-11-14-45-30 1773.. nonce: yQ6k7y 1774.. section: Library 1775 1776Fixes AsyncMock so it doesn't crash when used with AsyncContextManagers or 1777AsyncIterators. 1778 1779.. 1780 1781.. bpo: 37488 1782.. date: 2019-09-11-11-44-16 1783.. nonce: S8CJUL 1784.. section: Library 1785 1786Add warning to :meth:`datetime.utctimetuple`, :meth:`datetime.utcnow` and 1787:meth:`datetime.utcfromtimestamp` . 1788 1789.. 1790 1791.. bpo: 35640 1792.. date: 2019-09-10-15-52-55 1793.. nonce: X0lp5f 1794.. section: Library 1795 1796Allow passing a :term:`path-like object` as ``directory`` argument to the 1797:class:`http.server.SimpleHTTPRequestHandler` class. Patch by Géry Ogam. 1798 1799.. 1800 1801.. bpo: 38086 1802.. date: 2019-09-10-11-42-59 1803.. nonce: w5TlG- 1804.. section: Library 1805 1806Update importlib.metadata with changes from `importlib_metadata 0.21 1807<https://gitlab.com/python-devs/importlib_metadata/blob/0.21/importlib_metadata/docs/changelog.rst>`_. 1808 1809.. 1810 1811.. bpo: 37251 1812.. date: 2019-09-10-10-59-50 1813.. nonce: 8zn2o3 1814.. section: Library 1815 1816Remove `__code__` check in AsyncMock that incorrectly evaluated function 1817specs as async objects but failed to evaluate classes with `__await__` but 1818no `__code__` attribute defined as async objects. 1819 1820.. 1821 1822.. bpo: 38037 1823.. date: 2019-09-09-18-39-23 1824.. nonce: B0UgFU 1825.. section: Library 1826 1827Fix reference counters in the :mod:`signal` module. 1828 1829.. 1830 1831.. bpo: 38066 1832.. date: 2019-09-09-14-39-47 1833.. nonce: l9mWv- 1834.. section: Library 1835 1836Hide internal asyncio.Stream methods: feed_eof(), feed_data(), 1837set_exception() and set_transport(). 1838 1839.. 1840 1841.. bpo: 38059 1842.. date: 2019-09-08-11-36-50 1843.. nonce: 8SA6co 1844.. section: Library 1845 1846inspect.py now uses sys.exit() instead of exit() 1847 1848.. 1849 1850.. bpo: 38049 1851.. date: 2019-09-07-12-32-50 1852.. nonce: xKP4tf 1853.. section: Library 1854 1855Added command-line interface for the :mod:`ast` module. 1856 1857.. 1858 1859.. bpo: 37953 1860.. date: 2019-09-06-17-40-34 1861.. nonce: db5FQq 1862.. section: Library 1863 1864In :mod:`typing`, improved the ``__hash__`` and ``__eq__`` methods for 1865:class:`ForwardReferences`. 1866 1867.. 1868 1869.. bpo: 38026 1870.. date: 2019-09-04-20-34-14 1871.. nonce: 0LLRX- 1872.. section: Library 1873 1874Fixed :func:`inspect.getattr_static` used ``isinstance`` while it should 1875avoid dynamic lookup. 1876 1877.. 1878 1879.. bpo: 35923 1880.. date: 2019-09-03-01-41-35 1881.. nonce: lYpKbY 1882.. section: Library 1883 1884Update :class:`importlib.machinery.BuiltinImporter` to use 1885``loader._ORIGIN`` instead of a hardcoded value. Patch by Dong-hee Na. 1886 1887.. 1888 1889.. bpo: 38010 1890.. date: 2019-09-02-14-30-39 1891.. nonce: JOnz9Z 1892.. section: Library 1893 1894In ``importlib.metadata`` sync with ``importlib_metadata`` 0.20, clarifying 1895behavior of ``files()`` and fixing issue where only one requirement was 1896returned for ``requires()`` on ``dist-info`` packages. 1897 1898.. 1899 1900.. bpo: 38006 1901.. date: 2019-09-02-13-37-27 1902.. nonce: Y7vA0Q 1903.. section: Library 1904 1905weakref.WeakValueDictionary defines a local remove() function used as 1906callback for weak references. This function was created with a closure. 1907Modify the implementation to avoid the closure. 1908 1909.. 1910 1911.. bpo: 37995 1912.. date: 2019-08-31-13-36-09 1913.. nonce: rS8HzT 1914.. section: Library 1915 1916Added the *indent* option to :func:`ast.dump` which allows it to produce a 1917multiline indented output. 1918 1919.. 1920 1921.. bpo: 34410 1922.. date: 2019-08-31-01-52-59 1923.. nonce: 7KbWZQ 1924.. section: Library 1925 1926Fixed a crash in the :func:`tee` iterator when re-enter it. RuntimeError is 1927now raised in this case. 1928 1929.. 1930 1931.. bpo: 37140 1932.. date: 2019-08-30-11-21-10 1933.. nonce: cFAX-a 1934.. section: Library 1935 1936Fix a ctypes regression of Python 3.8. When a ctypes.Structure is passed by 1937copy to a function, ctypes internals created a temporary object which had 1938the side effect of calling the structure finalizer (__del__) twice. The 1939Python semantics requires a finalizer to be called exactly once. Fix ctypes 1940internals to no longer call the finalizer twice. 1941 1942.. 1943 1944.. bpo: 37587 1945.. date: 2019-08-29-18-48-48 1946.. nonce: N7TGTC 1947.. section: Library 1948 1949``_json.scanstring`` is now up to 3x faster when there are many backslash 1950escaped characters in the JSON string. 1951 1952.. 1953 1954.. bpo: 37834 1955.. date: 2019-08-29-16-41-36 1956.. nonce: FThnsh 1957.. section: Library 1958 1959Prevent shutil.rmtree exception when built on non-Windows system without fd 1960system call support, like older versions of macOS. 1961 1962.. 1963 1964.. bpo: 10978 1965.. date: 2019-08-29-01-19-13 1966.. nonce: J6FQYY 1967.. section: Library 1968 1969Semaphores and BoundedSemaphores can now release more than one waiting 1970thread at a time. 1971 1972.. 1973 1974.. bpo: 37972 1975.. date: 2019-08-28-21-40-12 1976.. nonce: kP-n4L 1977.. section: Library 1978 1979Subscripts to the `unittest.mock.call` objects now receive the same chaining 1980mechanism as any other custom attributes, so that the following usage no 1981longer raises a `TypeError`: 1982 1983call().foo().__getitem__('bar') 1984 1985Patch by blhsing 1986 1987.. 1988 1989.. bpo: 37965 1990.. date: 2019-08-28-14-04-18 1991.. nonce: 7xGE-C 1992.. section: Library 1993 1994Fix C compiler warning caused by distutils.ccompiler.CCompiler.has_function. 1995 1996.. 1997 1998.. bpo: 37964 1999.. date: 2019-08-27-21-19-28 2000.. nonce: SxdnsF 2001.. section: Library 2002 2003Add ``F_GETPATH`` command to :mod:`fcntl`. 2004 2005.. 2006 2007.. bpo: 37960 2008.. date: 2019-08-27-10-52-13 2009.. nonce: CTY7Lw 2010.. section: Library 2011 2012``repr()`` of buffered and text streams now silences only expected 2013exceptions when get the value of "name" and "mode" attributes. 2014 2015.. 2016 2017.. bpo: 37961 2018.. date: 2019-08-27-10-30-44 2019.. nonce: 4nm0zZ 2020.. section: Library 2021 2022Add a ``total_nframe`` field to the traces collected by the tracemalloc 2023module. This field indicates the original number of frames before it was 2024truncated. 2025 2026.. 2027 2028.. bpo: 37951 2029.. date: 2019-08-27-10-03-48 2030.. nonce: MfRQgL 2031.. section: Library 2032 2033Most features of the subprocess module now work again in subinterpreters. 2034Only *preexec_fn* is restricted in subinterpreters. 2035 2036.. 2037 2038.. bpo: 36205 2039.. date: 2019-08-27-03-53-26 2040.. nonce: AfkGRl 2041.. section: Library 2042 2043Fix the rusage implementation of time.process_time() to correctly report the 2044sum of the system and user CPU time. 2045 2046.. 2047 2048.. bpo: 37950 2049.. date: 2019-08-26-10-45-51 2050.. nonce: -K1IKT 2051.. section: Library 2052 2053Fix :func:`ast.dump` when call with incompletely initialized node. 2054 2055.. 2056 2057.. bpo: 34679 2058.. date: 2019-08-25-18-07-48 2059.. nonce: HECzL7 2060.. section: Library 2061 2062Restores instantiation of Windows IOCP event loops from the non-main thread. 2063 2064.. 2065 2066.. bpo: 36917 2067.. date: 2019-08-25-14-56-42 2068.. nonce: GBxdw2 2069.. section: Library 2070 2071Add default implementation of the :meth:`ast.NodeVisitor.visit_Constant` 2072method which emits a deprecation warning and calls corresponding methody 2073``visit_Num()``, ``visit_Str()``, etc. 2074 2075.. 2076 2077.. bpo: 37798 2078.. date: 2019-08-24-16-54-49 2079.. nonce: 7mRQCk 2080.. section: Library 2081 2082Update test_statistics.py to verify that the statistics module works well 2083for both C and Python implementations. Patch by Dong-hee Na 2084 2085.. 2086 2087.. bpo: 26589 2088.. date: 2019-08-23-00-55-19 2089.. nonce: M1xyxG 2090.. section: Library 2091 2092Added a new status code to the http module: 451 2093UNAVAILABLE_FOR_LEGAL_REASONS 2094 2095.. 2096 2097.. bpo: 37915 2098.. date: 2019-08-22-16-13-27 2099.. nonce: xyoZI5 2100.. section: Library 2101 2102Fix a segmentation fault that appeared when comparing instances of 2103``datetime.timezone`` and ``datetime.tzinfo`` objects. Patch by Pablo 2104Galindo. 2105 2106.. 2107 2108.. bpo: 32554 2109.. date: 2019-08-22-01-49-05 2110.. nonce: 4xiXyM 2111.. section: Library 2112 2113Deprecate having random.seed() call hash on arbitrary types. 2114 2115.. 2116 2117.. bpo: 9938 2118.. date: 2019-08-21-16-38-56 2119.. nonce: t3G7N9 2120.. section: Library 2121 2122Add optional keyword argument ``exit_on_error`` for :class:`ArgumentParser`. 2123 2124.. 2125 2126.. bpo: 37851 2127.. date: 2019-08-21-13-43-04 2128.. nonce: mIIfD_ 2129.. section: Library 2130 2131The :mod:`faulthandler` module no longer allocates its alternative stack at 2132Python startup. Now the stack is only allocated at the first faulthandler 2133usage. 2134 2135.. 2136 2137.. bpo: 32793 2138.. date: 2019-08-20-05-17-32 2139.. nonce: cgpXl6 2140.. section: Library 2141 2142Fix a duplicated debug message when :meth:`smtplib.SMTP.connect` is called. 2143 2144.. 2145 2146.. bpo: 37885 2147.. date: 2019-08-19-10-31-41 2148.. nonce: 4Nc9sp 2149.. section: Library 2150 2151venv: Don't generate unset variable warning on deactivate. 2152 2153.. 2154 2155.. bpo: 37868 2156.. date: 2019-08-17-22-33-54 2157.. nonce: hp64fi 2158.. section: Library 2159 2160Fix dataclasses.is_dataclass when given an instance that never raises 2161AttributeError in __getattr__. That is, an object that returns something 2162for __dataclass_fields__ even if it's not a dataclass. 2163 2164.. 2165 2166.. bpo: 37811 2167.. date: 2019-08-14-21-41-07 2168.. nonce: d1xYj7 2169.. section: Library 2170 2171Fix ``socket`` module's ``socket.connect(address)`` function being unable to 2172establish connection in case of interrupted system call. The problem was 2173observed on all OSes which ``poll(2)`` system call can take only 2174non-negative integers and -1 as a timeout value. 2175 2176.. 2177 2178.. bpo: 37863 2179.. date: 2019-08-14-20-46-39 2180.. nonce: CkXqgX 2181.. section: Library 2182 2183Optimizations for Fraction.__hash__ suggested by Tim Peters. 2184 2185.. 2186 2187.. bpo: 21131 2188.. date: 2019-08-14-15-34-23 2189.. nonce: 0MMQRi 2190.. section: Library 2191 2192Fix ``faulthandler.register(chain=True)`` stack. faulthandler now allocates 2193a dedicated stack of ``SIGSTKSZ*2`` bytes, instead of just ``SIGSTKSZ`` 2194bytes. Calling the previous signal handler in faulthandler signal handler 2195uses more than ``SIGSTKSZ`` bytes of stack memory on some platforms. 2196 2197.. 2198 2199.. bpo: 37798 2200.. date: 2019-08-14-13-51-24 2201.. nonce: AmXrik 2202.. section: Library 2203 2204Add C fastpath for statistics.NormalDist.inv_cdf() Patch by Dong-hee Na 2205 2206.. 2207 2208.. bpo: 37804 2209.. date: 2019-08-12-23-07-47 2210.. nonce: Ene6L- 2211.. section: Library 2212 2213Remove the deprecated method `threading.Thread.isAlive()`. Patch by Dong-hee 2214Na. 2215 2216.. 2217 2218.. bpo: 37819 2219.. date: 2019-08-11-10-34-19 2220.. nonce: LVJls- 2221.. section: Library 2222 2223Add Fraction.as_integer_ratio() to match the corresponding methods in bool, 2224int, float, and decimal. 2225 2226.. 2227 2228.. bpo: 14465 2229.. date: 2019-08-10-18-50-04 2230.. nonce: qZGC4g 2231.. section: Library 2232 2233Add an xml.etree.ElementTree.indent() function for pretty-printing XML 2234trees. Contributed by Stefan Behnel. 2235 2236.. 2237 2238.. bpo: 37810 2239.. date: 2019-08-10-12-33-27 2240.. nonce: d4zbvB 2241.. section: Library 2242 2243Fix :mod:`difflib` ``?`` hint in diff output when dealing with tabs. Patch 2244by Anthony Sottile. 2245 2246.. 2247 2248.. bpo: 37772 2249.. date: 2019-08-07-23-48-09 2250.. nonce: hLCvdn 2251.. section: Library 2252 2253In ``zipfile.Path``, when adding implicit dirs, ensure that ancestral 2254directories are added and that duplicates are excluded. 2255 2256.. 2257 2258.. bpo: 18578 2259.. date: 2019-08-07-19-34-07 2260.. nonce: xfvdb_ 2261.. section: Library 2262 2263Renamed and documented `test.bytecode_helper` as 2264`test.support.bytecode_helper`. Patch by Joannah Nanjekye. 2265 2266.. 2267 2268.. bpo: 37785 2269.. date: 2019-08-07-14-49-22 2270.. nonce: y7OlT8 2271.. section: Library 2272 2273Fix xgettext warnings in :mod:`argparse`. 2274 2275.. 2276 2277.. bpo: 34488 2278.. date: 2019-08-06-21-30-58 2279.. nonce: OqxVo8 2280.. section: Library 2281 2282:meth:`writelines` method of :class:`io.BytesIO` is now slightly faster when 2283many small lines are passed. Patch by Sergey Fedoseev. 2284 2285.. 2286 2287.. bpo: 37449 2288.. date: 2019-08-04-17-22-33 2289.. nonce: ycbL2z 2290.. section: Library 2291 2292`ensurepip` now uses `importlib.resources.read_binary()` to read data 2293instead of `pkgutil.get_data()`. Patch by Joannah Nanjekye. 2294 2295.. 2296 2297.. bpo: 28292 2298.. date: 2019-08-04-11-47-58 2299.. nonce: vkihH5 2300.. section: Library 2301 2302Mark calendar.py helper functions as being private. The follows PEP 8 2303guidance to maintain the style conventions in the module and it addresses a 2304known case of user confusion. 2305 2306.. 2307 2308.. bpo: 18049 2309.. date: 2019-08-02-16-44-42 2310.. nonce: OA4qBL 2311.. section: Library 2312 2313Add definition of THREAD_STACK_SIZE for AIX in Python/thread_pthread.h The 2314default thread stacksize caused crashes with the default recursion limit 2315Patch by M Felt 2316 2317.. 2318 2319.. bpo: 37742 2320.. date: 2019-08-02-14-01-25 2321.. nonce: f4Xn9S 2322.. section: Library 2323 2324The logging.getLogger() API now returns the root logger when passed the name 2325'root', whereas previously it returned a non-root logger named 'root'. This 2326could affect cases where user code explicitly wants a non-root logger named 2327'root', or instantiates a logger using logging.getLogger(__name__) in some 2328top-level module called 'root.py'. 2329 2330.. 2331 2332.. bpo: 37738 2333.. date: 2019-08-01-17-11-16 2334.. nonce: A3WWcT 2335.. section: Library 2336 2337Fix the implementation of curses ``addch(str, color_pair)``: pass the color 2338pair to ``setcchar()``, instead of always passing 0 as the color pair. 2339 2340.. 2341 2342.. bpo: 37723 2343.. date: 2019-07-31-16-49-01 2344.. nonce: zq6tw8 2345.. section: Library 2346 2347Fix performance regression on regular expression parsing with huge character 2348sets. Patch by Yann Vaginay. 2349 2350.. 2351 2352.. bpo: 35943 2353.. date: 2019-07-31-15-52-51 2354.. nonce: -KswoB 2355.. section: Library 2356 2357The function :c:func:`PyImport_GetModule` now ensures any module it returns 2358is fully initialized. Patch by Joannah Nanjekye. 2359 2360.. 2361 2362.. bpo: 32178 2363.. date: 2019-07-30-22-41-05 2364.. nonce: X-IFLe 2365.. section: Library 2366 2367Fix IndexError in :mod:`email` package when trying to parse invalid address 2368fields starting with ``:``. 2369 2370.. 2371 2372.. bpo: 37268 2373.. date: 2019-07-30-01-27-29 2374.. nonce: QDmA44 2375.. section: Library 2376 2377The :mod:`parser` module is deprecated and will be removed in future 2378versions of Python. 2379 2380.. 2381 2382.. bpo: 11953 2383.. date: 2019-07-29-21-39-45 2384.. nonce: 4Hpwf9 2385.. section: Library 2386 2387Completing WSA* error codes in :mod:`socket`. 2388 2389.. 2390 2391.. bpo: 37685 2392.. date: 2019-07-28-22-25-25 2393.. nonce: _3bN9f 2394.. section: Library 2395 2396Fixed comparisons of :class:`datetime.timedelta` and 2397:class:`datetime.timezone`. 2398 2399.. 2400 2401.. bpo: 37697 2402.. date: 2019-07-28-17-44-21 2403.. nonce: 7UV5d0 2404.. section: Library 2405 2406Synchronize ``importlib.metadata`` with `importlib_metadata 0.19 2407<https://gitlab.com/python-devs/importlib_metadata/-/milestones/20>`_, 2408improving handling of EGG-INFO files and fixing a crash when entry point 2409names contained colons. 2410 2411.. 2412 2413.. bpo: 37695 2414.. date: 2019-07-27-20-21-03 2415.. nonce: QANdvg 2416.. section: Library 2417 2418Correct :func:`curses.unget_wch` error message. Patch by Anthony Sottile. 2419 2420.. 2421 2422.. bpo: 37689 2423.. date: 2019-07-27-18-00-43 2424.. nonce: glEmZi 2425.. section: Library 2426 2427Add :meth:`is_relative_to` in :class:`PurePath` to determine whether or not 2428one path is relative to another. 2429 2430.. 2431 2432.. bpo: 29553 2433.. date: 2019-07-27-10-14-45 2434.. nonce: TVeIDe 2435.. section: Library 2436 2437Fixed :meth:`argparse.ArgumentParser.format_usage` for mutually exclusive 2438groups. Patch by Andrew Nester. 2439 2440.. 2441 2442.. bpo: 37691 2443.. date: 2019-07-26-22-30-01 2444.. nonce: 1Li3rx 2445.. section: Library 2446 2447Let math.dist() accept coordinates as sequences (or iterables) rather than 2448just tuples. 2449 2450.. 2451 2452.. bpo: 37685 2453.. date: 2019-07-26-00-12-29 2454.. nonce: TqckMZ 2455.. section: Library 2456 2457Fixed ``__eq__``, ``__lt__`` etc implementations in some classes. They now 2458return :data:`NotImplemented` for unsupported type of the other operand. 2459This allows the other operand to play role (for example the equality 2460comparison with :data:`~unittest.mock.ANY` will return ``True``). 2461 2462.. 2463 2464.. bpo: 37354 2465.. date: 2019-07-25-10-28-40 2466.. nonce: RT3_3H 2467.. section: Library 2468 2469Make Activate.ps1 Powershell script static to allow for signing it. 2470 2471.. 2472 2473.. bpo: 37664 2474.. date: 2019-07-24-18-27-44 2475.. nonce: o-GYZC 2476.. section: Library 2477 2478Update wheels bundled with ensurepip (pip 19.2.3 and setuptools 41.2.0) 2479 2480.. 2481 2482.. bpo: 37663 2483.. date: 2019-07-24-14-38-53 2484.. nonce: h4-9-1 2485.. section: Library 2486 2487Bring consistency to venv shell activation scripts by always using 2488__VENV_PROMPT__. 2489 2490.. 2491 2492.. bpo: 37642 2493.. date: 2019-07-21-20-59-31 2494.. nonce: L61Bvy 2495.. section: Library 2496 2497Allowed the pure Python implementation of :class:`datetime.timezone` to 2498represent sub-minute offsets close to minimum and maximum boundaries, 2499specifically in the ranges (23:59, 24:00) and (-23:59, 24:00). Patch by 2500Ngalim Siregar 2501 2502.. 2503 2504.. bpo: 36161 2505.. date: 2019-07-20-01-17-43 2506.. nonce: Fzf-f9 2507.. section: Library 2508 2509In :mod:`posix`, use ``ttyname_r`` instead of ``ttyname`` for thread safety. 2510 2511.. 2512 2513.. bpo: 36324 2514.. date: 2019-07-19-22-44-41 2515.. nonce: 1VjywS 2516.. section: Library 2517 2518Make internal attributes for statistics.NormalDist() private. 2519 2520.. 2521 2522.. bpo: 37555 2523.. date: 2019-07-19-20-13-48 2524.. nonce: S5am28 2525.. section: Library 2526 2527Fix `NonCallableMock._call_matcher` returning tuple instead of `_Call` 2528object when `self._spec_signature` exists. Patch by Elizabeth Uselton 2529 2530.. 2531 2532.. bpo: 29446 2533.. date: 2019-07-19-16-06-48 2534.. nonce: iXGuoi 2535.. section: Library 2536 2537Make `from tkinter import *` import only the expected objects. 2538 2539.. 2540 2541.. bpo: 16970 2542.. date: 2019-07-19-01-46-56 2543.. nonce: GEASf5 2544.. section: Library 2545 2546Adding a value error when an invalid value in passed to nargs Patch by 2547Robert Leenders 2548 2549.. 2550 2551.. bpo: 34443 2552.. date: 2019-07-17-11-10-08 2553.. nonce: OFnGqz 2554.. section: Library 2555 2556Exceptions from :mod:`enum` now use the ``__qualname`` of the enum class in 2557the exception message instead of the ``__name__``. 2558 2559.. 2560 2561.. bpo: 37491 2562.. date: 2019-07-17-06-54-43 2563.. nonce: op0aMs 2564.. section: Library 2565 2566Fix ``IndexError`` when parsing email headers with unexpectedly ending 2567bare-quoted string value. Patch by Abhilash Raj. 2568 2569.. 2570 2571.. bpo: 37587 2572.. date: 2019-07-13-16-02-48 2573.. nonce: fd-1aF 2574.. section: Library 2575 2576Make json.loads faster for long strings. (Patch by Marco Paolini) 2577 2578.. 2579 2580.. bpo: 18378 2581.. date: 2019-07-13-13-40-12 2582.. nonce: NHcojp 2583.. section: Library 2584 2585Recognize "UTF-8" as a valid value for LC_CTYPE in locale._parse_localename. 2586 2587.. 2588 2589.. bpo: 37579 2590.. date: 2019-07-13-10-59-43 2591.. nonce: B1Tq9i 2592.. section: Library 2593 2594Return :exc:`NotImplemented` in Python implementation of ``__eq__`` for 2595:class:`~datetime.timedelta` and :class:`~datetime.time` when the other 2596object being compared is not of the same type to match C implementation. 2597Patch by Karthikeyan Singaravelan. 2598 2599.. 2600 2601.. bpo: 21478 2602.. date: 2019-07-10-23-07-11 2603.. nonce: cCw9rF 2604.. section: Library 2605 2606Record calls to parent when autospecced object is attached to a mock using 2607:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan. 2608 2609.. 2610 2611.. bpo: 37531 2612.. date: 2019-07-09-19-38-26 2613.. nonce: GX7s8S 2614.. section: Library 2615 2616"python3 -m test -jN --timeout=TIMEOUT" now kills a worker process if it 2617runs longer than *TIMEOUT* seconds. 2618 2619.. 2620 2621.. bpo: 37482 2622.. date: 2019-07-09-11-20-21 2623.. nonce: auzvev 2624.. section: Library 2625 2626Fix serialization of display name in originator or destination address 2627fields with both encoded words and special chars. 2628 2629.. 2630 2631.. bpo: 36993 2632.. date: 2019-07-09-05-44-39 2633.. nonce: 4javqu 2634.. section: Library 2635 2636Improve error reporting for corrupt zip files with bad zip64 extra data. 2637Patch by Daniel Hillier. 2638 2639.. 2640 2641.. bpo: 37502 2642.. date: 2019-07-08-03-15-04 2643.. nonce: qZGC4g 2644.. section: Library 2645 2646pickle.loads() no longer raises TypeError when the buffers argument is set 2647to None 2648 2649.. 2650 2651.. bpo: 37520 2652.. date: 2019-07-07-21-09-08 2653.. nonce: Gg0KD6 2654.. section: Library 2655 2656Correct behavior for zipfile.Path.parent when the path object identifies a 2657subdirectory. 2658 2659.. 2660 2661.. bpo: 18374 2662.. date: 2019-07-05-21-46-45 2663.. nonce: qgE0H3 2664.. section: Library 2665 2666Fix the ``.col_offset`` attribute of nested :class:`ast.BinOp` instances 2667which had a too large value in some situations. 2668 2669.. 2670 2671.. bpo: 37424 2672.. date: 2019-07-04-13-00-20 2673.. nonce: 0i1MR- 2674.. section: Library 2675 2676Fixes a possible hang when using a timeout on `subprocess.run()` while 2677capturing output. If the child process spawned its own children or 2678otherwise connected its stdout or stderr handles with another process, we 2679could hang after the timeout was reached and our child was killed when 2680attempting to read final output from the pipes. 2681 2682.. 2683 2684.. bpo: 37421 2685.. date: 2019-07-03-12-47-52 2686.. nonce: gR5hC8 2687.. section: Library 2688 2689Fix :func:`multiprocessing.util.get_temp_dir` finalizer: clear also the 2690'tempdir' configuration of the current process, so next call to 2691``get_temp_dir()`` will create a new temporary directory, rather than 2692reusing the removed temporary directory. 2693 2694.. 2695 2696.. bpo: 37481 2697.. date: 2019-07-02-13-08-30 2698.. nonce: hd5k09 2699.. section: Library 2700 2701The distutils ``bdist_wininst`` command is deprecated in Python 3.8, use 2702``bdist_wheel`` (wheel packages) instead. 2703 2704.. 2705 2706.. bpo: 37479 2707.. date: 2019-07-02-12-43-57 2708.. nonce: O53a5S 2709.. section: Library 2710 2711When `Enum.__str__` is overridden in a derived class, the override will be 2712used by `Enum.__format__` regardless of whether mixin classes are present. 2713 2714.. 2715 2716.. bpo: 37440 2717.. date: 2019-06-28-16-40-17 2718.. nonce: t3wX-N 2719.. section: Library 2720 2721http.client now enables TLS 1.3 post-handshake authentication for default 2722context or if a cert_file is passed to HTTPSConnection. 2723 2724.. 2725 2726.. bpo: 37437 2727.. date: 2019-06-27-20-33-50 2728.. nonce: du39_A 2729.. section: Library 2730 2731Update vendorized expat version to 2.2.7. 2732 2733.. 2734 2735.. bpo: 37428 2736.. date: 2019-06-27-13-27-02 2737.. nonce: _wcwUd 2738.. section: Library 2739 2740SSLContext.post_handshake_auth = True no longer sets 2741SSL_VERIFY_POST_HANDSHAKE verify flag for client connections. Although the 2742option is documented as ignored for clients, OpenSSL implicitly enables cert 2743chain validation when the flag is set. 2744 2745.. 2746 2747.. bpo: 37420 2748.. date: 2019-06-26-22-25-05 2749.. nonce: CxFJ09 2750.. section: Library 2751 2752:func:`os.sched_setaffinity` now correctly handles errors that arise during 2753iteration over its ``mask`` argument. Patch by Brandt Bucher. 2754 2755.. 2756 2757.. bpo: 37412 2758.. date: 2019-06-26-16-28-59 2759.. nonce: lx0VjC 2760.. section: Library 2761 2762The :func:`os.getcwdb` function now uses the UTF-8 encoding on Windows, 2763rather than the ANSI code page: see :pep:`529` for the rationale. The 2764function is no longer deprecated on Windows. 2765 2766.. 2767 2768.. bpo: 37406 2769.. date: 2019-06-26-03-00-06 2770.. nonce: uovkpq 2771.. section: Library 2772 2773The sqlite3 module now raises TypeError, rather than ValueError, if 2774operation argument type is not str: execute(), executemany() and calling a 2775connection. 2776 2777.. 2778 2779.. bpo: 29412 2780.. date: 2019-06-25-19-27-25 2781.. nonce: n4Zqdh 2782.. section: Library 2783 2784Fix IndexError in parsing a header value ending unexpectedly. Patch by 2785Abhilash Raj. 2786 2787.. 2788 2789.. bpo: 36546 2790.. date: 2019-06-25-05-07-48 2791.. nonce: RUcxaK 2792.. section: Library 2793 2794The *dist* argument for statistics.quantiles() is now positional only. The 2795current name doesn't reflect that the argument can be either a dataset or a 2796distribution. Marking the parameter as positional avoids confusion and 2797makes it possible to change the name later. 2798 2799.. 2800 2801.. bpo: 37394 2802.. date: 2019-06-25-02-10-00 2803.. nonce: srZ1zx 2804.. section: Library 2805 2806Fix a bug that was causing the :mod:`queue` module to fail if the 2807accelerator module was not available. Patch by Pablo Galindo. 2808 2809.. 2810 2811.. bpo: 37376 2812.. date: 2019-06-24-11-26-34 2813.. nonce: SwSUQ4 2814.. section: Library 2815 2816:mod:`pprint` now has support for :class:`types.SimpleNamespace`. Patch by 2817Carl Bordum Hansen. 2818 2819.. 2820 2821.. bpo: 26967 2822.. date: 2019-06-23-12-46-10 2823.. nonce: xEuem1 2824.. section: Library 2825 2826An :class:`~argparse.ArgumentParser` with ``allow_abbrev=False`` no longer 2827disables grouping of short flags, such as ``-vv``, but only disables 2828abbreviation of long flags as documented. Patch by Zac Hatfield-Dodds. 2829 2830.. 2831 2832.. bpo: 37212 2833.. date: 2019-06-22-22-00-35 2834.. nonce: Zhv-tq 2835.. section: Library 2836 2837:func:`unittest.mock.call` now preserves the order of keyword arguments in 2838repr output. Patch by Karthikeyan Singaravelan. 2839 2840.. 2841 2842.. bpo: 37372 2843.. date: 2019-06-22-12-30-00 2844.. nonce: kIKqZ6 2845.. section: Library 2846 2847Fix error unpickling datetime.time objects from Python 2 with seconds>=24. 2848Patch by Justin Blanchard. 2849 2850.. 2851 2852.. bpo: 37345 2853.. date: 2019-06-22-08-51-44 2854.. nonce: o8XABX 2855.. section: Library 2856 2857Add formal support for UDPLITE sockets. Support was present before, but it 2858is now easier to detect support with ``hasattr(socket, 'IPPROTO_UDPLITE')`` 2859and there are constants defined for each of the values needed: 2860:py:obj:`socket.IPPROTO_UDPLITE`, :py:obj:`UDPLITE_SEND_CSCOV`, and 2861:py:obj:`UDPLITE_RECV_CSCOV`. Patch by Gabe Appleton. 2862 2863.. 2864 2865.. bpo: 37358 2866.. date: 2019-06-21-14-54-02 2867.. nonce: RsASpn 2868.. section: Library 2869 2870Optimized ``functools.partial`` by using vectorcall. 2871 2872.. 2873 2874.. bpo: 37347 2875.. date: 2019-06-20-14-23-48 2876.. nonce: Gf9yYI 2877.. section: Library 2878 2879:meth:`sqlite3.Connection.create_aggregate`, 2880:meth:`sqlite3.Connection.create_function`, 2881:meth:`sqlite3.Connection.set_authorizer`, 2882:meth:`sqlite3.Connection.set_progress_handler` 2883:meth:`sqlite3.Connection.set_trace_callback` methods lead to segfaults if 2884some of these methods are called twice with an equal object but not the 2885same. Now callbacks are stored more carefully. Patch by Aleksandr Balezin. 2886 2887.. 2888 2889.. bpo: 37163 2890.. date: 2019-06-19-10-35-53 2891.. nonce: 9pPg2F 2892.. section: Library 2893 2894The *obj* argument of :func:`dataclasses.replace` is positional-only now. 2895 2896.. 2897 2898.. bpo: 37085 2899.. date: 2019-06-18-16-29-31 2900.. nonce: GeYaD6 2901.. section: Library 2902 2903Add the optional Linux SocketCAN Broadcast Manager constants, used as flags 2904to configure the BCM behaviour, in the socket module. Patch by Karl Ding. 2905 2906.. 2907 2908.. bpo: 37328 2909.. date: 2019-06-18-15-31-33 2910.. nonce: 2PW1-l 2911.. section: Library 2912 2913``HTMLParser.unescape`` is removed. It was undocumented and deprecated 2914since Python 3.4. 2915 2916.. 2917 2918.. bpo: 37305 2919.. date: 2019-06-18-13-59-55 2920.. nonce: fGzWlP 2921.. section: Library 2922 2923Add .webmanifest -> application/manifest+json to list of recognized file 2924types and content type headers 2925 2926.. 2927 2928.. bpo: 37320 2929.. date: 2019-06-17-22-10-37 2930.. nonce: ffieYa 2931.. section: Library 2932 2933``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to 2934``sunau.open()``, and ``wave.openfp()`` alias to ``wave.open()`` have been 2935removed. They were deprecated since Python 3.7. 2936 2937.. 2938 2939.. bpo: 37315 2940.. date: 2019-06-17-11-59-52 2941.. nonce: o1xFC0 2942.. section: Library 2943 2944Deprecated accepting floats with integral value (like ``5.0``) in 2945:func:`math.factorial`. 2946 2947.. 2948 2949.. bpo: 37312 2950.. date: 2019-06-17-10-03-52 2951.. nonce: qKvBfF 2952.. section: Library 2953 2954``_dummy_thread`` and ``dummy_threading`` modules have been removed. These 2955modules were deprecated since Python 3.7 which requires threading support. 2956 2957.. 2958 2959.. bpo: 33972 2960.. date: 2019-06-15-14-39-50 2961.. nonce: XxnNPw 2962.. section: Library 2963 2964Email with single part but content-type set to ``multipart/*`` doesn't raise 2965AttributeError anymore. 2966 2967.. 2968 2969.. bpo: 37280 2970.. date: 2019-06-14-13-30-47 2971.. nonce: Fxur0F 2972.. section: Library 2973 2974Use threadpool for reading from file for sendfile fallback mode. 2975 2976.. 2977 2978.. bpo: 37279 2979.. date: 2019-06-14-13-25-56 2980.. nonce: OHlW6l 2981.. section: Library 2982 2983Fix asyncio sendfile support when sendfile sends extra data in fallback 2984mode. 2985 2986.. 2987 2988.. bpo: 19865 2989.. date: 2019-06-14-08-30-16 2990.. nonce: FRGH4I 2991.. section: Library 2992 2993:func:`ctypes.create_unicode_buffer()` now also supports non-BMP characters 2994on platforms with 16-bit :c:type:`wchar_t` (for example, Windows and AIX). 2995 2996.. 2997 2998.. bpo: 37266 2999.. date: 2019-06-13-11-59-52 3000.. nonce: goLjef 3001.. section: Library 3002 3003In a subinterpreter, spawning a daemon thread now raises an exception. 3004Daemon threads were never supported in subinterpreters. Previously, the 3005subinterpreter finalization crashed with a Python fatal error if a daemon 3006thread was still running. 3007 3008.. 3009 3010.. bpo: 37210 3011.. date: 2019-06-12-16-10-50 3012.. nonce: r4yMg6 3013.. section: Library 3014 3015Allow pure Python implementation of :mod:`pickle` to work even when the C 3016:mod:`_pickle` module is unavailable. 3017 3018.. 3019 3020.. bpo: 21872 3021.. date: 2019-06-12-08-56-22 3022.. nonce: V9QGGN 3023.. section: Library 3024 3025Fix :mod:`lzma`: module decompresses data incompletely. When decompressing a 3026FORMAT_ALONE format file, and it doesn't have the end marker, sometimes the 3027last one to dozens bytes can't be output. Patch by Ma Lin. 3028 3029.. 3030 3031.. bpo: 35922 3032.. date: 2019-06-11-19-34-29 3033.. nonce: rxpzWr 3034.. section: Library 3035 3036Fix :meth:`RobotFileParser.crawl_delay` and 3037:meth:`RobotFileParser.request_rate` to return ``None`` rather than raise 3038:exc:`AttributeError` when no relevant rule is defined in the robots.txt 3039file. Patch by Rémi Lapeyre. 3040 3041.. 3042 3043.. bpo: 35766 3044.. date: 2019-06-11-16-41-40 3045.. nonce: v1Kj-T 3046.. section: Library 3047 3048Change the format of feature_version to be a (major, minor) tuple. 3049 3050.. 3051 3052.. bpo: 36607 3053.. date: 2019-06-11-13-52-04 3054.. nonce: 5_mJkQ 3055.. section: Library 3056 3057Eliminate :exc:`RuntimeError` raised by :func:`asyncio.all_tasks()` if 3058internal tasks weak set is changed by another thread during iteration. 3059 3060.. 3061 3062.. bpo: 18748 3063.. date: 2019-06-11-01-54-19 3064.. nonce: ADqCkq 3065.. section: Library 3066 3067:class:`_pyio.IOBase` destructor now does nothing if getting the ``closed`` 3068attribute fails to better mimic :class:`_io.IOBase` finalizer. 3069 3070.. 3071 3072.. bpo: 36402 3073.. date: 2019-06-11-00-35-02 3074.. nonce: b0IJVp 3075.. section: Library 3076 3077Fix a race condition at Python shutdown when waiting for threads. Wait until 3078the Python thread state of all non-daemon threads get deleted (join all 3079non-daemon threads), rather than just wait until non-daemon Python threads 3080complete. 3081 3082.. 3083 3084.. bpo: 37206 3085.. date: 2019-06-09-22-25-03 3086.. nonce: 2WBg4q 3087.. section: Library 3088 3089Default values which cannot be represented as Python objects no longer 3090improperly represented as ``None`` in function signatures. 3091 3092.. 3093 3094.. bpo: 37111 3095.. date: 2019-06-09-17-22-33 3096.. nonce: 2I0z2k 3097.. section: Library 3098 3099Added ``encoding`` and ``errors`` keyword parameters to 3100``logging.basicConfig``. 3101 3102.. 3103 3104.. bpo: 12144 3105.. date: 2019-06-08-23-26-58 3106.. nonce: Z7mz-q 3107.. section: Library 3108 3109Ensure cookies with ``expires`` attribute are handled in 3110:meth:`CookieJar.make_cookies`. 3111 3112.. 3113 3114.. bpo: 34886 3115.. date: 2019-06-08-16-03-19 3116.. nonce: Ov-pc9 3117.. section: Library 3118 3119Fix an unintended ValueError from :func:`subprocess.run` when checking for 3120conflicting `input` and `stdin` or `capture_output` and `stdout` or `stderr` 3121args when they were explicitly provided but with `None` values within a 3122passed in `**kwargs` dict rather than as passed directly by name. Patch 3123contributed by Rémi Lapeyre. 3124 3125.. 3126 3127.. bpo: 37173 3128.. date: 2019-06-08-11-33-48 3129.. nonce: 0e_8gS 3130.. section: Library 3131 3132The exception message for ``inspect.getfile()`` now correctly reports the 3133passed class rather than the builtins module. 3134 3135.. 3136 3137.. bpo: 37178 3138.. date: 2019-06-07-17-16-09 3139.. nonce: Day_oB 3140.. section: Library 3141 3142Give math.perm() a one argument form that means the same as 3143math.factorial(). 3144 3145.. 3146 3147.. bpo: 37178 3148.. date: 2019-06-07-17-11-34 3149.. nonce: b1StSv 3150.. section: Library 3151 3152For math.perm(n, k), let k default to n, giving the same result as 3153factorial. 3154 3155.. 3156 3157.. bpo: 37165 3158.. date: 2019-06-05-11-48-19 3159.. nonce: V_rwfE 3160.. section: Library 3161 3162Converted _collections._count_elements to use the Argument Clinic. 3163 3164.. 3165 3166.. bpo: 34767 3167.. date: 2019-06-04-23-44-52 3168.. nonce: BpDShN 3169.. section: Library 3170 3171Do not always create a :class:`collections.deque` in :class:`asyncio.Lock`. 3172 3173.. 3174 3175.. bpo: 37158 3176.. date: 2019-06-04-22-25-38 3177.. nonce: JKm15S 3178.. section: Library 3179 3180Speed-up statistics.fmean() by switching from a function to a generator. 3181 3182.. 3183 3184.. bpo: 34282 3185.. date: 2019-06-04-15-39-14 3186.. nonce: aAK54n 3187.. section: Library 3188 3189Remove ``Enum._convert`` method, deprecated in 3.8. 3190 3191.. 3192 3193.. bpo: 37150 3194.. date: 2019-06-04-14-44-41 3195.. nonce: TTzHxj 3196.. section: Library 3197 3198`argparse._ActionsContainer.add_argument` now throws error, if someone 3199accidentally pass FileType class object instead of instance of FileType as 3200`type` argument 3201 3202.. 3203 3204.. bpo: 28724 3205.. date: 2019-05-30-15-51-42 3206.. nonce: 34TrS8 3207.. section: Library 3208 3209The socket module now has the :func:`socket.send_fds` and 3210:func:`socket.recv.fds` methods. Contributed by Joannah Nanjekye, Shinya 3211Okano and Victor Stinner. 3212 3213.. 3214 3215.. bpo: 35621 3216.. date: 2019-05-28-19-03-46 3217.. nonce: Abc1lf 3218.. section: Library 3219 3220Support running asyncio subprocesses when execution event loop in a thread 3221on UNIX. 3222 3223.. 3224 3225.. bpo: 36520 3226.. date: 2019-05-28-02-37-00 3227.. nonce: W4tday 3228.. section: Library 3229 3230Lengthy email headers with UTF-8 characters are now properly encoded when 3231they are folded. Patch by Jeffrey Kintscher. 3232 3233.. 3234 3235.. bpo: 30835 3236.. date: 2019-05-27-15-29-46 3237.. nonce: 3FoaWH 3238.. section: Library 3239 3240Fixed a bug in email parsing where a message with invalid bytes in 3241content-transfer-encoding of a multipart message can cause an 3242AttributeError. Patch by Andrew Donnellan. 3243 3244.. 3245 3246.. bpo: 31163 3247.. date: 2019-05-26-16-34-53 3248.. nonce: 21A802 3249.. section: Library 3250 3251pathlib.Path instance's rename and replace methods now return the new Path 3252instance. 3253 3254.. 3255 3256.. bpo: 25068 3257.. date: 2019-05-22-04-52-35 3258.. nonce: vR_rC- 3259.. section: Library 3260 3261:class:`urllib.request.ProxyHandler` now lowercases the keys of the passed 3262dictionary. 3263 3264.. 3265 3266.. bpo: 26185 3267.. date: 2019-05-20-14-17-29 3268.. nonce: pQW4mI 3269.. section: Library 3270 3271Fix :func:`repr` on empty :class:`ZipInfo` object. Patch by Mickaël 3272Schoentgen. 3273 3274.. 3275 3276.. bpo: 21315 3277.. date: 2019-05-19-10-48-46 3278.. nonce: PgXVqF 3279.. section: Library 3280 3281Email headers containing RFC2047 encoded words are parsed despite the 3282missing whitespace, and a defect registered. Also missing trailing 3283whitespace after encoded words is now registered as a defect. 3284 3285.. 3286 3287.. bpo: 31904 3288.. date: 2019-05-17-16-50-02 3289.. nonce: 4a5ggm 3290.. section: Library 3291 3292Port test_datetime to VxWorks: skip zoneinfo tests on VxWorks 3293 3294.. 3295 3296.. bpo: 35805 3297.. date: 2019-05-17-15-11-08 3298.. nonce: E4YwYz 3299.. section: Library 3300 3301Add parser for Message-ID header and add it to default HeaderRegistry. This 3302should prevent folding of Message-ID using RFC 2048 encoded words. 3303 3304.. 3305 3306.. bpo: 36871 3307.. date: 2019-05-12-12-58-37 3308.. nonce: 6xiEHZ 3309.. section: Library 3310 3311Ensure method signature is used instead of constructor signature of a class 3312while asserting mock object against method calls. Patch by Karthikeyan 3313Singaravelan. 3314 3315.. 3316 3317.. bpo: 35070 3318.. date: 2019-05-09-18-50-55 3319.. nonce: 4vaqNL 3320.. section: Library 3321 3322posix.getgrouplist() now works correctly when the user belongs to 3323NGROUPS_MAX supplemental groups. Patch by Jeffrey Kintscher. 3324 3325.. 3326 3327.. bpo: 31783 3328.. date: 2019-05-07-19-25-55 3329.. nonce: lgLo69 3330.. section: Library 3331 3332Fix race condition in ThreadPoolExecutor when worker threads are created 3333during interpreter shutdown. 3334 3335.. 3336 3337.. bpo: 36582 3338.. date: 2019-05-07-17-42-36 3339.. nonce: L_dxR6 3340.. section: Library 3341 3342Fix ``UserString.encode()`` to correctly return ``bytes`` rather than a 3343``UserString`` instance. 3344 3345.. 3346 3347.. bpo: 32424 3348.. date: 2019-04-28-10-34-19 3349.. nonce: eqNPhM 3350.. section: Library 3351 3352Deprecate xml.etree.ElementTree.Element.copy() in favor of copy.copy(). 3353 3354Patch by Gordon P. Hemsley 3355 3356.. 3357 3358.. bpo: 36564 3359.. date: 2019-04-08-13-00-13 3360.. nonce: _n67m_ 3361.. section: Library 3362 3363Fix infinite loop in email header folding logic that would be triggered when 3364an email policy's max_line_length is not long enough to include the required 3365markup and any values in the message. Patch by Paul Ganssle 3366 3367.. 3368 3369.. bpo: 36543 3370.. date: 2019-04-06-20-08-12 3371.. nonce: RPjmUz 3372.. section: Library 3373 3374Removed methods Element.getchildren(), Element.getiterator() and 3375ElementTree.getiterator() and the xml.etree.cElementTree module. 3376 3377.. 3378 3379.. bpo: 36409 3380.. date: 2019-03-23-16-42-46 3381.. nonce: ZYVKao 3382.. section: Library 3383 3384Remove the old plistlib API deprecated in Python 3.4 3385 3386.. 3387 3388.. bpo: 36302 3389.. date: 2019-03-21-19-23-46 3390.. nonce: Yc591g 3391.. section: Library 3392 3393distutils sorts source file lists so that Extension .so files build more 3394reproducibly by default 3395 3396.. 3397 3398.. bpo: 36250 3399.. date: 2019-03-09-16-04-12 3400.. nonce: tSK4N1 3401.. section: Library 3402 3403Ignore ``ValueError`` from ``signal`` with ``interaction`` in non-main 3404thread. 3405 3406.. 3407 3408.. bpo: 36046 3409.. date: 2019-02-19-17-32-45 3410.. nonce: fX9OPj 3411.. section: Library 3412 3413Added ``user``, ``group`` and ``extra_groups`` parameters to the 3414subprocess.Popen constructor. Patch by Patrick McLean. 3415 3416.. 3417 3418.. bpo: 32627 3419.. date: 2019-02-03-19-13-08 3420.. nonce: b68f64 3421.. section: Library 3422 3423Fix compile error when ``_uuid`` headers conflicting included. 3424 3425.. 3426 3427.. bpo: 35800 3428.. date: 2019-01-25-17-12-17 3429.. nonce: MCGJdQ 3430.. section: Library 3431 3432Deprecate ``smtpd.MailmanProxy`` ready for future removal. 3433 3434.. 3435 3436.. bpo: 35168 3437.. date: 2019-01-22-09-23-20 3438.. nonce: UGv2yW 3439.. section: Library 3440 3441:attr:`shlex.shlex.punctuation_chars` is now a read-only property. 3442 3443.. 3444 3445.. bpo: 8538 3446.. date: 2019-01-09-16-18-52 3447.. nonce: PfVZia 3448.. section: Library 3449 3450Add support for boolean actions like ``--foo`` and ``--no-foo`` to argparse. 3451Patch contributed by Rémi Lapeyre. 3452 3453.. 3454 3455.. bpo: 20504 3456.. date: 2018-11-21-18-05-50 3457.. nonce: kG0ub5 3458.. section: Library 3459 3460Fixes a bug in :mod:`cgi` module when a multipart/form-data request has no 3461`Content-Length` header. 3462 3463.. 3464 3465.. bpo: 25988 3466.. date: 2018-11-19-10-23-58 3467.. nonce: 6o7gGK 3468.. section: Library 3469 3470The abstract base classes in :mod:`collections.abc` no longer are exposed in 3471the regular :mod:`collections` module. 3472 3473.. 3474 3475.. bpo: 11122 3476.. date: 2018-11-12-19-08-50 3477.. nonce: Gj7BQn 3478.. section: Library 3479 3480Distutils won't check for rpmbuild in specified paths only. 3481 3482.. 3483 3484.. bpo: 34775 3485.. date: 2018-09-23-03-18-52 3486.. nonce: vHeuHk 3487.. section: Library 3488 3489Division handling of PurePath now returns NotImplemented instead of raising 3490a TypeError when passed something other than an instance of str or PurePath. 3491Patch by Roger Aiudi. 3492 3493.. 3494 3495.. bpo: 34749 3496.. date: 2018-09-21-13-23-29 3497.. nonce: B0k819 3498.. section: Library 3499 3500:func:`binascii.a2b_base64` is now up to 2 times faster. Patch by Sergey 3501Fedoseev. 3502 3503.. 3504 3505.. bpo: 34519 3506.. date: 2018-08-27-15-44-50 3507.. nonce: cPlH1h 3508.. section: Library 3509 3510Add additional aliases for HP Roman 8. Patch by Michael Osipov. 3511 3512.. 3513 3514.. bpo: 28009 3515.. date: 2018-08-04-12-26-11 3516.. nonce: 4JcHZb 3517.. section: Library 3518 3519Fix uuid.getnode() on platforms with '.' as MAC Addr delimiter as well fix 3520for MAC Addr format that omits a leading 0 in MAC Addr values. Currently, 3521AIX is the only know platform with these settings. Patch by Michael Felt. 3522 3523.. 3524 3525.. bpo: 30618 3526.. date: 2018-07-14-13-48-56 3527.. nonce: T5AUF6 3528.. section: Library 3529 3530Add :meth:`~pathlib.Path.readlink`. Patch by Girts Folkmanis. 3531 3532.. 3533 3534.. bpo: 32498 3535.. date: 2018-06-17-21-02-25 3536.. nonce: La3TZz 3537.. section: Library 3538 3539Made :func:`urllib.parse.unquote()` accept bytes in addition to strings. 3540Patch by Stein Karlsen. 3541 3542.. 3543 3544.. bpo: 33348 3545.. date: 2018-04-24-13-18-48 3546.. nonce: XaJDei 3547.. section: Library 3548 3549lib2to3 now recognizes expressions after ``*`` and `**` like in ``f(*[] or 3550[])``. 3551 3552.. 3553 3554.. bpo: 32689 3555.. date: 2018-02-13-17-58-30 3556.. nonce: a-3SnH 3557.. section: Library 3558 3559Update :func:`shutil.move` function to allow for Path objects to be used as 3560source argument. Patch by Emily Morehouse and Maxwell "5.13b" McKinnon. 3561 3562.. 3563 3564.. bpo: 32820 3565.. date: 2018-02-13-12-25-43 3566.. nonce: 0stF0u 3567.. section: Library 3568 3569Added __format__ to IPv4 and IPv6 classes. Always outputs a fully zero- 3570padded string. Supports b/x/n modifiers (bin/hex/native format). Native 3571format for IPv4 is bin, native format for IPv6 is hex. Also supports '#' and 3572'_' modifiers. 3573 3574.. 3575 3576.. bpo: 27657 3577.. date: 2017-12-26-14-32-23 3578.. nonce: 6BhyVK 3579.. section: Library 3580 3581Fix urllib.parse.urlparse() with numeric paths. A string like "path:80" is 3582no longer parsed as a path but as a scheme ("path") and a path ("80"). 3583 3584.. 3585 3586.. bpo: 4963 3587.. date: 2017-08-15-11-24-41 3588.. nonce: LRYres 3589.. section: Library 3590 3591Fixed non-deterministic behavior related to mimetypes extension mapping and 3592module reinitialization. 3593 3594.. 3595 3596.. bpo: 21767 3597.. date: 2019-11-17-11-54-57 3598.. nonce: Qq3Dos 3599.. section: Documentation 3600 3601Explicitly mention abc support in functools.singledispatch 3602 3603.. 3604 3605.. bpo: 38816 3606.. date: 2019-11-15-11-39-13 3607.. nonce: vUaSVL 3608.. section: Documentation 3609 3610Provides more details about the interaction between :c:func:`fork` and 3611CPython's runtime, focusing just on the C-API. This includes cautions about 3612where :c:func:`fork` should and shouldn't be called. 3613 3614.. 3615 3616.. bpo: 38351 3617.. date: 2019-11-15-09-22-28 3618.. nonce: xwhlse 3619.. section: Documentation 3620 3621Modernize :mod:`email` examples from %-formatting to f-strings. 3622 3623.. 3624 3625.. bpo: 38778 3626.. date: 2019-11-12-15-31-09 3627.. nonce: PHhTlv 3628.. section: Documentation 3629 3630Document the fact that :exc:`RuntimeError` is raised if :meth:`os.fork` is 3631called in a subinterpreter. 3632 3633.. 3634 3635.. bpo: 38592 3636.. date: 2019-10-26-13-19-07 3637.. nonce: Y96BYO 3638.. section: Documentation 3639 3640Add Brazilian Portuguese to the language switcher at Python Documentation 3641website. 3642 3643.. 3644 3645.. bpo: 38294 3646.. date: 2019-09-27-23-37-41 3647.. nonce: go_jFf 3648.. section: Documentation 3649 3650Add list of no-longer-escaped chars to re.escape documentation 3651 3652.. 3653 3654.. bpo: 38053 3655.. date: 2019-09-07-19-09-01 3656.. nonce: lttibE 3657.. section: Documentation 3658 3659Modernized the plistlib documentation 3660 3661.. 3662 3663.. bpo: 26868 3664.. date: 2019-09-07-15-55-46 3665.. nonce: Raw0Gd 3666.. section: Documentation 3667 3668Fix example usage of :c:func:`PyModule_AddObject` to properly handle errors. 3669 3670.. 3671 3672.. bpo: 36797 3673.. date: 2019-09-05-14-47-51 3674.. nonce: KN9Ga5 3675.. section: Documentation 3676 3677Fix a dead link in the distutils API Reference. 3678 3679.. 3680 3681.. bpo: 37977 3682.. date: 2019-08-29-14-38-01 3683.. nonce: pML-UI 3684.. section: Documentation 3685 3686Warn more strongly and clearly about pickle insecurity 3687 3688.. 3689 3690.. bpo: 37979 3691.. date: 2019-08-29-10-40-05 3692.. nonce: TAUx_E 3693.. section: Documentation 3694 3695Added a link to dateutil.parser.isoparse in the datetime.fromisoformat 3696documentation. Patch by Paul Ganssle 3697 3698.. 3699 3700.. bpo: 12707 3701.. date: 2019-08-27-01-14-59 3702.. nonce: Yj3_7_ 3703.. section: Documentation 3704 3705Deprecate info(), geturl(), getcode() methods in favor of the headers, url, 3706and status properties, respectively, for HTTPResponse and addinfourl. Also 3707deprecate the code attribute of addinfourl in favor of the status attribute. 3708Patch by Ashwin Ramaswami 3709 3710.. 3711 3712.. bpo: 37937 3713.. date: 2019-08-24-12-59-06 3714.. nonce: F7fHbt 3715.. section: Documentation 3716 3717Mention ``frame.f_trace`` in :func:`sys.settrace` docs. 3718 3719.. 3720 3721.. bpo: 37878 3722.. date: 2019-08-16-20-01-10 3723.. nonce: MvA6rZ 3724.. section: Documentation 3725 3726Make :c:func:`PyThreadState_DeleteCurrent` Internal. 3727 3728.. 3729 3730.. bpo: 37759 3731.. date: 2019-08-04-19-20-58 3732.. nonce: EHRF4i 3733.. section: Documentation 3734 3735Beginning edits to Whatsnew 3.8 3736 3737.. 3738 3739.. bpo: 37726 3740.. date: 2019-07-31-11-40-06 3741.. nonce: h-3o9a 3742.. section: Documentation 3743 3744Stop recommending getopt in the tutorial for command line argument parsing 3745and promote argparse. 3746 3747.. 3748 3749.. bpo: 32910 3750.. date: 2019-07-25-10-30-32 3751.. nonce: caLLAe 3752.. section: Documentation 3753 3754Remove implementation-specific behaviour of how venv's Deactivate works. 3755 3756.. 3757 3758.. bpo: 37256 3759.. date: 2019-07-16-14-48-12 3760.. nonce: qJTrBb 3761.. section: Documentation 3762 3763Fix wording of arguments for :class:`Request` in :mod:`urllib.request` 3764 3765.. 3766 3767.. bpo: 37284 3768.. date: 2019-07-13-12-58-20 3769.. nonce: rP8WpB 3770.. section: Documentation 3771 3772Add a brief note to indicate that any new ``sys.implementation`` required 3773attributes must go through the PEP process. 3774 3775.. 3776 3777.. bpo: 30088 3778.. date: 2019-07-13-12-43-01 3779.. nonce: CIcBjy 3780.. section: Documentation 3781 3782Documented that :class:`mailbox.Maildir` constructor doesn't attempt to 3783verify the maildir folder layout correctness. Patch by Sviatoslav Sydorenko. 3784 3785.. 3786 3787.. bpo: 37521 3788.. date: 2019-07-12-15-09-56 3789.. nonce: 7tiFR- 3790.. section: Documentation 3791 3792Fix `importlib` examples to insert any newly created modules via 3793importlib.util.module_from_spec() immediately into sys.modules instead of 3794after calling loader.exec_module(). 3795 3796Thanks to Benjamin Mintz for finding the bug. 3797 3798.. 3799 3800.. bpo: 37456 3801.. date: 2019-07-06-17-51-36 3802.. nonce: lgAQHn 3803.. section: Documentation 3804 3805Slash ('/') is now part of syntax. 3806 3807.. 3808 3809.. bpo: 37487 3810.. date: 2019-07-06-17-19-26 3811.. nonce: QagfZ5 3812.. section: Documentation 3813 3814Fix PyList_GetItem index description to include 0. 3815 3816.. 3817 3818.. bpo: 37149 3819.. date: 2019-07-06-02-19-02 3820.. nonce: NumHn3 3821.. section: Documentation 3822 3823Replace the dead link to the Tkinter 8.5 reference by John Shipman, New 3824Mexico Tech, with a link to the archive.org copy. 3825 3826.. 3827 3828.. bpo: 37478 3829.. date: 2019-07-06-00-57-27 3830.. nonce: B0ioLw 3831.. section: Documentation 3832 3833Added possible exceptions to the description of os.chdir(). 3834 3835.. 3836 3837.. bpo: 34903 3838.. date: 2019-06-17-09-36-46 3839.. nonce: r_wGRc 3840.. section: Documentation 3841 3842Documented that in :meth:`datetime.datetime.strptime()`, the leading zero in 3843some two-digit formats is optional. Patch by Mike Gleen. 3844 3845.. 3846 3847.. bpo: 36260 3848.. date: 2019-06-04-09-29-00 3849.. nonce: WrGuc- 3850.. section: Documentation 3851 3852Add decompression pitfalls to zipfile module documentation. 3853 3854.. 3855 3856.. bpo: 37004 3857.. date: 2019-05-22-04-30-07 3858.. nonce: BRgxrt 3859.. section: Documentation 3860 3861In the documentation for difflib, a note was added explicitly warning that 3862the results of SequenceMatcher's ratio method may depend on the order of the 3863input strings. 3864 3865.. 3866 3867.. bpo: 36960 3868.. date: 2019-05-18-16-25-44 3869.. nonce: xEKHXj 3870.. section: Documentation 3871 3872Restructured the :mod:`datetime` docs in the interest of making them more 3873user-friendly and improving readability. Patch by Brad Solomon. 3874 3875.. 3876 3877.. bpo: 36487 3878.. date: 2019-04-02-19-23-00 3879.. nonce: Jg6-MG 3880.. section: Documentation 3881 3882Make C-API docs clear about what the "main" interpreter is. 3883 3884.. 3885 3886.. bpo: 23460 3887.. date: 2019-02-14-07-12-48 3888.. nonce: Iqiqtm 3889.. section: Documentation 3890 3891The documentation for decimal string formatting using the `:g` specifier has 3892been updated to reflect the correct exponential notation cutoff point. 3893Original patch contributed by Tuomas Suutari. 3894 3895.. 3896 3897.. bpo: 35803 3898.. date: 2019-01-21-14-30-59 3899.. nonce: yae6Lq 3900.. section: Documentation 3901 3902Document and test that ``tempfile`` functions may accept a :term:`path-like 3903object` for the ``dir`` argument. Patch by Anthony Sottile. 3904 3905.. 3906 3907.. bpo: 33944 3908.. date: 2018-10-26-18-10-29 3909.. nonce: V1YeOA 3910.. section: Documentation 3911 3912Added a note about the intended use of code in .pth files. 3913 3914.. 3915 3916.. bpo: 34293 3917.. date: 2018-07-31-15-38-26 3918.. nonce: yHupAL 3919.. section: Documentation 3920 3921Fix the Doc/Makefile regarding PAPER environment variable and PDF builds 3922 3923.. 3924 3925.. bpo: 25237 3926.. date: 2018-06-02-12-55-23 3927.. nonce: m8-JMu 3928.. section: Documentation 3929 3930Add documentation for tkinter modules 3931 3932.. 3933 3934.. bpo: 38614 3935.. date: 2019-10-30-15-12-32 3936.. nonce: M6UnLB 3937.. section: Tests 3938 3939Fix test_communicate() of test_asyncio.test_subprocess: use 3940``support.LONG_TIMEOUT`` (5 minutes), instead of just 1 minute. 3941 3942.. 3943 3944.. bpo: 38614 3945.. date: 2019-10-28-15-56-02 3946.. nonce: aDdDYE 3947.. section: Tests 3948 3949Add timeout constants to :mod:`test.support`: 3950:data:`~test.support.LOOPBACK_TIMEOUT`, 3951:data:`~test.support.INTERNET_TIMEOUT`, :data:`~test.support.SHORT_TIMEOUT` 3952and :data:`~test.support.LONG_TIMEOUT`. 3953 3954.. 3955 3956.. bpo: 38502 3957.. date: 2019-10-17-00-49-38 3958.. nonce: vUEic7 3959.. section: Tests 3960 3961test.regrtest now uses process groups in the multiprocessing mode (-jN 3962command line option) if process groups are available: if :func:`os.setsid` 3963and :func:`os.killpg` functions are available. 3964 3965.. 3966 3967.. bpo: 35998 3968.. date: 2019-10-16-01-36-15 3969.. nonce: G305Bf 3970.. section: Tests 3971 3972Fix a race condition in test_asyncio.test_start_tls_server_1(). Previously, 3973there was a race condition between the test main() function which replaces 3974the protocol and the test ServerProto protocol which sends ANSWER once it 3975gets HELLO. Now, only the test main() function is responsible to send data, 3976ServerProto no longer sends data. 3977 3978.. 3979 3980.. bpo: 38470 3981.. date: 2019-10-14-22-46-35 3982.. nonce: NHtzpy 3983.. section: Tests 3984 3985Fix ``test_compileall.test_compile_dir_maxlevels()`` on Windows without long 3986path support: only create 3 subdirectories instead of between 20 and 100 3987subdirectories. 3988 3989.. 3990 3991.. bpo: 37531 3992.. date: 2019-10-08-16-42-05 3993.. nonce: 7v-_Ca 3994.. section: Tests 3995 3996On timeout, regrtest no longer attempts to call ``popen.communicate()`` 3997again: it can hang until all child processes using stdout and stderr pipes 3998completes. Kill the worker process and ignores its output. Change also the 3999faulthandler timeout of the main process from 1 minute to 5 minutes, for 4000Python slowest buildbots. 4001 4002.. 4003 4004.. bpo: 38239 4005.. date: 2019-09-26-15-48-36 4006.. nonce: MfoVzY 4007.. section: Tests 4008 4009Fix test_gdb for Link Time Optimization (LTO) builds. 4010 4011.. 4012 4013.. bpo: 38275 4014.. date: 2019-09-25-14-40-57 4015.. nonce: -kdveI 4016.. section: Tests 4017 4018test_ssl now handles disabled TLS/SSL versions better. OpenSSL's crypto 4019policy and run-time settings are recognized and tests for disabled versions 4020are skipped. Tests also accept more TLS minimum_versions for platforms that 4021override OpenSSL's default with strict settings. 4022 4023.. 4024 4025.. bpo: 38271 4026.. date: 2019-09-25-13-11-29 4027.. nonce: iHXNIg 4028.. section: Tests 4029 4030The private keys for test_ssl were encrypted with 3DES in traditional PKCS#5 4031format. 3DES and the digest algorithm of PKCS#5 are blocked by some strict 4032crypto policies. Use PKCS#8 format with AES256 encryption instead. 4033 4034.. 4035 4036.. bpo: 38270 4037.. date: 2019-09-25-12-18-31 4038.. nonce: _x-9uH 4039.. section: Tests 4040 4041test.support now has a helper function to check for availability of a hash 4042digest function. Several tests are refactored avoid MD5 and use SHA256 4043instead. Other tests are marked to use MD5 and skipped when MD5 is disabled. 4044 4045.. 4046 4047.. bpo: 37123 4048.. date: 2019-09-24-12-30-55 4049.. nonce: IoutBn 4050.. section: Tests 4051 4052Multiprocessing test test_mymanager() now also expects -SIGTERM, not only 4053exitcode 0. BaseManager._finalize_manager() sends SIGTERM to the manager 4054process if it takes longer than 1 second to stop, which happens on slow 4055buildbots. 4056 4057.. 4058 4059.. bpo: 38212 4060.. date: 2019-09-24-12-24-05 4061.. nonce: IWbhWz 4062.. section: Tests 4063 4064Multiprocessing tests: increase test_queue_feeder_donot_stop_onexc() timeout 4065from 1 to 60 seconds. 4066 4067.. 4068 4069.. bpo: 38117 4070.. date: 2019-09-11-17-22-32 4071.. nonce: X7LgGY 4072.. section: Tests 4073 4074Test with OpenSSL 1.1.1d 4075 4076.. 4077 4078.. bpo: 38018 4079.. date: 2019-09-03-19-33-10 4080.. nonce: zTrMu7 4081.. section: Tests 4082 4083Increase code coverage for multiprocessing.shared_memory. 4084 4085.. 4086 4087.. bpo: 37805 4088.. date: 2019-08-25-19-51-46 4089.. nonce: Kl1sti 4090.. section: Tests 4091 4092Add tests for json.dump(..., skipkeys=True). Patch by Dong-hee Na. 4093 4094.. 4095 4096.. bpo: 37531 4097.. date: 2019-08-20-19-24-19 4098.. nonce: wRoXfU 4099.. section: Tests 4100 4101Enhance regrtest multiprocess timeout: write a message when killing a worker 4102process, catch popen.kill() and popen.wait() exceptions, put a timeout on 4103the second call to popen.communicate(). 4104 4105.. 4106 4107.. bpo: 37876 4108.. date: 2019-08-16-16-15-14 4109.. nonce: m3k1w3 4110.. section: Tests 4111 4112Add tests for ROT-13 codec. 4113 4114.. 4115 4116.. bpo: 36833 4117.. date: 2019-07-18-14-52-58 4118.. nonce: Zoe9ek 4119.. section: Tests 4120 4121Added tests for PyDateTime_xxx_GET_xxx() macros of the C API of the 4122:mod:`datetime` module. Patch by Joannah Nanjekye. 4123 4124.. 4125 4126.. bpo: 37558 4127.. date: 2019-07-11-10-33-56 4128.. nonce: SKHRsL 4129.. section: Tests 4130 4131Fix test_shared_memory_cleaned_after_process_termination name handling 4132 4133.. 4134 4135.. bpo: 37526 4136.. date: 2019-07-09-12-33-18 4137.. nonce: vmm5y7 4138.. section: Tests 4139 4140Add :func:`test.support.catch_threading_exception`: context manager catching 4141:class:`threading.Thread` exception using :func:`threading.excepthook`. 4142 4143.. 4144 4145.. bpo: 37421 4146.. date: 2019-07-08-10-11-36 4147.. nonce: OY77go 4148.. section: Tests 4149 4150test_concurrent_futures now explicitly stops the ForkServer instance if it's 4151running. 4152 4153.. 4154 4155.. bpo: 37421 4156.. date: 2019-07-05-14-47-55 4157.. nonce: n8o2to 4158.. section: Tests 4159 4160multiprocessing tests now stop the ForkServer instance if it's running: 4161close the "alive" file descriptor to ask the server to stop and then remove 4162its UNIX address. 4163 4164.. 4165 4166.. bpo: 37421 4167.. date: 2019-07-03-00-05-28 4168.. nonce: ORGRSG 4169.. section: Tests 4170 4171test_distutils.test_build_ext() is now able to remove the temporary 4172directory on Windows: don't import the newly built C extension ("xx") in the 4173current process, but test it in a separated process. 4174 4175.. 4176 4177.. bpo: 37421 4178.. date: 2019-07-02-23-29-06 4179.. nonce: WEfc5A 4180.. section: Tests 4181 4182test_concurrent_futures now cleans up multiprocessing to remove immediately 4183temporary directories created by multiprocessing.util.get_temp_dir(). 4184 4185.. 4186 4187.. bpo: 37421 4188.. date: 2019-07-02-23-20-35 4189.. nonce: HCkKWz 4190.. section: Tests 4191 4192test_winconsoleio doesn't leak a temporary file anymore: use 4193tempfile.TemporaryFile() to remove it when the test completes. 4194 4195.. 4196 4197.. bpo: 37421 4198.. date: 2019-07-01-19-57-26 4199.. nonce: NFH1f0 4200.. section: Tests 4201 4202multiprocessing tests now explicitly call ``_run_finalizers()`` to 4203immediately remove temporary directories created by tests. 4204 4205.. 4206 4207.. bpo: 37421 4208.. date: 2019-07-01-19-56-17 4209.. nonce: bOe350 4210.. section: Tests 4211 4212urllib.request tests now call :func:`~urllib.request.urlcleanup` to remove 4213temporary files created by ``urlretrieve()`` tests and to clear the 4214``_opener`` global variable set by ``urlopen()`` and functions calling 4215indirectly ``urlopen()``. 4216 4217.. 4218 4219.. bpo: 37472 4220.. date: 2019-07-01-17-19-47 4221.. nonce: WzkEAx 4222.. section: Tests 4223 4224Remove ``Lib/test/outstanding_bugs.py``. 4225 4226.. 4227 4228.. bpo: 37199 4229.. date: 2019-06-29-23-56-28 4230.. nonce: FHDsLf 4231.. section: Tests 4232 4233Fix test failures when IPv6 is unavailable or disabled. 4234 4235.. 4236 4237.. bpo: 19696 4238.. date: 2019-06-29-16-02-21 4239.. nonce: 05ijhN 4240.. section: Tests 4241 4242Replace deprecated method "random.choose" with "random.choice" in 4243"test_pkg_import.py". 4244 4245.. 4246 4247.. bpo: 37335 4248.. date: 2019-06-28-16-37-52 4249.. nonce: o5S2hY 4250.. section: Tests 4251 4252Remove no longer necessary code from c locale coercion tests 4253 4254.. 4255 4256.. bpo: 37421 4257.. date: 2019-06-27-00-37-59 4258.. nonce: rVJb3x 4259.. section: Tests 4260 4261Fix test_shutil to no longer leak temporary files. 4262 4263.. 4264 4265.. bpo: 37411 4266.. date: 2019-06-26-15-28-45 4267.. nonce: 5lGNhM 4268.. section: Tests 4269 4270Fix test_wsgiref.testEnviron() to no longer depend on the environment 4271variables (don't fail if "X" variable is set). 4272 4273.. 4274 4275.. bpo: 37400 4276.. date: 2019-06-25-16-02-43 4277.. nonce: cx_EWv 4278.. section: Tests 4279 4280Fix test_os.test_chown(): use os.getgroups() rather than grp.getgrall() to 4281get groups. Rename also the test to test_chown_gid(). 4282 4283.. 4284 4285.. bpo: 37359 4286.. date: 2019-06-24-10-47-07 4287.. nonce: CkdtyO 4288.. section: Tests 4289 4290Add --cleanup option to python3 -m test to remove ``test_python_*`` 4291directories of previous failed jobs. Add "make cleantest" to run ``python3 4292-m test --cleanup``. 4293 4294.. 4295 4296.. bpo: 37362 4297.. date: 2019-06-21-15-47-33 4298.. nonce: D3xppx 4299.. section: Tests 4300 4301test_gdb no longer fails if it gets an "unexpected" message on stderr: it 4302now ignores stderr. The purpose of test_gdb is to test that python-gdb.py 4303commands work as expected, not to test gdb. 4304 4305.. 4306 4307.. bpo: 35998 4308.. date: 2019-06-14-17-05-49 4309.. nonce: yX82oD 4310.. section: Tests 4311 4312Avoid TimeoutError in test_asyncio: test_start_tls_server_1() 4313 4314.. 4315 4316.. bpo: 37278 4317.. date: 2019-06-14-12-21-47 4318.. nonce: z0HUOr 4319.. section: Tests 4320 4321Fix test_asyncio ProactorLoopCtrlC: join the thread to prevent leaking a 4322running thread and leaking a reference. 4323 4324.. 4325 4326.. bpo: 37261 4327.. date: 2019-06-13-12-19-56 4328.. nonce: NuKFVo 4329.. section: Tests 4330 4331Fix :func:`test.support.catch_unraisable_exception`: its __exit__() method 4332now ignores unraisable exception raised when clearing its ``unraisable`` 4333attribute. 4334 4335.. 4336 4337.. bpo: 37069 4338.. date: 2019-06-13-00-46-25 4339.. nonce: wdktFo 4340.. section: Tests 4341 4342regrtest now uses :func:`sys.unraisablehook` to mark a test as "environment 4343altered" (ENV_CHANGED) if it emits an "unraisable exception". Moreover, 4344regrtest logs a warning in this case. 4345 4346Use ``python3 -m test --fail-env-changed`` to catch unraisable exceptions in 4347tests. 4348 4349.. 4350 4351.. bpo: 37252 4352.. date: 2019-06-12-14-30-29 4353.. nonce: 4o-uLs 4354.. section: Tests 4355 4356Fix assertions in ``test_close`` and ``test_events_mask_overflow`` devpoll 4357tests. 4358 4359.. 4360 4361.. bpo: 37169 4362.. date: 2019-06-07-12-23-15 4363.. nonce: yfXTFg 4364.. section: Tests 4365 4366Rewrite ``_PyObject_IsFreed()`` unit tests. 4367 4368.. 4369 4370.. bpo: 37153 4371.. date: 2019-06-04-18-30-39 4372.. nonce: 711INB 4373.. section: Tests 4374 4375``test_venv.test_multiprocessing()`` now explicitly calls 4376``pool.terminate()`` to wait until the pool completes. 4377 4378.. 4379 4380.. bpo: 34001 4381.. date: 2019-06-03-20-47-10 4382.. nonce: KvYx9z 4383.. section: Tests 4384 4385Make test_ssl pass with LibreSSL. LibreSSL handles minimum and maximum TLS 4386version differently than OpenSSL. 4387 4388.. 4389 4390.. bpo: 36919 4391.. date: 2019-05-28-15-41-34 4392.. nonce: -vGt_m 4393.. section: Tests 4394 4395Make ``test_source_encoding.test_issue2301`` implementation independent. The 4396test will work now for both CPython and IronPython. 4397 4398.. 4399 4400.. bpo: 30202 4401.. date: 2019-04-15-19-05-35 4402.. nonce: Wt7INj 4403.. section: Tests 4404 4405Update ``test.test_importlib.test_abc`` to test ``find_spec()``. 4406 4407.. 4408 4409.. bpo: 28009 4410.. date: 2019-04-11-07-59-43 4411.. nonce: s85urF 4412.. section: Tests 4413 4414Modify the test_uuid logic to test when a program is available AND can be 4415used to obtain a MACADDR as basis for an UUID. Patch by M. Felt 4416 4417.. 4418 4419.. bpo: 34596 4420.. date: 2018-09-07-01-18-27 4421.. nonce: r2-EGd 4422.. section: Tests 4423 4424Fallback to a default reason when :func:`unittest.skip` is uncalled. Patch 4425by Naitree Zhu. 4426 4427.. 4428 4429.. bpo: 38809 4430.. date: 2019-11-15-09-25-44 4431.. nonce: 9jwta6 4432.. section: Build 4433 4434On Windows, build scripts will now recognize and use python.exe from an 4435active virtual env. 4436 4437.. 4438 4439.. bpo: 38684 4440.. date: 2019-11-04-14-30-37 4441.. nonce: aed593 4442.. section: Build 4443 4444Fix _hashlib build when Blake2 is disabled, but OpenSSL supports it. 4445 4446.. 4447 4448.. bpo: 38468 4449.. date: 2019-10-13-16-18-24 4450.. nonce: buCO84 4451.. section: Build 4452 4453Misc/python-config.in now uses `getvar()` for all still existing 4454`sysconfig.get_config_var()` calls. Patch by Joannah Nanjekye. 4455 4456.. 4457 4458.. bpo: 37415 4459.. date: 2019-10-11-15-32-58 4460.. nonce: D9RXrq 4461.. section: Build 4462 4463Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks 4464atomic_uintptr_t type which is needed by Python. 4465 4466.. 4467 4468.. bpo: 38301 4469.. date: 2019-09-28-02-37-11 4470.. nonce: 123456 4471.. section: Build 4472 4473In Solaris family, we must be sure to use ``-D_REENTRANT``. Patch by Jesús 4474Cea Avión. 4475 4476.. 4477 4478.. bpo: 36002 4479.. date: 2019-09-13-14-12-36 4480.. nonce: Bcl4oe 4481.. section: Build 4482 4483Locate ``llvm-profdata`` and ``llvm-ar`` binaries using ``AC_PATH_TOOL`` 4484rather than ``AC_PATH_TARGET_TOOL``. 4485 4486.. 4487 4488.. bpo: 37936 4489.. date: 2019-09-10-00-54-48 4490.. nonce: E7XEwu 4491.. section: Build 4492 4493The :file:`.gitignore` file systematically keeps "rooted", with a 4494non-trailing slash, all the rules that are meant to apply to files in a 4495specific place in the repo. Previously, when the intended file to ignore 4496happened to be at the root of the repo, we'd most often accidentally also 4497ignore files and directories with the same name anywhere in the tree. 4498 4499.. 4500 4501.. bpo: 37760 4502.. date: 2019-08-24-17-39-09 4503.. nonce: f3jXuH 4504.. section: Build 4505 4506The :file:`Tools/unicode/makeunicodedata.py` script, which is used for 4507converting information from the Unicode Character Database into generated 4508code and data used by the methods of :class:`str` and by the 4509:mod:`unicodedata` module, now handles each character's data as a 4510``dataclass`` with named attributes, rather than a length-18 list of 4511different fields. 4512 4513.. 4514 4515.. bpo: 37936 4516.. date: 2019-08-24-00-29-40 4517.. nonce: QrORqA 4518.. section: Build 4519 4520The :file:`.gitignore` file no longer applies to any files that are in fact 4521tracked in the Git repository. Patch by Greg Price. 4522 4523.. 4524 4525.. bpo: 37725 4526.. date: 2019-07-30-16-26-11 4527.. nonce: MkG1TT 4528.. section: Build 4529 4530Change "clean" makefile target to also clean the program guided optimization 4531(PGO) data. Previously you would have to use "make clean" and "make 4532profile-removal", or "make clobber". 4533 4534.. 4535 4536.. bpo: 37707 4537.. date: 2019-07-29-11-36-16 4538.. nonce: Sm-dGk 4539.. section: Build 4540 4541Mark some individual tests to skip when --pgo is used. The tests marked 4542increase the PGO task time significantly and likely don't help improve 4543optimization of the final executable. 4544 4545.. 4546 4547.. bpo: 36044 4548.. date: 2019-07-11-01-28-24 4549.. nonce: gIgfiJ 4550.. section: Build 4551 4552Reduce the number of unit tests run for the PGO generation task. This 4553speeds up the task by a factor of about 15x. Running the full unit test 4554suite is slow. This change may result in a slightly less optimized build 4555since not as many code branches will be executed. If you are willing to 4556wait for the much slower build, the old behavior can be restored using 4557'./configure [..] PROFILE_TASK="-m test --pgo-extended"'. We make no 4558guarantees as to which PGO task set produces a faster build. Users who care 4559should run their own relevant benchmarks as results can depend on the 4560environment, workload, and compiler tool chain. 4561 4562.. 4563 4564.. bpo: 37468 4565.. date: 2019-07-01-14-39-40 4566.. nonce: trbQ-_ 4567.. section: Build 4568 4569``make install`` no longer installs ``wininst-*.exe`` files used by 4570distutils bdist_wininst: bdist_wininst only works on Windows. 4571 4572.. 4573 4574.. bpo: 37189 4575.. date: 2019-06-17-09-40-59 4576.. nonce: j5ebdT 4577.. section: Build 4578 4579Many ``PyRun_XXX()`` functions like :c:func:`PyRun_String` were no longer 4580exported in ``libpython38.dll`` by mistake. Export them again to fix the ABI 4581compatibility. 4582 4583.. 4584 4585.. bpo: 25361 4586.. date: 2019-03-19-22-07-37 4587.. nonce: XO9Bfr 4588.. section: Build 4589 4590Enables use of SSE2 instructions in Windows 32-bit build. 4591 4592.. 4593 4594.. bpo: 36210 4595.. date: 2019-03-06-18-55-10 4596.. nonce: fup9H2 4597.. section: Build 4598 4599Update optional extension module detection for AIX. ossaudiodev and spwd are 4600not applicable for AIX, and are no longer reported as missing. 3rd-party 4601packaging of ncurses (with ASIS support) conflicts with officially supported 4602AIX curses library, so configure AIX to use libcurses.a. However, skip 4603trying to build _curses_panel. 4604 4605patch by M Felt 4606 4607.. 4608 4609.. bpo: 38589 4610.. date: 2019-10-28-10-48-16 4611.. nonce: V69Q1a 4612.. section: Windows 4613 4614Fixes HTML Help shortcut when Windows is not installed to C drive 4615 4616.. 4617 4618.. bpo: 38453 4619.. date: 2019-10-28-10-32-43 4620.. nonce: NwwatW 4621.. section: Windows 4622 4623Ensure ntpath.realpath() correctly resolves relative paths. 4624 4625.. 4626 4627.. bpo: 38519 4628.. date: 2019-10-28-05-01-29 4629.. nonce: dCkY66 4630.. section: Windows 4631 4632Restores the internal C headers that were missing from the nuget.org and 4633Microsoft Store packages. 4634 4635.. 4636 4637.. bpo: 38492 4638.. date: 2019-10-16-09-49-09 4639.. nonce: Te1LxC 4640.. section: Windows 4641 4642Remove ``pythonw.exe`` dependency on the Microsoft C++ runtime. 4643 4644.. 4645 4646.. bpo: 38344 4647.. date: 2019-10-05-05-50-58 4648.. nonce: scr2LO 4649.. section: Windows 4650 4651Fix error message in activate.bat 4652 4653.. 4654 4655.. bpo: 38359 4656.. date: 2019-10-03-08-04-14 4657.. nonce: wzwsl_ 4658.. section: Windows 4659 4660Ensures ``pyw.exe`` launcher reads correct registry key. 4661 4662.. 4663 4664.. bpo: 38355 4665.. date: 2019-10-02-15-38-49 4666.. nonce: n3AWX6 4667.. section: Windows 4668 4669Fixes ``ntpath.realpath`` failing on ``sys.executable``. 4670 4671.. 4672 4673.. bpo: 38117 4674.. date: 2019-09-16-14-07-11 4675.. nonce: hJVf0C 4676.. section: Windows 4677 4678Update bundled OpenSSL to 1.1.1d 4679 4680.. 4681 4682.. bpo: 38092 4683.. date: 2019-09-13-14-11-42 4684.. nonce: x31ehI 4685.. section: Windows 4686 4687Reduce overhead when using multiprocessing in a Windows virtual environment. 4688 4689.. 4690 4691.. bpo: 38133 4692.. date: 2019-09-12-12-05-55 4693.. nonce: yFeRGS 4694.. section: Windows 4695 4696Allow py.exe launcher to locate installations from the Microsoft Store and 4697improve display of active virtual environments. 4698 4699.. 4700 4701.. bpo: 38114 4702.. date: 2019-09-11-15-24-04 4703.. nonce: cc0E5E 4704.. section: Windows 4705 4706The ``pip.ini`` is no longer included in the Nuget package. 4707 4708.. 4709 4710.. bpo: 32592 4711.. date: 2019-09-11-14-51-56 4712.. nonce: jvQMD9 4713.. section: Windows 4714 4715Set Windows 8 as the minimum required version for API support 4716 4717.. 4718 4719.. bpo: 36634 4720.. date: 2019-09-11-14-42-04 4721.. nonce: 8Un8ih 4722.. section: Windows 4723 4724:func:`os.cpu_count` now returns active processors rather than maximum 4725processors. 4726 4727.. 4728 4729.. bpo: 36634 4730.. date: 2019-09-11-12-34-31 4731.. nonce: xLaGgb 4732.. section: Windows 4733 4734venv activate.bat now works when the existing variables contain double quote 4735characters. 4736 4737.. 4738 4739.. bpo: 38081 4740.. date: 2019-09-11-10-22-01 4741.. nonce: 8JhzjD 4742.. section: Windows 4743 4744Prevent error calling :func:`os.path.realpath` on ``'NUL'``. 4745 4746.. 4747 4748.. bpo: 38087 4749.. date: 2019-09-10-14-21-40 4750.. nonce: --eIib 4751.. section: Windows 4752 4753Fix case sensitivity in test_pathlib and test_ntpath. 4754 4755.. 4756 4757.. bpo: 38088 4758.. date: 2019-09-10-14-17-25 4759.. nonce: FOvWSM 4760.. section: Windows 4761 4762Fixes distutils not finding vcruntime140.dll with only the v142 toolset 4763installed. 4764 4765.. 4766 4767.. bpo: 37283 4768.. date: 2019-09-09-12-22-23 4769.. nonce: 8NvOkU 4770.. section: Windows 4771 4772Ensure command-line and unattend.xml setting override previously detected 4773states in Windows installer. 4774 4775.. 4776 4777.. bpo: 38030 4778.. date: 2019-09-04-14-01-08 4779.. nonce: _USdtk 4780.. section: Windows 4781 4782Fixes :func:`os.stat` failing for block devices on Windows 4783 4784.. 4785 4786.. bpo: 38020 4787.. date: 2019-09-03-11-47-37 4788.. nonce: xFZ2j0 4789.. section: Windows 4790 4791Fixes potential crash when calling :func:`os.readlink` (or indirectly 4792through :func:`~os.path.realpath`) on a file that is not a supported link. 4793 4794.. 4795 4796.. bpo: 37705 4797.. date: 2019-08-30-15-15-22 4798.. nonce: 2o4NWW 4799.. section: Windows 4800 4801Improve the implementation of ``winerror_to_errno()``. 4802 4803.. 4804 4805.. bpo: 37549 4806.. date: 2019-08-22-09-04-44 4807.. nonce: TpKI3M 4808.. section: Windows 4809 4810:func:`os.dup` no longer fails for standard streams on Windows 7. 4811 4812.. 4813 4814.. bpo: 1311 4815.. date: 2019-08-21-12-58-18 4816.. nonce: BoW1wU 4817.. section: Windows 4818 4819The ``nul`` file on Windows now returns True from :func:`~os.path.exists` 4820and a valid result from :func:`os.stat` with ``S_IFCHR`` set. 4821 4822.. 4823 4824.. bpo: 9949 4825.. date: 2019-08-14-13-40-15 4826.. nonce: zW45Ks 4827.. section: Windows 4828 4829Enable support for following symlinks in :func:`os.realpath`. 4830 4831.. 4832 4833.. bpo: 37834 4834.. date: 2019-08-12-12-00-24 4835.. nonce: VB2QVj 4836.. section: Windows 4837 4838Treat all name surrogate reparse points on Windows in :func:`os.lstat` and 4839other reparse points as regular files in :func:`os.stat`. 4840 4841.. 4842 4843.. bpo: 36266 4844.. date: 2019-08-08-18-05-27 4845.. nonce: x4eZU3 4846.. section: Windows 4847 4848Add the module name in the formatted error message when DLL load fail 4849happens during module import in ``_PyImport_FindSharedFuncptrWindows()``. 4850Patch by Srinivas Nyayapati. 4851 4852.. 4853 4854.. bpo: 25172 4855.. date: 2019-08-06-18-09-18 4856.. nonce: Akreij 4857.. section: Windows 4858 4859Trying to import the :mod:`crypt` module on Windows will result in an 4860:exc:`ImportError` with a message explaining that the module isn't supported 4861on Windows. On other platforms, if the underlying ``_crypt`` module is not 4862available, the ImportError will include a message explaining the problem. 4863 4864.. 4865 4866.. bpo: 37778 4867.. date: 2019-08-06-13-54-12 4868.. nonce: AY1XhH 4869.. section: Windows 4870 4871Fixes the icons used for file associations to the Microsoft Store package. 4872 4873.. 4874 4875.. bpo: 37734 4876.. date: 2019-08-06-09-35-12 4877.. nonce: EoJ9Nh 4878.. section: Windows 4879 4880Fix use of registry values to launch Python from Microsoft Store app. 4881 4882.. 4883 4884.. bpo: 37702 4885.. date: 2019-07-29-16-49-31 4886.. nonce: Lj2f5e 4887.. section: Windows 4888 4889Fix memory leak on Windows in creating an SSLContext object or running 4890``urllib.request.urlopen('https://...')``. 4891 4892.. 4893 4894.. bpo: 37672 4895.. date: 2019-07-24-14-36-28 4896.. nonce: uKEVHN 4897.. section: Windows 4898 4899Switch Windows Store package's pip to use bundled :file:`pip.ini` instead of 4900:envvar:`PIP_USER` variable. 4901 4902.. 4903 4904.. bpo: 10945 4905.. date: 2019-07-01-12-38-48 4906.. nonce: s0YBHG 4907.. section: Windows 4908 4909Officially drop support for creating bdist_wininst installers on non-Windows 4910systems. 4911 4912.. 4913 4914.. bpo: 37445 4915.. date: 2019-06-28-18-10-29 4916.. nonce: LsdYO6 4917.. section: Windows 4918 4919Include the ``FORMAT_MESSAGE_IGNORE_INSERTS`` flag in ``FormatMessageW()`` 4920calls. 4921 4922.. 4923 4924.. bpo: 37369 4925.. date: 2019-06-28-09-44-08 4926.. nonce: 1iVpxq 4927.. section: Windows 4928 4929Fixes path for :data:`sys.executable` when running from the Microsoft Store. 4930 4931.. 4932 4933.. bpo: 37380 4934.. date: 2019-06-25-04-15-22 4935.. nonce: tPxjuz 4936.. section: Windows 4937 4938Don't collect unfinished processes with ``subprocess._active`` on Windows to 4939cleanup later. Patch by Ruslan Kuprieiev. 4940 4941.. 4942 4943.. bpo: 37351 4944.. date: 2019-06-20-12-50-32 4945.. nonce: asTnVW 4946.. section: Windows 4947 4948Removes libpython38.a from standard Windows distribution. 4949 4950.. 4951 4952.. bpo: 35360 4953.. date: 2019-06-18-09-05-08 4954.. nonce: tdqSmo 4955.. section: Windows 4956 4957Update Windows builds to use SQLite 3.28.0. 4958 4959.. 4960 4961.. bpo: 37267 4962.. date: 2019-06-13-04-15-51 4963.. nonce: Ygo5ef 4964.. section: Windows 4965 4966On Windows, :func:`os.dup` no longer creates an inheritable fd when handling 4967a character file. 4968 4969.. 4970 4971.. bpo: 36779 4972.. date: 2019-06-11-15-41-34 4973.. nonce: 0TMw6f 4974.. section: Windows 4975 4976Ensure ``time.tzname`` is correct on Windows when the active code page is 4977set to CP_UTF7 or CP_UTF8. 4978 4979.. 4980 4981.. bpo: 32587 4982.. date: 2019-05-10-15-25-44 4983.. nonce: -0g2O3 4984.. section: Windows 4985 4986Make :data:`winreg.REG_MULTI_SZ` support zero-length strings. 4987 4988.. 4989 4990.. bpo: 28269 4991.. date: 2019-05-05-05-23-34 4992.. nonce: -MOHI7 4993.. section: Windows 4994 4995Replace use of :c:func:`strcasecmp` for the system function 4996:c:func:`_stricmp`. Patch by Minmin Gong. 4997 4998.. 4999 5000.. bpo: 36590 5001.. date: 2019-04-10-21-13-26 5002.. nonce: ZTaKcu 5003.. section: Windows 5004 5005Add native Bluetooth RFCOMM support to socket module. 5006 5007.. 5008 5009.. bpo: 38117 5010.. date: 2019-09-15-21-29-13 5011.. nonce: ZLsoAZ 5012.. section: macOS 5013 5014Updated OpenSSL to 1.1.1d in macOS installer. 5015 5016.. 5017 5018.. bpo: 38089 5019.. date: 2019-09-10-14-24-35 5020.. nonce: eedgyD 5021.. section: macOS 5022 5023Move Azure Pipelines to latest VM versions and make macOS tests optional 5024 5025.. 5026 5027.. bpo: 18049 5028.. date: 2019-07-13-15-58-18 5029.. nonce: MklhQQ 5030.. section: macOS 5031 5032Increase the default stack size of threads from 5MB to 16MB on macOS, to 5033match the stack size of the main thread. This avoids crashes on deep 5034recursion in threads. 5035 5036.. 5037 5038.. bpo: 34602 5039.. date: 2019-07-02-01-06-47 5040.. nonce: 10d4wl 5041.. section: macOS 5042 5043Avoid test suite failures on macOS by no longer calling resource.setrlimit 5044to increase the process stack size limit at runtime. The runtime change is 5045no longer needed since the interpreter is being built with a larger default 5046stack size. 5047 5048.. 5049 5050.. bpo: 35360 5051.. date: 2019-06-18-08-58-30 5052.. nonce: -CWbfy 5053.. section: macOS 5054 5055Update macOS installer to use SQLite 3.28.0. 5056 5057.. 5058 5059.. bpo: 34631 5060.. date: 2019-06-18-00-30-40 5061.. nonce: vSifcv 5062.. section: macOS 5063 5064Updated OpenSSL to 1.1.1c in macOS installer. 5065 5066.. 5067 5068.. bpo: 26353 5069.. date: 2019-11-09-23-55-59 5070.. nonce: duYZiF 5071.. section: IDLE 5072 5073Stop adding newline when saving an IDLE shell window. 5074 5075.. 5076 5077.. bpo: 4630 5078.. date: 2019-10-28-04-48-03 5079.. nonce: upgjiV 5080.. section: IDLE 5081 5082Add an option to toggle IDLE's cursor blink for shell, editor, and output 5083windows. See Settings, General, Window Preferences, Cursor Blink. Patch by 5084Zackery Spytz. 5085 5086.. 5087 5088.. bpo: 38598 5089.. date: 2019-10-26-18-16-24 5090.. nonce: 6kH9FY 5091.. section: IDLE 5092 5093Do not try to compile IDLE shell or output windows 5094 5095.. 5096 5097.. bpo: 36698 5098.. date: 2019-10-04-18-03-09 5099.. nonce: BKcmom 5100.. section: IDLE 5101 5102IDLE no longer fails when write non-encodable characters to stderr. It now 5103escapes them with a backslash, as the regular Python interpreter. Added the 5104``errors`` field to the standard streams. 5105 5106.. 5107 5108.. bpo: 35379 5109.. date: 2019-09-17-01-28-56 5110.. nonce: yAECDr 5111.. section: IDLE 5112 5113When exiting IDLE, catch any AttributeError. One happens when 5114EditorWindow.close is called twice. Printing a traceback, when IDLE is run 5115from a terminal, is useless and annoying. 5116 5117.. 5118 5119.. bpo: 38183 5120.. date: 2019-09-16-15-04-29 5121.. nonce: eudCN1 5122.. section: IDLE 5123 5124To avoid problems, test_idle ignores the user config directory. It no longer 5125tries to create or access .idlerc or any files within. Users must run IDLE 5126to discover problems with saving settings. 5127 5128.. 5129 5130.. bpo: 38077 5131.. date: 2019-09-09-22-08-36 5132.. nonce: Mzpfe2 5133.. section: IDLE 5134 5135IDLE no longer adds 'argv' to the user namespace when initializing it. This 5136bug only affected 3.7.4 and 3.8.0b2 to 3.8.0b4. 5137 5138.. 5139 5140.. bpo: 38041 5141.. date: 2019-09-05-23-12-13 5142.. nonce: nxmGGK 5143.. section: IDLE 5144 5145Shell restart lines now fill the window width, always start with '=', and 5146avoid wrapping unnecessarily. The line will still wrap if the included file 5147name is long relative to the width. 5148 5149.. 5150 5151.. bpo: 35771 5152.. date: 2019-09-01-10-22-55 5153.. nonce: tdbmbP 5154.. section: IDLE 5155 5156To avoid occasional spurious test_idle failures on slower machines, increase 5157the ``hover_delay`` in test_tooltip. 5158 5159.. 5160 5161.. bpo: 37824 5162.. date: 2019-08-26-00-41-53 5163.. nonce: YY5jAI 5164.. section: IDLE 5165 5166Properly handle user input warnings in IDLE shell. Cease turning 5167SyntaxWarnings into SyntaxErrors. 5168 5169.. 5170 5171.. bpo: 37929 5172.. date: 2019-08-24-22-00-33 5173.. nonce: jb7523 5174.. section: IDLE 5175 5176IDLE Settings dialog now closes properly when there is no shell window. 5177 5178.. 5179 5180.. bpo: 37902 5181.. date: 2019-08-21-16-02-49 5182.. nonce: _R_adE 5183.. section: IDLE 5184 5185Add mousewheel scrolling for IDLE module, path, and stack browsers. Patch by 5186George Zhang. 5187 5188.. 5189 5190.. bpo: 37849 5191.. date: 2019-08-14-09-43-15 5192.. nonce: -bcYF3 5193.. section: IDLE 5194 5195Fixed completions list appearing too high or low when shown above the 5196current line. 5197 5198.. 5199 5200.. bpo: 36419 5201.. date: 2019-08-04-17-10-01 5202.. nonce: TJZqOc 5203.. section: IDLE 5204 5205Refactor IDLE autocomplete and improve testing. 5206 5207.. 5208 5209.. bpo: 37748 5210.. date: 2019-08-04-15-27-50 5211.. nonce: 0vf6pg 5212.. section: IDLE 5213 5214Reorder the Run menu. Put the most common choice, Run Module, at the top. 5215 5216.. 5217 5218.. bpo: 37692 5219.. date: 2019-07-27-15-14-20 5220.. nonce: TRHGjD 5221.. section: IDLE 5222 5223Improve highlight config sample with example shell interaction and better 5224labels for shell elements. 5225 5226.. 5227 5228.. bpo: 37628 5229.. date: 2019-07-26-17-51-13 5230.. nonce: kX4AUF 5231.. section: IDLE 5232 5233Settings dialog no longer expands with font size. 5234 5235.. 5236 5237.. bpo: 37627 5238.. date: 2019-07-20-23-33-53 5239.. nonce: dQhUNB 5240.. section: IDLE 5241 5242Initialize the Customize Run dialog with the command line arguments most 5243recently entered before. The user can optionally edit before submitting 5244them. 5245 5246.. 5247 5248.. bpo: 33610 5249.. date: 2019-07-18-10-11-36 5250.. nonce: xYqMLg 5251.. section: IDLE 5252 5253Fix code context not showing the correct context when first toggled on. 5254 5255.. 5256 5257.. bpo: 37530 5258.. date: 2019-07-11-00-05-31 5259.. nonce: AuyCyD 5260.. section: IDLE 5261 5262Optimize code context to reduce unneeded background activity. Font and 5263highlight changes now occur along with text changes instead of after a 5264random delay. 5265 5266.. 5267 5268.. bpo: 27452 5269.. date: 2019-07-03-22-47-44 5270.. nonce: nePPLi 5271.. section: IDLE 5272 5273Cleanup ``config.py`` by inlining ``RemoveFile`` and simplifying the 5274handling of ``file`` in ``CreateConfigHandlers``. 5275 5276.. 5277 5278.. bpo: 37325 5279.. date: 2019-06-18-16-40-05 5280.. nonce: GssOf1 5281.. section: IDLE 5282 5283Fix tab focus traversal order for help source and custom run dialogs. 5284 5285.. 5286 5287.. bpo: 37321 5288.. date: 2019-06-17-16-35-30 5289.. nonce: zVTTGS 5290.. section: IDLE 5291 5292Both subprocess connection error messages now refer to the 'Startup failure' 5293section of the IDLE doc. 5294 5295.. 5296 5297.. bpo: 17535 5298.. date: 2019-06-13-01-07-20 5299.. nonce: K8i2St 5300.. section: IDLE 5301 5302Add optional line numbers for IDLE editor windows. Windows open without 5303line numbers unless set otherwise in the General tab of the configuration 5304dialog. 5305 5306.. 5307 5308.. bpo: 26806 5309.. date: 2019-06-10-22-48-50 5310.. nonce: Zltkum 5311.. section: IDLE 5312 5313To compensate for stack frames added by IDLE and avoid possible problems 5314with low recursion limits, add 30 to limits in the user code execution 5315process. Subtract 30 when reporting recursion limits to make this addition 5316mostly transparent. 5317 5318.. 5319 5320.. bpo: 37177 5321.. date: 2019-06-07-00-17-41 5322.. nonce: voU6pQ 5323.. section: IDLE 5324 5325Properly 'attach' search dialogs to their main window so that they behave 5326like other dialogs and do not get hidden behind their main window. 5327 5328.. 5329 5330.. bpo: 37039 5331.. date: 2019-06-04-23-27-33 5332.. nonce: FN_fBf 5333.. section: IDLE 5334 5335Adjust "Zoom Height" to individual screens by momentarily maximizing the 5336window on first use with a particular screen. Changing screen settings may 5337invalidate the saved height. While a window is maximized, "Zoom Height" has 5338no effect. 5339 5340.. 5341 5342.. bpo: 35763 5343.. date: 2019-06-04-20-36-24 5344.. nonce: 7XdoWz 5345.. section: IDLE 5346 5347Make calltip reminder about '/' meaning positional-only less obtrusive by 5348only adding it when there is room on the first line. 5349 5350.. 5351 5352.. bpo: 5680 5353.. date: 2019-06-03-00-39-29 5354.. nonce: VCQfOO 5355.. section: IDLE 5356 5357Add 'Run... Customized' to the Run menu to run a module with customized 5358settings. Any 'command line arguments' entered are added to sys.argv. One 5359can suppress the normal Shell main module restart. 5360 5361.. 5362 5363.. bpo: 36390 5364.. date: 2019-03-21-08-35-00 5365.. nonce: OdDCGk 5366.. section: IDLE 5367 5368Gather Format menu functions into format.py. Combine paragraph.py, 5369rstrip.py, and format methods from editor.py. 5370 5371.. 5372 5373.. bpo: 38118 5374.. date: 2019-10-08-15-07-52 5375.. nonce: pIZD6H 5376.. section: Tools/Demos 5377 5378Update Valgrind suppression file to ignore a false alarm in 5379:c:func:`PyUnicode_Decode` when using GCC builtin strcmp(). 5380 5381.. 5382 5383.. bpo: 38347 5384.. date: 2019-10-02-09-48-42 5385.. nonce: 2Tq5D1 5386.. section: Tools/Demos 5387 5388pathfix.py: Assume all files that end on '.py' are Python scripts when 5389working recursively. 5390 5391.. 5392 5393.. bpo: 37803 5394.. date: 2019-09-12-16-15-55 5395.. nonce: chEizy 5396.. section: Tools/Demos 5397 5398pdb's ``--help`` and ``--version`` long options now work. 5399 5400.. 5401 5402.. bpo: 37942 5403.. date: 2019-08-24-12-11-30 5404.. nonce: 7H8N9a 5405.. section: Tools/Demos 5406 5407Improve ArgumentClinic converter for floats. 5408 5409.. 5410 5411.. bpo: 37704 5412.. date: 2019-07-29-13-59-19 5413.. nonce: xxGUz_ 5414.. section: Tools/Demos 5415 5416Remove ``Tools/scripts/h2py.py``: use cffi to access a C API in Python. 5417 5418.. 5419 5420.. bpo: 37675 5421.. date: 2019-07-24-16-20-54 5422.. nonce: 951Cvf 5423.. section: Tools/Demos 5424 54252to3 now works when run from a zipped standard library. 5426 5427.. 5428 5429.. bpo: 37034 5430.. date: 2019-05-27-16-13-08 5431.. nonce: zbTgy8 5432.. section: Tools/Demos 5433 5434Argument Clinic now uses the argument name on errors with keyword-only 5435argument instead of their position. Patch contributed by Rémi Lapeyre. 5436 5437.. 5438 5439.. bpo: 37064 5440.. date: 2019-05-27-15-26-12 5441.. nonce: k_SPW2 5442.. section: Tools/Demos 5443 5444Add option -k to pathscript.py script: preserve shebang flags. Add option -a 5445to pathscript.py script: add flags. 5446 5447.. 5448 5449.. bpo: 37633 5450.. date: 2019-11-04-21-10-47 5451.. nonce: oOGVdo 5452.. section: C API 5453 5454Re-export some function compatibility wrappers for macros in ``pythonrun.h``. 5455 5456.. 5457 5458.. bpo: 38644 5459.. date: 2019-11-04-17-59-46 5460.. nonce: euO_RR 5461.. section: C API 5462 5463Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` 5464as regular functions for the limited API. Previously, there were defined as 5465macros, but these macros didn't work with the limited API which cannot 5466access ``PyThreadState.recursion_depth`` field. Remove 5467``_Py_CheckRecursionLimit`` from the stable ABI. 5468 5469.. 5470 5471.. bpo: 38650 5472.. date: 2019-10-30-22-03-03 5473.. nonce: 0pi8zt 5474.. section: C API 5475 5476The global variable :c:data:`PyStructSequence_UnnamedField` is now a 5477constant and refers to a constant string. 5478 5479.. 5480 5481.. bpo: 38540 5482.. date: 2019-10-21-09-24-03 5483.. nonce: 314N_T 5484.. section: C API 5485 5486Fixed possible leak in :c:func:`PyArg_Parse` and similar functions for 5487format units ``"es#"`` and ``"et#"`` when the macro 5488:c:macro:`PY_SSIZE_T_CLEAN` is not defined. 5489 5490.. 5491 5492.. bpo: 38395 5493.. date: 2019-10-08-01-23-24 5494.. nonce: MJ6Ey9 5495.. section: C API 5496 5497Fix a crash in :class:`weakref.proxy` objects due to incorrect lifetime 5498management when calling some associated methods that may delete the last 5499reference to object being referenced by the proxy. Patch by Pablo Galindo. 5500 5501.. 5502 5503.. bpo: 36389 5504.. date: 2019-10-07-17-15-09 5505.. nonce: hFX_jD 5506.. section: C API 5507 5508The ``_PyObject_CheckConsistency()`` function is now also available in 5509release mode. For example, it can be used to debug a crash in the 5510``visit_decref()`` function of the GC. 5511 5512.. 5513 5514.. bpo: 38266 5515.. date: 2019-10-03-12-53-53 5516.. nonce: 0FIC1q 5517.. section: C API 5518 5519Revert the removal of PyThreadState_DeleteCurrent() with documentation. 5520 5521.. 5522 5523.. bpo: 38303 5524.. date: 2019-09-30-16-53-30 5525.. nonce: YoIs0M 5526.. section: C API 5527 5528Update audioop extension module to use the stable ABI (PEP-384). Patch by 5529Tyler Kieft. 5530 5531.. 5532 5533.. bpo: 38234 5534.. date: 2019-09-24-17-09-48 5535.. nonce: d0bhEA 5536.. section: C API 5537 5538:c:func:`Py_SetPath` now sets :data:`sys.executable` to the program full 5539path (:c:func:`Py_GetProgramFullPath`) rather than to the program name 5540(:c:func:`Py_GetProgramName`). 5541 5542.. 5543 5544.. bpo: 38234 5545.. date: 2019-09-20-17-22-41 5546.. nonce: ZbquVK 5547.. section: C API 5548 5549Python ignored arguments passed to :c:func:`Py_SetPath`, 5550:c:func:`Py_SetPythonHome` and :c:func:`Py_SetProgramName`: fix Python 5551initialization to use specified arguments. 5552 5553.. 5554 5555.. bpo: 38205 5556.. date: 2019-09-19-18-26-29 5557.. nonce: Db1OJL 5558.. section: C API 5559 5560The :c:func:`Py_UNREACHABLE` macro now calls :c:func:`Py_FatalError`. 5561 5562.. 5563 5564.. bpo: 38140 5565.. date: 2019-09-13-01-24-47 5566.. nonce: y59qaO 5567.. section: C API 5568 5569Make dict and weakref offsets opaque for C heap types by passing the offsets 5570through PyMemberDef 5571 5572.. 5573 5574.. bpo: 15088 5575.. date: 2019-09-05-14-17-21 5576.. nonce: plt8Em 5577.. section: C API 5578 5579The C function ``PyGen_NeedsFinalizing`` has been removed. It was not 5580documented, tested or used anywhere within CPython after the implementation 5581of :pep:`442`. Patch by Joannah Nanjekye. (Patch by Joannah Nanjekye) 5582 5583.. 5584 5585.. bpo: 36763 5586.. date: 2019-08-23-18-45-11 5587.. nonce: q3Kh8Z 5588.. section: C API 5589 5590Options added by ``PySys_AddXOption()`` are now handled the same way than 5591``PyConfig.xoptions`` and command line ``-X`` options. 5592 5593.. 5594 5595.. bpo: 37926 5596.. date: 2019-08-23-11-35-55 5597.. nonce: hnI5IQ 5598.. section: C API 5599 5600Fix a crash in ``PySys_SetArgvEx(0, NULL, 0)``. 5601 5602.. 5603 5604.. bpo: 37879 5605.. date: 2019-08-17-13-50-21 5606.. nonce: CZeUem 5607.. section: C API 5608 5609Fix subtype_dealloc to suppress the type decref when the base type is a C 5610heap type 5611 5612.. 5613 5614.. bpo: 37645 5615.. date: 2019-07-21-21-08-47 5616.. nonce: 4DcUaI 5617.. section: C API 5618 5619Add :c:func:`_PyObject_FunctionStr` to get a user-friendly string 5620representation of a function-like object. Patch by Jeroen Demeyer. 5621 5622.. 5623 5624.. bpo: 29548 5625.. date: 2019-07-17-09-50-50 5626.. nonce: 5wIptQ 5627.. section: C API 5628 5629The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, 5630``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. 5631Use :c:func:`PyObject_Call` and its variants instead. 5632 5633.. 5634 5635.. bpo: 37151 5636.. date: 2019-07-16-11-02-00 5637.. nonce: YKfuNA 5638.. section: C API 5639 5640``PyCFunction_Call`` is now a deprecated alias of :c:func:`PyObject_Call`. 5641 5642.. 5643 5644.. bpo: 37540 5645.. date: 2019-07-10-12-27-28 5646.. nonce: E8Z773 5647.. section: C API 5648 5649The vectorcall protocol now requires that the caller passes only strings as 5650keyword names. 5651 5652.. 5653 5654.. bpo: 37207 5655.. date: 2019-07-07-10-37-07 5656.. nonce: SlVNky 5657.. section: C API 5658 5659The vectorcall protocol is now enabled for ``type`` objects: set 5660``tp_vectorcall`` to a vectorcall function to be used instead of ``tp_new`` 5661and ``tp_init`` when calling the class itself. 5662 5663.. 5664 5665.. bpo: 21120 5666.. date: 2019-07-06-23-56-47 5667.. nonce: lXHqlT 5668.. section: C API 5669 5670Exclude Python-ast.h, ast.h and asdl.h from the limited API. 5671 5672.. 5673 5674.. bpo: 37483 5675.. date: 2019-07-02-15-42-37 5676.. nonce: vftT4f 5677.. section: C API 5678 5679Add new function ``_PyObject_CallOneArg`` for calling an object with one 5680positional argument. 5681 5682.. 5683 5684.. bpo: 36763 5685.. date: 2019-06-28-15-49-16 5686.. nonce: zrmgki 5687.. section: C API 5688 5689Add :func:`PyConfig_SetWideStringList` function. 5690 5691.. 5692 5693.. bpo: 37337 5694.. date: 2019-06-19-12-06-31 5695.. nonce: gXIGyU 5696.. section: C API 5697 5698Add fast functions for calling methods: 5699:c:func:`_PyObject_VectorcallMethod`, :c:func:`_PyObject_CallMethodNoArgs` 5700and :c:func:`_PyObject_CallMethodOneArg`. 5701 5702.. 5703 5704.. bpo: 28805 5705.. date: 2019-06-14-14-03-51 5706.. nonce: qZC0N_ 5707.. section: C API 5708 5709The :const:`METH_FASTCALL` calling convention has been documented. 5710 5711.. 5712 5713.. bpo: 37221 5714.. date: 2019-06-11-02-50-38 5715.. nonce: 4tClQT 5716.. section: C API 5717 5718The new function :c:func:`PyCode_NewWithPosOnlyArgs` allows to create code 5719objects like :c:func:`PyCode_New`, but with an extra *posonlyargcount* 5720parameter for indicating the number of positonal-only arguments. 5721 5722.. 5723 5724.. bpo: 37215 5725.. date: 2019-06-10-15-32-34 5726.. nonce: yzoNyU 5727.. section: C API 5728 5729Fix dtrace issue introduce by bpo-36842 5730 5731.. 5732 5733.. bpo: 37194 5734.. date: 2019-06-07-14-03-52 5735.. nonce: uck7MD 5736.. section: C API 5737 5738Add a new public :c:func:`PyObject_CallNoArgs` function to the C API: call a 5739callable Python object without any arguments. It is the most efficient way 5740to call a callback without any argument. On x86-64, for example, 5741``PyObject_CallFunctionObjArgs(func, NULL)`` allocates 960 bytes on the 5742stack per call, whereas ``PyObject_CallNoArgs(func)`` only allocates 624 5743bytes per call. 5744 5745.. 5746 5747.. bpo: 37170 5748.. date: 2019-06-06-08-47-04 5749.. nonce: hO_fpM 5750.. section: C API 5751 5752Fix the cast on error in :c:func:`PyLong_AsUnsignedLongLongMask()`. 5753 5754.. 5755 5756.. bpo: 35381 5757.. date: 2019-01-18-17-05-26 5758.. nonce: 9CbeW3 5759.. section: C API 5760 5761Convert posixmodule.c statically allocated types ``DirEntryType`` and 5762``ScandirIteratorType`` to heap-allocated types. 5763 5764.. 5765 5766.. bpo: 34331 5767.. date: 2018-08-04-00-59-44 5768.. nonce: iaUkmU 5769.. section: C API 5770 5771Use singular/plural noun in error message when instantiating an abstract 5772class with non-overriden abstract method(s). 5773