1.. bpo: 32703 2.. date: 2018-01-29-01-15-17 3.. nonce: mwrF4- 4.. release date: 2018-01-30 5.. section: Core and Builtins 6 7Fix coroutine's ResourceWarning when there's an active error set when it's 8being finalized. 9 10.. 11 12.. bpo: 32650 13.. date: 2018-01-28-23-01-39 14.. nonce: Bbi7ek 15.. section: Core and Builtins 16 17Pdb and other debuggers dependent on bdb.py will correctly step over (next 18command) native coroutines. Patch by Pablo Galindo. 19 20.. 21 22.. bpo: 28685 23.. date: 2018-01-28-15-09-33 24.. nonce: cHThLM 25.. section: Core and Builtins 26 27Optimize list.sort() and sorted() by using type specialized comparisons when 28possible. 29 30.. 31 32.. bpo: 32685 33.. date: 2018-01-28-12-25-06 34.. nonce: nGctze 35.. section: Core and Builtins 36 37Improve suggestion when the Python 2 form of print statement is either 38present on the same line as the header of a compound statement or else 39terminated by a semi-colon instead of a newline. Patch by Nitish Chandra. 40 41.. 42 43.. bpo: 32697 44.. date: 2018-01-28-09-52-12 45.. nonce: RHlu6k 46.. section: Core and Builtins 47 48Python now explicitly preserves the definition order of keyword-only 49parameters. It's always preserved their order, but this behavior was never 50guaranteed before; this behavior is now guaranteed and tested. 51 52.. 53 54.. bpo: 32690 55.. date: 2018-01-28-09-26-07 56.. nonce: 8i9g5P 57.. section: Core and Builtins 58 59The locals() dictionary now displays in the lexical order that variables 60were defined. Previously, the order was reversed. 61 62.. 63 64.. bpo: 32677 65.. date: 2018-01-26-20-11-09 66.. nonce: xTGfCq 67.. section: Core and Builtins 68 69Add ``.isascii()`` method to ``str``, ``bytes`` and ``bytearray``. It can be 70used to test that string contains only ASCII characters. 71 72.. 73 74.. bpo: 32670 75.. date: 2018-01-25-17-03-46 76.. nonce: YsqJUC 77.. section: Core and Builtins 78 79Enforce :pep:`479` for all code. 80This means that manually raising a StopIteration exception from a generator 81is prohibited for all code, regardless of whether 'from __future__ import 82generator_stop' was used or not. 83 84.. 85 86.. bpo: 32591 87.. date: 2018-01-20-00-50-33 88.. nonce: 666kl6 89.. section: Core and Builtins 90 91Added built-in support for tracking the origin of coroutine objects; see 92sys.set_coroutine_origin_tracking_depth and CoroutineType.cr_origin. This 93replaces the asyncio debug mode's use of coroutine wrapping for native 94coroutine objects. 95 96.. 97 98.. bpo: 31368 99.. date: 2018-01-19-01-54-22 100.. nonce: kzKqUR 101.. section: Core and Builtins 102 103Expose preadv and pwritev system calls in the os module. Patch by Pablo 104Galindo 105 106.. 107 108.. bpo: 32544 109.. date: 2018-01-16-18-51-58 110.. nonce: ga-cFE 111.. section: Core and Builtins 112 113``hasattr(obj, name)`` and ``getattr(obj, name, default)`` are about 4 times 114faster than before when ``name`` is not found and ``obj`` doesn't override 115``__getattr__`` or ``__getattribute__``. 116 117.. 118 119.. bpo: 26163 120.. date: 2018-01-14-20-32-47 121.. nonce: xv9Iuv 122.. section: Core and Builtins 123 124Improved frozenset() hash to create more distinct hash values when faced 125with datasets containing many similar values. 126 127.. 128 129.. bpo: 32550 130.. date: 2018-01-14-12-42-17 131.. nonce: k0EK-4 132.. section: Core and Builtins 133 134Remove the STORE_ANNOTATION bytecode. 135 136.. 137 138.. bpo: 20104 139.. date: 2018-01-06-01-14-53 140.. nonce: 9DkKb8 141.. section: Core and Builtins 142 143Expose posix_spawn as a low level API in the os module. 144(removed before 3.7.0rc1) 145 146.. 147 148.. bpo: 24340 149.. date: 2018-01-01-21-59-31 150.. nonce: hmKBvg 151.. section: Core and Builtins 152 153Fixed estimation of the code stack size. 154 155.. 156 157.. bpo: 32436 158.. date: 2017-12-28-00-20-42 159.. nonce: H159Jv 160.. section: Core and Builtins 161 162Implement :pep:`567` Context Variables. 163 164.. 165 166.. bpo: 18533 167.. date: 2017-12-13-16-46-23 168.. nonce: Dlk8d7 169.. section: Core and Builtins 170 171``repr()`` on a dict containing its own ``values()`` or ``items()`` no 172longer raises ``RecursionError``; OrderedDict similarly. Instead, use 173``...``, as for other recursive structures. Patch by Ben North. 174 175.. 176 177.. bpo: 20891 178.. date: 2017-12-04-18-34-11 179.. nonce: C2TsfR 180.. section: Core and Builtins 181 182Py_Initialize() now creates the GIL. The GIL is no longer created "on 183demand" to fix a race condition when PyGILState_Ensure() is called in a 184non-Python thread. 185 186.. 187 188.. bpo: 32028 189.. date: 2017-12-03-22-29-13 190.. nonce: KC2w4Q 191.. section: Core and Builtins 192 193Leading whitespace is now correctly ignored when generating suggestions for 194converting Py2 print statements to Py3 builtin print function calls. Patch 195by Sanyam Khurana. 196 197.. 198 199.. bpo: 31179 200.. date: 2017-08-10-17-32-48 201.. nonce: XcgLYI 202.. section: Core and Builtins 203 204Make dict.copy() up to 5.5 times faster. 205 206.. 207 208.. bpo: 31113 209.. date: 2017-08-07-16-46-56 210.. nonce: XgNEFg 211.. section: Core and Builtins 212 213Get rid of recursion in the compiler for normal control flow. 214 215.. 216 217.. bpo: 25988 218.. date: 2018-01-28-23-48-45 219.. nonce: I9uBct 220.. section: Library 221 222Deprecate exposing the contents of collections.abc in the regular 223collections module. 224 225.. 226 227.. bpo: 31429 228.. date: 2018-01-28-22-40-05 229.. nonce: qNt8rQ 230.. section: Library 231 232The default cipher suite selection of the ssl module now uses a blacklist 233approach rather than a hard-coded whitelist. Python no longer re-enables 234ciphers that have been blocked by OpenSSL security update. Default cipher 235suite selection can be configured on compile time. 236 237.. 238 239.. bpo: 30306 240.. date: 2018-01-28-14-10-51 241.. nonce: TmKMXi 242.. section: Library 243 244contextlib.contextmanager now releases the arguments passed to the 245underlying generator as soon as the context manager is entered. Previously 246it would keep them alive for as long as the context manager was alive, even 247when not being used as a function decorator. Patch by Martin Teichmann. 248 249.. 250 251.. bpo: 21417 252.. date: 2018-01-28-07-55-10 253.. nonce: JFnV99 254.. section: Library 255 256Added support for setting the compression level for zipfile.ZipFile. 257 258.. 259 260.. bpo: 32251 261.. date: 2018-01-28-01-21-47 262.. nonce: fOA5qB 263.. section: Library 264 265Implement asyncio.BufferedProtocol (provisional API). 266 267.. 268 269.. bpo: 32513 270.. date: 2018-01-27-11-20-16 271.. nonce: ak-iD2 272.. section: Library 273 274In dataclasses, allow easier overriding of dunder methods without specifying 275decorator parameters. 276 277.. 278 279.. bpo: 32660 280.. date: 2018-01-26-01-26-00 281.. nonce: tVJIWV 282.. section: Library 283 284:mod:`termios` makes available ``FIONREAD``, ``FIONCLEX``, ``FIOCLEX``, 285``FIOASYNC`` and ``FIONBIO`` also under Solaris/derivatives. 286 287.. 288 289.. bpo: 27931 290.. date: 2018-01-25-21-04-11 291.. nonce: e4r52t 292.. section: Library 293 294Fix email address header parsing error when the username is an empty quoted 295string. Patch by Xiang Zhang. 296 297.. 298 299.. bpo: 32659 300.. date: 2018-01-25-03-46-00 301.. nonce: VHYoON 302.. section: Library 303 304Under Solaris and derivatives, :class:`os.stat_result` provides a st_fstype 305attribute. 306 307.. 308 309.. bpo: 32662 310.. date: 2018-01-25-01-45-30 311.. nonce: oabhd8 312.. section: Library 313 314Implement Server.start_serving(), Server.serve_forever(), and 315Server.is_serving() methods. Add 'start_serving' keyword parameter to 316loop.create_server() and loop.create_unix_server(). 317 318.. 319 320.. bpo: 32391 321.. date: 2018-01-24-15-20-12 322.. nonce: 0f8MY9 323.. section: Library 324 325Implement :meth:`asyncio.StreamWriter.wait_closed` and 326:meth:`asyncio.StreamWriter.is_closing` methods 327 328.. 329 330.. bpo: 32643 331.. date: 2018-01-24-00-32-58 332.. nonce: VWipsW 333.. section: Library 334 335Make Task._step, Task._wakeup and Future._schedule_callbacks methods 336private. 337 338.. 339 340.. bpo: 32630 341.. date: 2018-01-23-01-57-36 342.. nonce: 6KRHBs 343.. section: Library 344 345Refactor decimal module to use contextvars to store decimal context. 346 347.. 348 349.. bpo: 32622 350.. date: 2018-01-22-18-18-44 351.. nonce: A1D6FP 352.. section: Library 353 354Add :meth:`asyncio.AbstractEventLoop.sendfile` method. 355 356.. 357 358.. bpo: 32304 359.. date: 2018-01-21-16-33-53 360.. nonce: TItrNv 361.. section: Library 362 363distutils' upload command no longer corrupts tar files ending with a CR 364byte, and no longer tries to convert CR to CRLF in any of the upload text 365fields. 366 367.. 368 369.. bpo: 32502 370.. date: 2018-01-20-17-15-34 371.. nonce: OXJfn7 372.. section: Library 373 374uuid.uuid1 no longer raises an exception if a 64-bit hardware address is 375encountered. 376 377.. 378 379.. bpo: 32596 380.. date: 2018-01-19-19-57-45 381.. nonce: 4aVIie 382.. section: Library 383 384``concurrent.futures`` imports ``ThreadPoolExecutor`` and 385``ProcessPoolExecutor`` lazily (using :pep:`562`). It makes ``import 386asyncio`` about 15% faster because asyncio uses only ``ThreadPoolExecutor`` 387by default. 388 389.. 390 391.. bpo: 31801 392.. date: 2018-01-18-13-47-40 393.. nonce: 3UGH1h 394.. section: Library 395 396Add ``_ignore_`` to ``Enum`` so temporary variables can be used during class 397construction without being turned into members. 398 399.. 400 401.. bpo: 32576 402.. date: 2018-01-17-13-04-16 403.. nonce: iDL09t 404.. section: Library 405 406Use queue.SimpleQueue() in places where it can be invoked from a weakref 407callback. 408 409.. 410 411.. bpo: 32574 412.. date: 2018-01-16-20-37-28 413.. nonce: ru8eZ9 414.. section: Library 415 416Fix memory leak in asyncio.Queue, when the queue has limited size and it is 417full, the cancelation of queue.put() can cause a memory leak. Patch by: José 418Melero. 419 420.. 421 422.. bpo: 32521 423.. date: 2018-01-15-12-53-13 424.. nonce: IxX4Ba 425.. section: Library 426 427The nis module is now compatible with new libnsl and headers location. 428 429.. 430 431.. bpo: 32467 432.. date: 2018-01-11-00-33-42 433.. nonce: YVEOv6 434.. section: Library 435 436collections.abc.ValuesView now inherits from collections.abc.Collection. 437 438.. 439 440.. bpo: 32473 441.. date: 2018-01-10-20-37-59 442.. nonce: mP_yJG 443.. section: Library 444 445Improve ABCMeta._dump_registry() output readability 446 447.. 448 449.. bpo: 32102 450.. date: 2018-01-10-18-04-21 451.. nonce: 9-CZgD 452.. section: Library 453 454New argument ``capture_output`` for subprocess.run 455 456.. 457 458.. bpo: 32521 459.. date: 2018-01-08-18-02-33 460.. nonce: Kh-KoN 461.. section: Library 462 463glibc has removed Sun RPC. Use replacement libtirpc headers and library in 464nis module. 465 466.. 467 468.. bpo: 32493 469.. date: 2018-01-08-15-53-37 470.. nonce: vTXxGN 471.. section: Library 472 473UUID module fixes build for FreeBSD/OpenBSD 474 475.. 476 477.. bpo: 32503 478.. date: 2018-01-07-09-22-26 479.. nonce: ViMxpD 480.. section: Library 481 482Pickling with protocol 4 no longer creates too small frames. 483 484.. 485 486.. bpo: 29237 487.. date: 2018-01-04-14-45-33 488.. nonce: zenYA6 489.. section: Library 490 491Create enum for pstats sorting options 492 493.. 494 495.. bpo: 32454 496.. date: 2017-12-30-10-38-05 497.. nonce: wsZnl- 498.. section: Library 499 500Add close(fd) function to the socket module. 501 502.. 503 504.. bpo: 25942 505.. date: 2017-12-27-20-15-51 506.. nonce: Giyr8v 507.. section: Library 508 509The subprocess module is now more graceful when handling a Ctrl-C 510KeyboardInterrupt during subprocess.call, subprocess.run, or a Popen context 511manager. It now waits a short amount of time for the child (presumed to 512have also gotten the SIGINT) to exit, before continuing the 513KeyboardInterrupt exception handling. This still includes a SIGKILL in the 514call() and run() APIs, but at least the child had a chance first. 515 516.. 517 518.. bpo: 32433 519.. date: 2017-12-27-20-09-27 520.. nonce: vmxsVI 521.. section: Library 522 523The hmac module now has hmac.digest(), which provides an optimized HMAC 524digest. 525 526.. 527 528.. bpo: 28134 529.. date: 2017-12-24-20-01-09 530.. nonce: HJ8Beb 531.. section: Library 532 533Sockets now auto-detect family, type and protocol from file descriptor by 534default. 535 536.. 537 538.. bpo: 32404 539.. date: 2017-12-23-14-54-05 540.. nonce: yJqtlJ 541.. section: Library 542 543Fix bug where :meth:`datetime.datetime.fromtimestamp` did not call __new__ 544in :class:`datetime.datetime` subclasses. 545 546.. 547 548.. bpo: 32403 549.. date: 2017-12-23-14-51-46 550.. nonce: CVFapH 551.. section: Library 552 553Improved speed of :class:`datetime.date` and :class:`datetime.datetime` 554alternate constructors. 555 556.. 557 558.. bpo: 32228 559.. date: 2017-12-22-16-47-41 560.. nonce: waPx3q 561.. section: Library 562 563Ensure that ``truncate()`` preserves the file position (as reported by 564``tell()``) after writes longer than the buffer size. 565 566.. 567 568.. bpo: 32410 569.. date: 2017-12-22-16-05-01 570.. nonce: 8JzhvH 571.. section: Library 572 573Implement ``loop.sock_sendfile`` for asyncio event loop. 574 575.. 576 577.. bpo: 22908 578.. date: 2017-12-21-22-00-11 579.. nonce: cVm89I 580.. section: Library 581 582Added seek and tell to the ZipExtFile class. This only works if the file 583object used to open the zipfile is seekable. 584 585.. 586 587.. bpo: 32373 588.. date: 2017-12-19-09-23-46 589.. nonce: 8qAkoW 590.. section: Library 591 592Add socket.getblocking() method. 593 594.. 595 596.. bpo: 32248 597.. date: 2017-12-15-15-34-12 598.. nonce: zmO8G2 599.. section: Library 600 601Add :mod:`importlib.resources` and :class:`importlib.abc.ResourceReader` as 602the unified API for reading resources contained within packages. Loaders 603wishing to support resource reading must implement the 604:meth:`get_resource_reader()` method. File-based and zipimport-based 605loaders both implement these APIs. :class:`importlib.abc.ResourceLoader` is 606deprecated in favor of these new APIs. 607 608.. 609 610.. bpo: 32320 611.. date: 2017-12-14-01-36-25 612.. nonce: jwOZlr 613.. section: Library 614 615collections.namedtuple() now supports default values. 616 617.. 618 619.. bpo: 29302 620.. date: 2017-12-11-15-14-55 621.. nonce: Nczj9l 622.. section: Library 623 624Add contextlib.AsyncExitStack. Patch by Alexander Mohr and Ilya Kulakov. 625 626.. 627 628.. bpo: 31961 629.. date: 2017-11-08-03-38-20 630.. nonce: x5Sv0R 631.. section: Library 632 633*Removed in Python 3.7.0b2.* 634The *args* argument of subprocess.Popen can now be a :term:`path-like 635object`. If *args* is given as a sequence, it's first element can now be a 636:term:`path-like object` as well. 637 638.. 639 640.. bpo: 31900 641.. date: 2017-10-30-15-55-32 642.. nonce: -S9xc4 643.. section: Library 644 645The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` 646locale to the ``LC_NUMERIC`` locale to decode ``decimal_point`` and 647``thousands_sep`` byte strings if they are non-ASCII or longer than 1 byte, 648and the ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. 649This temporary change affects other threads. 650Same change for the :meth:`str.format` method when formatting a number 651(:class:`int`, :class:`float`, :class:`float` and subclasses) with the ``n`` 652type (ex: ``'{:n}'.format(1234)``). 653 654.. 655 656.. bpo: 31853 657.. date: 2017-10-23-22-55-51 658.. nonce: h5fjrP 659.. section: Library 660 661Use super().method instead of socket.method in SSLSocket. They were there 662most likely for legacy reasons. 663 664.. 665 666.. bpo: 31399 667.. date: 2017-09-08-14-05-33 668.. nonce: FtBrrt 669.. section: Library 670 671The ssl module now uses OpenSSL's X509_VERIFY_PARAM_set1_host() and 672X509_VERIFY_PARAM_set1_ip() API to verify hostname and IP addresses. Subject 673common name fallback can be disabled with 674SSLContext.hostname_checks_common_name. 675 676.. 677 678.. bpo: 14976 679.. date: 2017-09-07-19-12-47 680.. nonce: dx0Zxb 681.. section: Library 682 683Add a queue.SimpleQueue class, an unbounded FIFO queue with a reentrant C 684implementation of put(). 685 686.. 687 688.. bpo: 32724 689.. date: 2018-01-30-09-00-19 690.. nonce: qPIaM- 691.. section: Documentation 692 693Add references to some commands in the documentation of Pdb. Patch by 694Stéphane Wirtel 695 696.. 697 698.. bpo: 32649 699.. date: 2018-01-27-23-36-31 700.. nonce: o7qOjF 701.. section: Documentation 702 703Complete the C API documentation, profiling and tracing part with the newly 704added per-opcode events. 705 706.. 707 708.. bpo: 17799 709.. date: 2018-01-22-21-13-46 710.. nonce: rdZ-Vk 711.. section: Documentation 712 713Explain real behaviour of sys.settrace and sys.setprofile and their C-API 714counterparts regarding which type of events are received in each function. 715Patch by Pablo Galindo Salgado. 716 717.. 718 719.. bpo: 32721 720.. date: 2018-01-29-21-30-44 721.. nonce: 2Bebm1 722.. section: Tests 723 724Fix test_hashlib to not fail if the _md5 module is not built. 725 726.. 727 728.. bpo: 28414 729.. date: 2018-01-28-21-19-13 730.. nonce: a6Onzt 731.. section: Tests 732 733Add test cases for IDNA 2003 and 2008 host names. IDNA 2003 734internationalized host names are working since bpo-31399 has landed. IDNA 7352008 are still broken. 736 737.. 738 739.. bpo: 32604 740.. date: 2018-01-26-21-29-09 741.. nonce: 7iazNx 742.. section: Tests 743 744Add a new "_xxsubinterpreters" extension module that exposes the existing 745subinterpreter C-API and a new cross-interpreter data sharing mechanism. The 746module is primarily intended for more thorough testing of the existing 747subinterpreter support. 748Note that the _xxsubinterpreters module has been removed in 3.7.0rc1. 749 750.. 751 752.. bpo: 32602 753.. date: 2018-01-19-20-47-11 754.. nonce: dz41pq 755.. section: Tests 756 757Add test certs and test for ECDSA cert and EC/RSA dual mode. 758 759.. 760 761.. bpo: 32549 762.. date: 2018-01-14-11-40-22 763.. nonce: fLwbVA 764.. section: Tests 765 766On Travis CI, Python now Compiles and uses a local copy of OpenSSL 1.1.0g 767for testing. 768 769.. 770 771.. bpo: 32635 772.. date: 2018-01-23-15-33-40 773.. nonce: qHwIZy 774.. section: Build 775 776Fix segfault of the crypt module when libxcrypt is provided instead of 777libcrypt at the system. 778 779.. 780 781.. bpo: 32598 782.. date: 2018-01-19-14-50-19 783.. nonce: hP7bMV 784.. section: Build 785 786Use autoconf to detect OpenSSL libs, headers and supported features. The 787ax_check_openssl M4 macro uses pkg-config to locate OpenSSL and falls back 788to manual search. 789 790.. 791 792.. bpo: 32593 793.. date: 2018-01-18-11-10-52 794.. nonce: XIrf3v 795.. section: Build 796 797Drop support of FreeBSD 9 and older. 798 799.. 800 801.. bpo: 29708 802.. date: 2018-01-16-08-32-49 803.. nonce: YCaHEx 804.. section: Build 805 806If the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, 807:mod:`py_compile` will always create hash-based ``.pyc`` files. 808 809.. 810 811.. bpo: 32588 812.. date: 2018-01-18-14-56-45 813.. nonce: vHww6F 814.. section: Windows 815 816Create standalone _distutils_findvs module and add missing _queue module to 817installer. 818 819.. 820 821.. bpo: 29911 822.. date: 2018-01-07-12-33-21 823.. nonce: ewSJKb 824.. section: Windows 825 826Ensure separate Modify and Uninstall buttons are displayed. 827 828.. 829 830.. bpo: 32507 831.. date: 2018-01-07-12-32-49 832.. nonce: vB4gxk 833.. section: Windows 834 835Use app-local UCRT install rather than the proper update for old versions of 836Windows. 837 838.. 839 840.. bpo: 32726 841.. date: 2018-01-30-07-13-10 842.. nonce: tcARLK 843.. section: macOS 844 845Provide an additional, more modern macOS installer variant that supports 846macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied third-party 847libraries to OpenSSL 1.1.0g and to SQLite 3.22.0. The 10.9+ installer now 848links with and supplies its own copy of Tcl/Tk 8.6. 849 850.. 851 852.. bpo: 28440 853.. date: 2018-01-30-04-40-12 854.. nonce: W_BUWU 855.. section: macOS 856 857No longer add /Library/Python/3.x/site-packages to sys.path for macOS 858framework builds to avoid future conflicts. 859 860.. 861 862.. bpo: 32681 863.. date: 2018-01-26-17-29-29 864.. nonce: N1ruWa 865.. section: C API 866 867Fix uninitialized variable 'res' in the C implementation of os.dup2. Patch 868by Stéphane Wirtel 869 870.. 871 872.. bpo: 10381 873.. date: 2017-12-28-15-22-05 874.. nonce: a1E6aF 875.. section: C API 876 877Add C API access to the ``datetime.timezone`` constructor and 878``datetime.timzone.UTC`` singleton. 879