1.. bpo: 40121 2.. date: 2020-03-30-23-16-25 3.. nonce: p2LIio 4.. release date: 2020-04-27 5.. section: Security 6 7Fixes audit events raised on creating a new socket. 8 9.. 10 11.. bpo: 39073 12.. date: 2020-03-15-01-28-36 13.. nonce: 6Szd3i 14.. section: Security 15 16Disallow CR or LF in email.headerregistry.Address arguments to guard against 17header injection attacks. 18 19.. 20 21.. bpo: 39503 22.. date: 2020-01-30-16-15-29 23.. nonce: B299Yq 24.. section: Security 25 26CVE-2020-8492: The :class:`~urllib.request.AbstractBasicAuthHandler` class 27of the :mod:`urllib.request` module uses an inefficient regular expression 28which can be exploited by an attacker to cause a denial of service. Fix the 29regex to prevent the catastrophic backtracking. Vulnerability reported by 30Ben Caller and Matt Schwager. 31 32.. 33 34.. bpo: 40313 35.. date: 2020-04-20-23-58-35 36.. nonce: USVRW8 37.. section: Core and Builtins 38 39Improve the performance of bytes.hex(). 40 41.. 42 43.. bpo: 40334 44.. date: 2020-04-20-14-06-19 45.. nonce: CTLGEp 46.. section: Core and Builtins 47 48Switch to a new parser, based on PEG. For more details see PEP 617. To 49temporarily switch back to the old parser, use ``-X oldparser`` or 50``PYTHONOLDPARSER=1``. In Python 3.10 we will remove the old parser 51completely, including the ``parser`` module (already deprecated) and 52anything that depends on it. 53 54.. 55 56.. bpo: 40267 57.. date: 2020-04-14-18-54-50 58.. nonce: Q2N6Bw 59.. section: Core and Builtins 60 61Fix the tokenizer to display the correct error message, when there is a 62SyntaxError on the last input character and no newline follows. It used to 63be `unexpected EOF while parsing`, while it should be `invalid syntax`. 64 65.. 66 67.. bpo: 39522 68.. date: 2020-04-14-18-47-00 69.. nonce: uVeIV_ 70.. section: Core and Builtins 71 72Correctly unparse explicit ``u`` prefix for strings when postponed 73evaluation for annotations activated. Patch by Batuhan Taskaya. 74 75.. 76 77.. bpo: 40246 78.. date: 2020-04-11-17-52-03 79.. nonce: vXPze5 80.. section: Core and Builtins 81 82Report a specialized error message, `invalid string prefix`, when the 83tokenizer encounters a string with an invalid prefix. 84 85.. 86 87.. bpo: 40082 88.. date: 2020-04-08-22-33-24 89.. nonce: WI3-lu 90.. section: Core and Builtins 91 92Fix the signal handler: it now always uses the main interpreter, rather than 93trying to get the current Python thread state. 94 95.. 96 97.. bpo: 37388 98.. date: 2020-04-07-15-44-29 99.. nonce: stlxBq 100.. section: Core and Builtins 101 102str.encode() and str.decode() no longer check the encoding and errors in 103development mode or in debug mode during Python finalization. The codecs 104machinery can no longer work on very late calls to str.encode() and 105str.decode(). 106 107.. 108 109.. bpo: 40077 110.. date: 2020-04-04-12-43-19 111.. nonce: m15TTX 112.. section: Core and Builtins 113 114Fix possible refleaks in :mod:`_json`, memo of PyScannerObject should be 115traversed. 116 117.. 118 119.. bpo: 37207 120.. date: 2020-04-02-00-25-19 121.. nonce: ZTPmKJ 122.. section: Core and Builtins 123 124Speed up calls to ``dict()`` by using the :pep:`590` ``vectorcall`` calling 125convention. 126 127.. 128 129.. bpo: 40141 130.. date: 2020-04-01-21-50-37 131.. nonce: 8fCRVj 132.. section: Core and Builtins 133 134Add column and line information to ``ast.keyword`` nodes. Patch by Pablo 135Galindo. 136 137.. 138 139.. bpo: 1635741 140.. date: 2020-04-01-00-08-18 141.. nonce: bhGWam 142.. section: Core and Builtins 143 144Port :mod:`resource` to multiphase initialization (:pep:`489`). 145 146.. 147 148.. bpo: 1635741 149.. date: 2020-03-31-22-15-04 150.. nonce: 8Ir1a0 151.. section: Core and Builtins 152 153Port :mod:`math` to multiphase initialization (:pep:`489`). 154 155.. 156 157.. bpo: 1635741 158.. date: 2020-03-31-21-12-27 159.. nonce: S2nkF3 160.. section: Core and Builtins 161 162Port _uuid module to multiphase initialization (:pep:`489`). 163 164.. 165 166.. bpo: 40077 167.. date: 2020-03-27-01-11-08 168.. nonce: wT002V 169.. section: Core and Builtins 170 171Convert json module to use :c:func:`PyType_FromSpec`. 172 173.. 174 175.. bpo: 40067 176.. date: 2020-03-25-20-34-01 177.. nonce: 0bFda2 178.. section: Core and Builtins 179 180Improve the error message for multiple star expressions in an assignment. 181Patch by Furkan Onder 182 183.. 184 185.. bpo: 1635741 186.. date: 2020-03-24-22-26-26 187.. nonce: AB38ot 188.. section: Core and Builtins 189 190Port _functools module to multiphase initialization (PEP 489). Patch by 191Paulo Henrique Silva. 192 193.. 194 195.. bpo: 1635741 196.. date: 2020-03-24-22-17-12 197.. nonce: jWaMRV 198.. section: Core and Builtins 199 200Port operator module to multiphase initialization (PEP 489). Patch by Paulo 201Henrique Silva. 202 203.. 204 205.. bpo: 20526 206.. date: 2020-03-23-18-08-34 207.. nonce: NHNZIv 208.. section: Core and Builtins 209 210Fix :c:func:`PyThreadState_Clear()`. ``PyThreadState.frame`` is a borrowed 211reference, not a strong reference: ``PyThreadState_Clear()`` must not call 212``Py_CLEAR(tstate->frame)``. 213 214.. 215 216.. bpo: 1635741 217.. date: 2020-03-22-01-01-41 218.. nonce: gR7Igp 219.. section: Core and Builtins 220 221Port time module to multiphase initialization (:pep:`489`). Patch by Paulo 222Henrique Silva. 223 224.. 225 226.. bpo: 1635741 227.. date: 2020-03-20-13-42-35 228.. nonce: bhIu5M 229.. section: Core and Builtins 230 231Port _weakref extension module to multiphase initialization (:pep:`489`). 232 233.. 234 235.. bpo: 40020 236.. date: 2020-03-19-21-53-41 237.. nonce: n-26G7 238.. section: Core and Builtins 239 240Fix a leak and subsequent crash in parsetok.c caused by realloc misuse on a 241rare codepath. 242 243.. 244 245.. bpo: 39939 246.. date: 2020-03-11-19-17-36 247.. nonce: NwCnAM 248.. section: Core and Builtins 249 250Added str.removeprefix and str.removesuffix methods and corresponding bytes, 251bytearray, and collections.UserString methods to remove affixes from a 252string if present. See :pep:`616` for a full description. Patch by Dennis 253Sweeney. 254 255.. 256 257.. bpo: 39481 258.. date: 2020-01-28-17-19-18 259.. nonce: rqSeGl 260.. section: Core and Builtins 261 262Implement PEP 585. This supports list[int], tuple[str, ...] etc. 263 264.. 265 266.. bpo: 32894 267.. date: 2019-12-01-21-36-49 268.. nonce: 5g_UQr 269.. section: Core and Builtins 270 271Support unparsing of infinity numbers in postponed annotations. Patch by 272Batuhan Taşkaya. 273 274.. 275 276.. bpo: 37207 277.. date: 2019-06-09-10-54-31 278.. nonce: bLjgLS 279.. section: Core and Builtins 280 281Speed up calls to ``list()`` by using the :pep:`590` ``vectorcall`` calling 282convention. Patch by Mark Shannon. 283 284.. 285 286.. bpo: 40398 287.. date: 2020-04-26-22-25-36 288.. nonce: OdXnR3 289.. section: Library 290 291:func:`typing.get_args` now always returns an empty tuple for special 292generic aliases. 293 294.. 295 296.. bpo: 40396 297.. date: 2020-04-26-19-07-40 298.. nonce: Fn-is1 299.. section: Library 300 301Functions :func:`typing.get_origin`, :func:`typing.get_args` and 302:func:`typing.get_type_hints` support now generic aliases like 303``list[int]``. 304 305.. 306 307.. bpo: 38061 308.. date: 2020-04-24-01-55-00 309.. nonce: XmULB3 310.. section: Library 311 312Optimize the :mod:`subprocess` module on FreeBSD using ``closefrom()``. A 313single ``close(fd)`` syscall is cheap, but when ``sysconf(_SC_OPEN_MAX)`` is 314high, the loop calling ``close(fd)`` on each file descriptor can take 315several milliseconds. 316 317The workaround on FreeBSD to improve performance was to load and mount the 318fdescfs kernel module, but this is not enabled by default. 319 320Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans (kevans) 321and Kubilay Kocak (koobs): 322https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274 323 324.. 325 326.. bpo: 38061 327.. date: 2020-04-24-01-27-08 328.. nonce: cdlkMz 329.. section: Library 330 331On FreeBSD, ``os.closerange(fd_low, fd_high)`` now calls 332``closefrom(fd_low)`` if *fd_high* is greater than or equal to 333``sysconf(_SC_OPEN_MAX)``. 334 335Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans (kevans) 336and Kubilay Kocak (koobs): 337https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274 338 339.. 340 341.. bpo: 40360 342.. date: 2020-04-22-20-55-17 343.. nonce: Er8sv- 344.. section: Library 345 346The :mod:`lib2to3` module is pending deprecation due to :pep:`617`. 347 348.. 349 350.. bpo: 40138 351.. date: 2020-04-22-00-05-10 352.. nonce: i_oGqa 353.. section: Library 354 355Fix the Windows implementation of :func:`os.waitpid` for exit code larger 356than ``INT_MAX >> 8``. The exit status is now interpreted as an unsigned 357number. 358 359.. 360 361.. bpo: 39942 362.. date: 2020-04-20-20-16-02 363.. nonce: NvGnTc 364.. section: Library 365 366Set "__main__" as the default module name when "__name__" is missing in 367:class:`typing.TypeVar`. Patch by Weipeng Hong. 368 369.. 370 371.. bpo: 40275 372.. date: 2020-04-20-19-06-55 373.. nonce: 9UcN2g 374.. section: Library 375 376The :mod:`logging` package is now imported lazily in :mod:`unittest` only 377when the :meth:`~unittest.TestCase.assertLogs` assertion is used. 378 379.. 380 381.. bpo: 40275 382.. date: 2020-04-20-18-50-25 383.. nonce: Ofk6J8 384.. section: Library 385 386The :mod:`asyncio` package is now imported lazily in :mod:`unittest` only 387when the :class:`~unittest.IsolatedAsyncioTestCase` class is used. 388 389.. 390 391.. bpo: 40330 392.. date: 2020-04-19-17-31-29 393.. nonce: DGjoIS 394.. section: Library 395 396In :meth:`ShareableList.__setitem__`, check the size of a new string item 397after encoding it to utf-8, not before. 398 399.. 400 401.. bpo: 40148 402.. date: 2020-04-19-14-16-43 403.. nonce: pDZR6V 404.. section: Library 405 406Added :meth:`pathlib.Path.with_stem()` to create a new Path with the stem 407replaced. 408 409.. 410 411.. bpo: 40325 412.. date: 2020-04-18-19-40-00 413.. nonce: KWSvix 414.. section: Library 415 416Deprecated support for set objects in random.sample(). 417 418.. 419 420.. bpo: 40257 421.. date: 2020-04-18-10-52-15 422.. nonce: lv4WTq 423.. section: Library 424 425Improved help for the :mod:`typing` module. Docstrings are now shown for all 426special forms and special generic aliases (like ``Union`` and ``List``). 427Using ``help()`` with generic alias like ``List[int]`` will show the help 428for the correspondent concrete type (``list`` in this case). 429 430.. 431 432.. bpo: 40257 433.. date: 2020-04-15-19-34-11 434.. nonce: ux8FUr 435.. section: Library 436 437func:`inspect.getdoc` no longer returns docstring inherited from the type of 438the object or from parent class if it is a class if it is not defined in the 439object itself. In :mod:`pydoc` the documentation string is now shown not 440only for class, function, method etc, but for any object that has its own 441``__doc__`` attribute. 442 443.. 444 445.. bpo: 40287 446.. date: 2020-04-15-17-21-48 447.. nonce: -mkEJH 448.. section: Library 449 450Fixed ``SpooledTemporaryFile.seek()`` to return the position. 451 452.. 453 454.. bpo: 40290 455.. date: 2020-04-15-16-43-48 456.. nonce: eqCMGJ 457.. section: Library 458 459Added zscore() to statistics.NormalDist(). 460 461.. 462 463.. bpo: 40282 464.. date: 2020-04-15-10-23-52 465.. nonce: rIYJmu 466.. section: Library 467 468Allow ``random.getrandbits(0)`` to succeed and to return 0. 469 470.. 471 472.. bpo: 40286 473.. date: 2020-04-15-00-39-25 474.. nonce: ai80FA 475.. section: Library 476 477Add :func:`random.randbytes` function and :meth:`random.Random.randbytes` 478method to generate random bytes. 479 480.. 481 482.. bpo: 40277 483.. date: 2020-04-14-21-53-18 484.. nonce: NknSaf 485.. section: Library 486 487:func:`collections.namedtuple` now provides a human-readable repr for its 488field accessors. 489 490.. 491 492.. bpo: 40270 493.. date: 2020-04-14-16-18-49 494.. nonce: XVJzeG 495.. section: Library 496 497The included copy of sqlite3 on Windows is now compiled with the json 498extension. This allows the use of functions such as ``json_object``. 499 500.. 501 502.. bpo: 29255 503.. date: 2020-04-14-11-31-07 504.. nonce: 4EcyIN 505.. section: Library 506 507Wait in `KqueueSelector.select` when no fds are registered 508 509.. 510 511.. bpo: 40260 512.. date: 2020-04-12-21-18-56 513.. nonce: F6VWaE 514.. section: Library 515 516Ensure :mod:`modulefinder` uses :func:`io.open_code` and respects coding 517comments. 518 519.. 520 521.. bpo: 40234 522.. date: 2020-04-10-16-13-47 523.. nonce: tar4d_ 524.. section: Library 525 526Allow again to spawn daemon threads in subinterpreters (revert change which 527denied them). 528 529.. 530 531.. bpo: 39207 532.. date: 2020-04-10-01-24-58 533.. nonce: 2dE5Ox 534.. section: Library 535 536Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned 537on demand, only when there are no available idle workers to reuse. This 538optimizes startup overhead and reduces the amount of lost CPU time to idle 539workers. Patch by Kyle Stanley. 540 541.. 542 543.. bpo: 40091 544.. date: 2020-04-07-23-26-25 545.. nonce: 5M9AW5 546.. section: Library 547 548Fix a hang at fork in the logging module: the new private _at_fork_reinit() 549method is now used to reinitialize locks at fork in the child process. 550 551.. 552 553.. bpo: 40149 554.. date: 2020-04-07-18-06-38 555.. nonce: mMU2iu 556.. section: Library 557 558Implement traverse and clear slots in _abc._abc_data type. 559 560.. 561 562.. bpo: 40208 563.. date: 2020-04-06-20-09-33 564.. nonce: 3rO_q7 565.. section: Library 566 567Remove deprecated :meth:`symtable.SymbolTable.has_exec`. 568 569.. 570 571.. bpo: 40196 572.. date: 2020-04-06-11-05-13 573.. nonce: Jqowse 574.. section: Library 575 576Fix a bug in the :mod:`symtable` module that was causing incorrectly report 577global variables as local. Patch by Pablo Galindo. 578 579.. 580 581.. bpo: 40190 582.. date: 2020-04-05-02-58-17 583.. nonce: HF3OWo 584.. section: Library 585 586Add support for ``_SC_AIX_REALMEM`` to :func:`posix.sysconf`. 587 588.. 589 590.. bpo: 40182 591.. date: 2020-04-04-23-44-09 592.. nonce: Bf_kFN 593.. section: Library 594 595Removed the ``_field_types`` attribute of the :class:`typing.NamedTuple` 596class. 597 598.. 599 600.. bpo: 36517 601.. date: 2020-04-04-17-49-39 602.. nonce: Ilj1IJ 603.. section: Library 604 605Multiple inheritance with :class:`typing.NamedTuple` now raises an error 606instead of silently ignoring other types. 607 608.. 609 610.. bpo: 40126 611.. date: 2020-04-04-00-47-40 612.. nonce: Y-bTNP 613.. section: Library 614 615Fixed reverting multiple patches in unittest.mock. Patcher's ``__exit__()`` 616is now never called if its ``__enter__()`` is failed. Returning true from 617``__exit__()`` silences now the exception. 618 619.. 620 621.. bpo: 40094 622.. date: 2020-04-02-01-13-28 623.. nonce: AeZ34K 624.. section: Library 625 626CGIHTTPRequestHandler of http.server now logs the CGI script exit code, 627rather than the CGI script exit status of os.waitpid(). For example, if the 628script is killed by signal 11, it now logs: "CGI script exit code -11." 629 630.. 631 632.. bpo: 40108 633.. date: 2020-03-31-01-11-20 634.. nonce: EGDVQ_ 635.. section: Library 636 637Improve the error message when triying to import a module using :mod:`runpy` 638and incorrently use the ".py" extension at the end of the module name. Patch 639by Pablo Galindo. 640 641.. 642 643.. bpo: 40094 644.. date: 2020-03-28-18-25-49 645.. nonce: v-wQIU 646.. section: Library 647 648Add :func:`os.waitstatus_to_exitcode` function: convert a wait status to an 649exit code. 650 651.. 652 653.. bpo: 40089 654.. date: 2020-03-27-17-22-34 655.. nonce: -lFsD0 656.. section: Library 657 658Fix threading._after_fork(): if fork was not called by a thread spawned by 659threading.Thread, threading._after_fork() now creates a _MainThread instance 660for _main_thread, instead of a _DummyThread instance. 661 662.. 663 664.. bpo: 40089 665.. date: 2020-03-27-16-54-29 666.. nonce: VTq_8s 667.. section: Library 668 669Add a private ``_at_fork_reinit()`` method to :class:`_thread.Lock`, 670:class:`_thread.RLock`, :class:`threading.RLock` and 671:class:`threading.Condition` classes: reinitialize the lock at fork in the 672child process, reset the lock to the unlocked state. Rename also the private 673``_reset_internal_locks()`` method of :class:`threading.Event` to 674``_at_fork_reinit()``. 675 676.. 677 678.. bpo: 25780 679.. date: 2020-03-27-08-57-46 680.. nonce: kIjVge 681.. section: Library 682 683Expose :data:`~socket.CAN_RAW_JOIN_FILTERS` in the :mod:`socket` module. 684 685.. 686 687.. bpo: 39503 688.. date: 2020-03-25-16-02-16 689.. nonce: YmMbYn 690.. section: Library 691 692:class:`~urllib.request.AbstractBasicAuthHandler` of :mod:`urllib.request` 693now parses all WWW-Authenticate HTTP headers and accepts multiple challenges 694per header: use the realm of the first Basic challenge. 695 696.. 697 698.. bpo: 39812 699.. date: 2020-03-25-00-35-48 700.. nonce: rIKnms 701.. section: Library 702 703Removed daemon threads from :mod:`concurrent.futures` by adding an internal 704`threading._register_atexit()`, which calls registered functions prior to 705joining all non-daemon threads. This allows for compatibility with 706subinterpreters, which don't support daemon threads. 707 708.. 709 710.. bpo: 40050 711.. date: 2020-03-24-16-17-20 712.. nonce: 6GrOlz 713.. section: Library 714 715Fix ``importlib._bootstrap_external``: avoid creating a new ``winreg`` 716builtin module if it's already available in :data:`sys.modules`, and remove 717redundant imports. 718 719.. 720 721.. bpo: 40014 722.. date: 2020-03-23-17-52-00 723.. nonce: Ya70VG 724.. section: Library 725 726Fix ``os.getgrouplist()``: if ``getgrouplist()`` function fails because the 727group list is too small, retry with a larger group list. On failure, the 728glibc implementation of ``getgrouplist()`` sets ``ngroups`` to the total 729number of groups. For other implementations, double the group list size. 730 731.. 732 733.. bpo: 40017 734.. date: 2020-03-21-00-46-18 735.. nonce: HFpHZS 736.. section: Library 737 738Add :data:`time.CLOCK_TAI` constant if the operating system support it. 739 740.. 741 742.. bpo: 40016 743.. date: 2020-03-19-19-40-27 744.. nonce: JWtxqJ 745.. section: Library 746 747In re docstring, clarify the relationship between inline and argument 748compile flags. 749 750.. 751 752.. bpo: 39953 753.. date: 2020-03-19-16-33-03 754.. nonce: yy5lC_ 755.. section: Library 756 757Update internal table of OpenSSL error codes in the ``ssl`` module. 758 759.. 760 761.. bpo: 36144 762.. date: 2020-03-18-14-51-41 763.. nonce: lQm_RK 764.. section: Library 765 766Added :pep:`584` operators to :class:`weakref.WeakValueDictionary`. 767 768.. 769 770.. bpo: 36144 771.. date: 2020-03-18-14-02-58 772.. nonce: ooyn6Z 773.. section: Library 774 775Added :pep:`584` operators to :class:`weakref.WeakKeyDictionary`. 776 777.. 778 779.. bpo: 38891 780.. date: 2020-03-15-08-06-05 781.. nonce: 56Yokh 782.. section: Library 783 784Fix linear runtime behaviour of the `__getitem__` and `__setitem__` methods 785in :class:`multiprocessing.shared_memory.ShareableList`. This avoids 786quadratic performance when iterating a `ShareableList`. Patch by Thomas 787Krennwallner. 788 789.. 790 791.. bpo: 39682 792.. date: 2020-03-08-11-00-01 793.. nonce: AxXZNz 794.. section: Library 795 796Remove undocumented support for *closing* a `pathlib.Path` object via its 797context manager. The context manager magic methods remain, but they are now 798a no-op, making `Path` objects immutable. 799 800.. 801 802.. bpo: 36144 803.. date: 2020-03-07-11-26-08 804.. nonce: FG9jqy 805.. section: Library 806 807Added :pep:`584` operators (``|`` and ``|=``) to 808:class:`collections.ChainMap`. 809 810.. 811 812.. bpo: 39011 813.. date: 2020-02-12-01-48-51 814.. nonce: hGve_t 815.. section: Library 816 817Normalization of line endings in ElementTree attributes was removed, as line 818endings which were replaced by entity numbers should be preserved in 819original form. 820 821.. 822 823.. bpo: 38410 824.. date: 2019-10-09-08-14-25 825.. nonce: _YyoMV 826.. section: Library 827 828Properly handle :func:`sys.audit` failures in 829:func:`sys.set_asyncgen_hooks`. 830 831.. 832 833.. bpo: 36541 834.. date: 2019-06-18-19-38-27 835.. nonce: XI8mi1 836.. section: Library 837 838lib2to3 now recognizes named assignment expressions (the walrus operator, 839``:=``) 840 841.. 842 843.. bpo: 35967 844.. date: 2019-04-14-14-11-07 845.. nonce: KUMT9E 846.. section: Library 847 848In platform, delay the invocation of 'uname -p' until the processor 849attribute is requested. 850 851.. 852 853.. bpo: 35113 854.. date: 2018-11-03-16-18-20 855.. nonce: vwvWKG 856.. section: Library 857 858:meth:`inspect.getsource` now returns correct source code for inner class 859with same name as module level class. Decorators are also returned as part 860of source of the class. Patch by Karthikeyan Singaravelan. 861 862.. 863 864.. bpo: 33262 865.. date: 2018-04-17-13-23-29 866.. nonce: vHC7YQ 867.. section: Library 868 869Deprecate passing None as an argument for :func:`shlex.split()`'s ``s`` 870parameter. Patch by Zackery Spytz. 871 872.. 873 874.. bpo: 31758 875.. date: 2017-10-14-21-02-40 876.. nonce: 563ZZb 877.. section: Library 878 879Prevent crashes when using an uninitialized ``_elementtree.XMLParser`` 880object. Patch by Oren Milman. 881 882.. 883 884.. bpo: 27635 885.. date: 2020-04-01-00-27-03 886.. nonce: VwxUty 887.. section: Documentation 888 889The pickle documentation incorrectly claimed that ``__new__`` isn't called 890by default when unpickling. 891 892.. 893 894.. bpo: 39879 895.. date: 2020-03-16-18-12-02 896.. nonce: CnQ7Cv 897.. section: Documentation 898 899Updated :ref:`datamodel` docs to include :func:`dict` insertion order 900preservation. Patch by Furkan Onder and Samy Lahfa. 901 902.. 903 904.. bpo: 38387 905.. date: 2019-10-06-23-44-15 906.. nonce: fZoq0S 907.. section: Documentation 908 909Document :c:macro:`PyDoc_STRVAR` macro in the C-API reference. 910 911.. 912 913.. bpo: 13743 914.. date: 2019-09-25-23-20-55 915.. nonce: 5ToLDy 916.. section: Documentation 917 918Some methods within xml.dom.minidom.Element class are now better documented. 919 920.. 921 922.. bpo: 31904 923.. date: 2020-04-09-16-29-18 924.. nonce: ej348T 925.. section: Tests 926 927Set expected default encoding in test_c_locale_coercion.py for VxWorks RTOS. 928 929.. 930 931.. bpo: 40162 932.. date: 2020-04-03-02-40-16 933.. nonce: v3pQW_ 934.. section: Tests 935 936Update Travis CI configuration to OpenSSL 1.1.1f. 937 938.. 939 940.. bpo: 40146 941.. date: 2020-04-02-02-14-37 942.. nonce: J-Yo9G 943.. section: Tests 944 945Update OpenSSL to 1.1.1f in Azure Pipelines. 946 947.. 948 949.. bpo: 40094 950.. date: 2020-03-31-18-57-52 951.. nonce: m3fTJe 952.. section: Tests 953 954Add :func:`test.support.wait_process` function. 955 956.. 957 958.. bpo: 40003 959.. date: 2020-03-31-16-07-15 960.. nonce: SOruLY 961.. section: Tests 962 963``test.bisect_cmd`` now copies Python command line options like ``-O`` or 964``-W``. Moreover, emit a warning if ``test.bisect_cmd`` is used with 965``-w``/``--verbose2`` option. 966 967.. 968 969.. bpo: 39380 970.. date: 2020-03-22-20-00-04 971.. nonce: ZXlRQU 972.. section: Tests 973 974Add the encoding in :class:`ftplib.FTP` and :class:`ftplib.FTP_TLS` to the 975constructor as keyword-only and change the default from ``latin-1`` to 976``utf-8`` to follow :rfc:`2640`. 977 978.. 979 980.. bpo: 39793 981.. date: 2020-02-29-12-58-17 982.. nonce: Og2SUN 983.. section: Tests 984 985Use the same domain when testing ``make_msgid``. Patch by Batuhan Taskaya. 986 987.. 988 989.. bpo: 1812 990.. date: 2019-11-25-21-46-47 991.. nonce: sAbTbY 992.. section: Tests 993 994Fix newline handling in doctest.testfile when loading from a package whose 995loader has a get_data method. Patch by Peter Donis. 996 997.. 998 999.. bpo: 38360 1000.. date: 2020-04-22-02-33-54 1001.. nonce: 74C68u 1002.. section: Build 1003 1004Support single-argument form of macOS -isysroot flag. 1005 1006.. 1007 1008.. bpo: 40158 1009.. date: 2020-04-03-17-54-33 1010.. nonce: MWUTs4 1011.. section: Build 1012 1013Fix CPython MSBuild Properties in NuGet Package (build/native/python.props) 1014 1015.. 1016 1017.. bpo: 38527 1018.. date: 2020-03-28-10-43-09 1019.. nonce: fqCRgD 1020.. section: Build 1021 1022Fix configure check on Solaris for "float word ordering": sometimes, the 1023correct "grep" command was not being used. Patch by Arnon Yaari. 1024 1025.. 1026 1027.. bpo: 40164 1028.. date: 2020-04-04-13-13-44 1029.. nonce: SPrSn5 1030.. section: Windows 1031 1032Updates Windows to OpenSSL 1.1.1f 1033 1034.. 1035 1036.. bpo: 8901 1037.. date: 2020-01-24-09-15-41 1038.. nonce: hVnhGO 1039.. section: Windows 1040 1041Ignore the Windows registry when the ``-E`` option is used. 1042 1043.. 1044 1045.. bpo: 38329 1046.. date: 2020-04-22-03-39-22 1047.. nonce: H0a8JV 1048.. section: macOS 1049 1050python.org macOS installers now update the Current version symlink of 1051/Library/Frameworks/Python.framework/Versions for 3.9 installs. Previously, 1052Current was only updated for Python 2.x installs. This should make it easier 1053to embed Python 3 into other macOS applications. 1054 1055.. 1056 1057.. bpo: 40164 1058.. date: 2020-04-21-19-46-35 1059.. nonce: 6HA6IC 1060.. section: macOS 1061 1062Update macOS installer builds to use OpenSSL 1.1.1g. 1063 1064.. 1065 1066.. bpo: 38439 1067.. date: 2019-12-05-14-20-53 1068.. nonce: j_L2PI 1069.. section: IDLE 1070 1071Add a 256×256 pixel IDLE icon to support more modern environments. Created 1072by Andrew Clover. Delete the unused macOS idle.icns icon file. 1073 1074.. 1075 1076.. bpo: 38689 1077.. date: 2019-11-14-12-59-19 1078.. nonce: Lgfxva 1079.. section: IDLE 1080 1081IDLE will no longer freeze when inspect.signature fails when fetching a 1082calltip. 1083 1084.. 1085 1086.. bpo: 40385 1087.. date: 2020-04-24-21-08-19 1088.. nonce: nWIQdq 1089.. section: Tools/Demos 1090 1091Removed the checkpyc.py tool. Please see compileall without force mode as a 1092potential alternative. 1093 1094.. 1095 1096.. bpo: 40179 1097.. date: 2020-04-04-19-35-22 1098.. nonce: u9FH10 1099.. section: Tools/Demos 1100 1101Fixed translation of ``#elif`` in Argument Clinic. 1102 1103.. 1104 1105.. bpo: 40094 1106.. date: 2020-04-02-01-22-21 1107.. nonce: 1XQQF6 1108.. section: Tools/Demos 1109 1110Fix ``which.py`` script exit code: it now uses 1111:func:`os.waitstatus_to_exitcode` to convert :func:`os.system` exit status 1112into an exit code. 1113 1114.. 1115 1116.. bpo: 40241 1117.. date: 2020-04-13-02-56-24 1118.. nonce: _FOf7E 1119.. section: C API 1120 1121Move the :c:type:`PyGC_Head` structure to the internal C API. 1122 1123.. 1124 1125.. bpo: 40170 1126.. date: 2020-04-11-06-12-44 1127.. nonce: cmM9oK 1128.. section: C API 1129 1130Convert :c:func:`PyObject_IS_GC` macro to a function to hide implementation 1131details. 1132 1133.. 1134 1135.. bpo: 40241 1136.. date: 2020-04-10-19-43-04 1137.. nonce: Xm3w-1 1138.. section: C API 1139 1140Add the functions :c:func:`PyObject_GC_IsTracked` and 1141:c:func:`PyObject_GC_IsFinalized` to the public API to allow to query if 1142Python objects are being currently tracked or have been already finalized by 1143the garbage collector respectively. Patch by Pablo Galindo. 1144 1145.. 1146 1147.. bpo: 40170 1148.. date: 2020-04-05-00-37-34 1149.. nonce: Seuh3D 1150.. section: C API 1151 1152The :c:func:`PyObject_NEW` macro becomes an alias to the 1153:c:func:`PyObject_New` macro, and the :c:func:`PyObject_NEW_VAR` macro 1154becomes an alias to the :c:func:`PyObject_NewVar` macro, to hide 1155implementation details. They no longer access directly the 1156:c:member:`PyTypeObject.tp_basicsize` member. 1157 1158.. 1159 1160.. bpo: 40170 1161.. date: 2020-04-05-00-21-38 1162.. nonce: Tx0vy6 1163.. section: C API 1164 1165:c:func:`PyType_HasFeature` now always calls :c:func:`PyType_GetFlags` to 1166hide implementation details. Previously, it accessed directly the 1167:c:member:`PyTypeObject.tp_flags` member when the limited C API was not 1168used. 1169 1170.. 1171 1172.. bpo: 40170 1173.. date: 2020-04-05-00-10-45 1174.. nonce: 6nFYbY 1175.. section: C API 1176 1177Convert the :c:func:`PyObject_GET_WEAKREFS_LISTPTR` macro to a function to 1178hide implementation details: the macro accessed directly to the 1179:c:member:`PyTypeObject.tp_weaklistoffset` member. 1180 1181.. 1182 1183.. bpo: 40170 1184.. date: 2020-04-05-00-02-13 1185.. nonce: IFsGZ- 1186.. section: C API 1187 1188Convert :c:func:`PyObject_CheckBuffer` macro to a function to hide 1189implementation details: the macro accessed directly the 1190:c:member:`PyTypeObject.tp_as_buffer` member. 1191 1192.. 1193 1194.. bpo: 40170 1195.. date: 2020-04-04-23-51-59 1196.. nonce: uXQ701 1197.. section: C API 1198 1199Always declare :c:func:`PyIndex_Check` as an opaque function to hide 1200implementation details: remove ``PyIndex_Check()`` macro. The macro accessed 1201directly the :c:member:`PyTypeObject.tp_as_number` member. 1202 1203.. 1204 1205.. bpo: 39947 1206.. date: 2020-03-25-19-44-55 1207.. nonce: 2OxvPt 1208.. section: C API 1209 1210Add :c:func:`PyThreadState_GetID` function: get the unique identifier of a 1211Python thread state. 1212