1.. bpo: 32176 2.. date: 2017-12-02-21-37-22 3.. nonce: Wt25-N 4.. release date: 2017-12-05 5.. section: Core and Builtins 6 7co_flags.CO_NOFREE is now always set correctly by the code object 8constructor based on freevars and cellvars, rather than needing to be set 9correctly by the caller. This ensures it will be cleared automatically when 10additional cell references are injected into a modified code object and 11function. 12 13.. 14 15.. bpo: 10544 16.. date: 2017-11-27-08-37-34 17.. nonce: 07nioT 18.. section: Core and Builtins 19 20Yield expressions are now deprecated in comprehensions and generator 21expressions. They are still permitted in the definition of the outermost 22iterable, as that is evaluated directly in the enclosing scope. 23 24.. 25 26.. bpo: 32137 27.. date: 2017-11-26-14-36-30 28.. nonce: Stj5nL 29.. section: Core and Builtins 30 31The repr of deeply nested dict now raises a RecursionError instead of 32crashing due to a stack overflow. 33 34.. 35 36.. bpo: 32096 37.. date: 2017-11-24-01-13-58 38.. nonce: CQTHXJ 39.. section: Core and Builtins 40 41Revert memory allocator changes in the C API: move structures back from 42_PyRuntime to Objects/obmalloc.c. The memory allocators are once again 43initialized statically, and so PyMem_RawMalloc() and Py_DecodeLocale() can 44be called before _PyRuntime_Initialize(). 45 46.. 47 48.. bpo: 32043 49.. date: 2017-11-16-03-44-08 50.. nonce: AAzwpZ 51.. section: Core and Builtins 52 53Add a new "developer mode": new "-X dev" command line option to enable debug 54checks at runtime. 55 56.. 57 58.. bpo: 32023 59.. date: 2017-11-15-10-49-35 60.. nonce: XnCGT5 61.. section: Core and Builtins 62 63SyntaxError is now correctly raised when a generator expression without 64parenthesis is used instead of an inheritance list in a class definition. 65The duplication of the parentheses can be omitted only on calls. 66 67.. 68 69.. bpo: 32012 70.. date: 2017-11-13-00-37-11 71.. nonce: Kprjqe 72.. section: Core and Builtins 73 74SyntaxError is now correctly raised when a generator expression without 75parenthesis is passed as an argument, but followed by a trailing comma. A 76generator expression always needs to be directly inside a set of parentheses 77and cannot have a comma on either side. 78 79.. 80 81.. bpo: 28180 82.. date: 2017-11-12-11-44-22 83.. nonce: HQX000 84.. section: Core and Builtins 85 86A new internal ``_Py_SetLocaleFromEnv(category)`` helper function has been 87added in order to improve the consistency of behaviour across different 88``libc`` implementations (e.g. Android doesn't support setting the locale 89from the environment by default). 90 91.. 92 93.. bpo: 31949 94.. date: 2017-11-05-16-11-07 95.. nonce: 2yNC_z 96.. section: Core and Builtins 97 98Fixed several issues in printing tracebacks (PyTraceBack_Print()). 99Setting sys.tracebacklimit to 0 or less now suppresses printing tracebacks. 100Setting sys.tracebacklimit to None now causes using the default limit. 101Setting sys.tracebacklimit to an integer larger than LONG_MAX now means using 102the limit LONG_MAX rather than the default limit. 103Fixed integer overflows in the case of more than ``2**31`` traceback items on 104Windows. 105Fixed output errors handling. 106 107.. 108 109.. bpo: 30696 110.. date: 2017-10-28-22-06-03 111.. nonce: lhC3HE 112.. section: Core and Builtins 113 114Fix the interactive interpreter looping endlessly when no memory. 115 116.. 117 118.. bpo: 20047 119.. date: 2017-10-28-19-11-05 120.. nonce: GuNAto 121.. section: Core and Builtins 122 123Bytearray methods partition() and rpartition() now accept only bytes-like 124objects as separator, as documented. In particular they now raise TypeError 125rather of returning a bogus result when an integer is passed as a separator. 126 127.. 128 129.. bpo: 21720 130.. date: 2017-10-25-15-51-37 131.. nonce: BwIKLP 132.. section: Core and Builtins 133 134BytesWarning no longer emitted when the *fromlist* argument of 135``__import__()`` or the ``__all__`` attribute of the module contain bytes 136instances. 137 138.. 139 140.. bpo: 31845 141.. date: 2017-10-24-21-27-32 142.. nonce: 8OS-k3 143.. section: Core and Builtins 144 145Environment variables are once more read correctly at interpreter startup. 146 147.. 148 149.. bpo: 28936 150.. date: 2017-10-23-23-39-26 151.. nonce: C288Jh 152.. section: Core and Builtins 153 154Ensure that lexically first syntax error involving a parameter and 155``global`` or ``nonlocal`` is detected first at a given scope. Patch by Ivan 156Levkivskyi. 157 158.. 159 160.. bpo: 31825 161.. date: 2017-10-20-14-07-46 162.. nonce: gJvmGW 163.. section: Core and Builtins 164 165Fixed OverflowError in the 'unicode-escape' codec and in 166codecs.escape_decode() when decode an escaped non-ascii byte. 167 168.. 169 170.. bpo: 31618 171.. date: 2017-10-18-19-41-12 172.. nonce: liLDiS 173.. section: Core and Builtins 174 175The per-frame tracing logic added in 3.7a1 has been altered so that 176``frame->f_lineno`` is updated before either ``"line"`` or ``"opcode"`` 177events are emitted. Previously, opcode events were emitted first, and 178therefore would occasionally see stale line numbers on the frame. The 179behavior of this feature has changed slightly as a result: when both 180``f_trace_lines`` and ``f_trace_opcodes`` are enabled, line events now occur 181first. 182 183.. 184 185.. bpo: 28603 186.. date: 2017-10-17-13-29-19 187.. nonce: _-oia3 188.. section: Core and Builtins 189 190Print the full context/cause chain of exceptions on interpreter exit, even 191if an exception in the chain is unhashable or compares equal to later ones. 192Patch by Zane Bitter. 193 194.. 195 196.. bpo: 31786 197.. date: 2017-10-15-23-44-57 198.. nonce: XwdEP4 199.. section: Core and Builtins 200 201Fix timeout rounding in the select module to round correctly negative 202timeouts between -1.0 and 0.0. The functions now block waiting for events as 203expected. Previously, the call was incorrectly non-blocking. Patch by Pablo 204Galindo. 205 206.. 207 208.. bpo: 31781 209.. date: 2017-10-13-20-01-47 210.. nonce: cXE9SM 211.. section: Core and Builtins 212 213Prevent crashes when calling methods of an uninitialized 214``zipimport.zipimporter`` object. Patch by Oren Milman. 215 216.. 217 218.. bpo: 30399 219.. date: 2017-10-12-22-21-01 220.. nonce: 45f1gv 221.. section: Core and Builtins 222 223Standard repr() of BaseException with a single argument no longer contains 224redundant trailing comma. 225 226.. 227 228.. bpo: 31626 229.. date: 2017-10-01-15-48-03 230.. nonce: reLPxY 231.. section: Core and Builtins 232 233Fixed a bug in debug memory allocator. There was a write to freed memory 234after shrinking a memory block. 235 236.. 237 238.. bpo: 30817 239.. date: 2017-07-01-15-11-13 240.. nonce: j7ZvN_ 241.. section: Core and Builtins 242 243`PyErr_PrintEx()` clears now the ignored exception that may be raised by 244`_PySys_SetObjectId()`, for example when no memory. 245 246.. 247 248.. bpo: 28556 249.. date: 2017-12-05-02-03-07 250.. nonce: 9Z_PsJ 251.. section: Library 252 253Two minor fixes for ``typing`` module: allow shallow copying instances of 254generic classes, improve interaction of ``__init_subclass__`` with generics. 255Original PRs by Ivan Levkivskyi. 256 257.. 258 259.. bpo: 32214 260.. date: 2017-12-04-15-51-57 261.. nonce: uozdNj 262.. section: Library 263 264PEP 557, Data Classes. Provides a decorator which adds boilerplate methods 265to classes which use type annotations so specify fields. 266 267.. 268 269.. bpo: 27240 270.. date: 2017-12-02-16-06-00 271.. nonce: Kji34M 272.. section: Library 273 274The header folding algorithm for the new email policies has been rewritten, 275which also fixes bpo-30788, bpo-31831, and bpo-32182. In particular, 276RFC2231 folding is now done correctly. 277 278.. 279 280.. bpo: 32186 281.. date: 2017-11-30-20-38-16 282.. nonce: O42bVe 283.. section: Library 284 285io.FileIO.readall() and io.FileIO.read() now release the GIL when getting 286the file size. Fixed hang of all threads with inaccessible NFS server. Patch 287by Nir Soffer. 288 289.. 290 291.. bpo: 32101 292.. date: 2017-11-29-00-42-47 293.. nonce: -axD5l 294.. section: Library 295 296Add :attr:`sys.flags.dev_mode` flag 297 298.. 299 300.. bpo: 32154 301.. date: 2017-11-28-15-27-10 302.. nonce: kDox7L 303.. section: Library 304 305The ``asyncio.windows_utils.socketpair()`` function has been removed: use 306directly :func:`socket.socketpair` which is available on all platforms since 307Python 3.5 (before, it wasn't available on Windows). 308``asyncio.windows_utils.socketpair()`` was just an alias to 309``socket.socketpair`` on Python 3.5 and newer. 310 311.. 312 313.. bpo: 32089 314.. date: 2017-11-27-11-29-34 315.. nonce: 6ydDYv 316.. section: Library 317 318warnings: In development (-X dev) and debug mode (pydebug build), use the 319"default" action for ResourceWarning, rather than the "always" action, in 320the default warnings filters. 321 322.. 323 324.. bpo: 32107 325.. date: 2017-11-26-18-48-17 326.. nonce: h2ph2K 327.. section: Library 328 329``uuid.getnode()`` now preferentially returns universally administered MAC 330addresses if available, over locally administered MAC addresses. This makes 331a better guarantee for global uniqueness of UUIDs returned from 332``uuid.uuid1()``. If only locally administered MAC addresses are available, 333the first such one found is returned. 334 335.. 336 337.. bpo: 23033 338.. date: 2017-11-26-17-00-52 339.. nonce: YGXRWT 340.. section: Library 341 342Wildcard is now supported in hostname when it is one and only character in 343the left most segment of hostname in second argument of 344:meth:`ssl.match_hostname`. Patch by Mandeep Singh. 345 346.. 347 348.. bpo: 12239 349.. date: 2017-11-24-14-07-55 350.. nonce: Nj3A0x 351.. section: Library 352 353Make :meth:`msilib.SummaryInformation.GetProperty` return ``None`` when the 354value of property is ``VT_EMPTY``. Initial patch by Mark Mc Mahon. 355 356.. 357 358.. bpo: 28334 359.. date: 2017-11-24-11-50-41 360.. nonce: 3gGGlt 361.. section: Library 362 363Use :func:`os.path.expanduser` to find the ``~/.netrc`` file in 364:class:`netrc.netrc`. If it does not exist, :exc:`FileNotFoundError` is 365raised. Patch by Dimitri Merejkowsky. 366 367.. 368 369.. bpo: 32121 370.. date: 2017-11-24-00-59-12 371.. nonce: ePbmwC 372.. section: Library 373 374Made ``tracemalloc.Traceback`` behave more like the traceback module, 375sorting the frames from oldest to most recent. ``Traceback.format()`` now 376accepts negative *limit*, truncating the result to the ``abs(limit)`` oldest 377frames. To get the old behaviour, one can use the new *most_recent_first* 378argument to ``Traceback.format()``. (Patch by Jesse Bakker.) 379 380.. 381 382.. bpo: 31325 383.. date: 2017-11-23-22-12-11 384.. nonce: 8jAUxN 385.. section: Library 386 387Fix wrong usage of :func:`collections.namedtuple` in the 388:meth:`RobotFileParser.parse() <urllib.robotparser.RobotFileParser.parse>` 389method. 390Initial patch by Robin Wellner. 391 392.. 393 394.. bpo: 12382 395.. date: 2017-11-23-21-47-36 396.. nonce: xWT9k0 397.. section: Library 398 399:func:`msilib.OpenDatabase` now raises a better exception message when it 400couldn't open or create an MSI file. Initial patch by William Tisäter. 401 402.. 403 404.. bpo: 19610 405.. date: 2017-11-23-16-15-55 406.. nonce: Dlca2P 407.. section: Library 408 409``setup()`` now warns about invalid types for some fields. 410The ``distutils.dist.Distribution`` class now warns when ``classifiers``, 411``keywords`` and ``platforms`` fields are not specified as a list or a 412string. 413 414.. 415 416.. bpo: 32071 417.. date: 2017-11-22-19-52-17 418.. nonce: 4WNhUH 419.. section: Library 420 421Added the ``-k`` command-line option to ``python -m unittest`` to run only 422tests that match the given pattern(s). 423 424.. 425 426.. bpo: 10049 427.. date: 2017-11-22-17-21-01 428.. nonce: ttsBqb 429.. section: Library 430 431Added *nullcontext* no-op context manager to contextlib. This provides a 432simpler and faster alternative to ExitStack() when handling optional context 433managers. 434 435.. 436 437.. bpo: 28684 438.. date: 2017-11-22-12-54-46 439.. nonce: NLiDKZ 440.. section: Library 441 442The new test.support.skip_unless_bind_unix_socket() decorator is used here 443to skip asyncio tests that fail because the platform lacks a functional 444bind() function for unix domain sockets (as it is the case for non root 445users on the recent Android versions that run now SELinux in enforcing 446mode). 447 448.. 449 450.. bpo: 32110 451.. date: 2017-11-22-09-44-15 452.. nonce: VJa9bo 453.. section: Library 454 455``codecs.StreamReader.read(n)`` now returns not more than *n* 456characters/bytes for non-negative *n*. This makes it compatible with 457``read()`` methods of other file-like objects. 458 459.. 460 461.. bpo: 27535 462.. date: 2017-11-21-16-05-35 463.. nonce: JLhcNz 464.. section: Library 465 466The warnings module doesn't leak memory anymore in the hidden warnings 467registry for the "ignore" action of warnings filters. warn_explicit() 468function doesn't add the warning key to the registry anymore for the 469"ignore" action. 470 471.. 472 473.. bpo: 32088 474.. date: 2017-11-20-15-28-31 475.. nonce: mV-4Nu 476.. section: Library 477 478warnings: When Python is build is debug mode (``Py_DEBUG``), 479:exc:`DeprecationWarning`, :exc:`PendingDeprecationWarning` and 480:exc:`ImportWarning` warnings are now displayed by default. 481 482.. 483 484.. bpo: 1647489 485.. date: 2017-11-20-01-29-46 486.. nonce: -ZNNkh 487.. section: Library 488 489Fixed searching regular expression patterns that could match an empty 490string. Non-empty string can now be correctly found after matching an empty 491string. 492 493.. 494 495.. bpo: 25054 496.. date: 2017-11-20-01-01-01 497.. nonce: rOlRV6 498.. section: Library 499 500Added support of splitting on a pattern that could match an empty string. 501 502.. 503 504.. bpo: 32072 505.. date: 2017-11-18-21-13-52 506.. nonce: nwDV8L 507.. section: Library 508 509Fixed issues with binary plists: 510Fixed saving bytearrays. 511Identical objects will be saved only once. 512Equal references will be load as identical objects. 513Added support for saving and loading recursive data structures. 514 515.. 516 517.. bpo: 32069 518.. date: 2017-11-18-17-09-01 519.. nonce: S0wyy4 520.. section: Library 521 522Drop legacy SSL transport from asyncio, ssl.MemoryBIO is always used anyway. 523 524.. 525 526.. bpo: 32066 527.. date: 2017-11-17-18-28-53 528.. nonce: OMQFLH 529.. section: Library 530 531asyncio: Support pathlib.Path in create_unix_connection; sock arg should be 532optional 533 534.. 535 536.. bpo: 32046 537.. date: 2017-11-16-20-09-45 538.. nonce: 9sGDtw 539.. section: Library 540 541Updates 2to3 to convert from operator.isCallable(obj) to callable(obj). 542Patch by Dong-hee Na. 543 544.. 545 546.. bpo: 32018 547.. date: 2017-11-16-02-32-41 548.. nonce: YMQ7Q2 549.. section: Library 550 551inspect.signature should follow :pep:`8`, if the parameter has an annotation 552and a default value. Patch by Dong-hee Na. 553 554.. 555 556.. bpo: 32025 557.. date: 2017-11-15-20-03-45 558.. nonce: lnIKYT 559.. section: Library 560 561Add time.thread_time() and time.thread_time_ns() 562 563.. 564 565.. bpo: 32037 566.. date: 2017-11-15-19-04-22 567.. nonce: r8-5Nk 568.. section: Library 569 570Integers that fit in a signed 32-bit integer will be now pickled with 571protocol 0 using the INT opcode. This will decrease the size of a pickle, 572speed up pickling and unpickling, and make these integers be unpickled as 573int instances in Python 2. 574 575.. 576 577.. bpo: 32034 578.. date: 2017-11-15-13-44-28 579.. nonce: uHAOmu 580.. section: Library 581 582Make asyncio.IncompleteReadError and LimitOverrunError pickleable. 583 584.. 585 586.. bpo: 32015 587.. date: 2017-11-13-17-48-33 588.. nonce: 4nqRTD 589.. section: Library 590 591Fixed the looping of asyncio in the case of reconnection the socket during 592waiting async read/write from/to the socket. 593 594.. 595 596.. bpo: 32011 597.. date: 2017-11-12-20-47-59 598.. nonce: NzVDdZ 599.. section: Library 600 601Restored support of loading marshal files with the TYPE_INT64 code. These 602files can be produced in Python 2.7. 603 604.. 605 606.. bpo: 28369 607.. date: 2017-11-10-16-27-26 608.. nonce: IS74nd 609.. section: Library 610 611Enhance add_reader/writer check that socket is not used by some transport. 612Before, only cases when add_reader/writer were called with an int FD were 613supported. Now the check is implemented correctly for all file-like 614objects. 615 616.. 617 618.. bpo: 31976 619.. date: 2017-11-09-21-36-32 620.. nonce: EOA7qY 621.. section: Library 622 623Fix race condition when flushing a file is slow, which can cause a segfault 624if closing the file from another thread. 625 626.. 627 628.. bpo: 31985 629.. date: 2017-11-08-16-51-52 630.. nonce: dE_fOB 631.. section: Library 632 633Formally deprecated aifc.openfp, sunau.openfp, and wave.openfp. Since change 6347bc817d5ba917528e8bd07ec461c635291e7b06a in 1993, openfp in each of the 635three modules had been pointing to that module's open function as a matter 636of backwards compatibility, though it had been both untested and 637undocumented. 638 639.. 640 641.. bpo: 21862 642.. date: 2017-11-07-15-19-52 643.. nonce: RwietE 644.. section: Library 645 646cProfile command line now accepts `-m module_name` as an alternative to 647script path. Patch by Sanyam Khurana. 648 649.. 650 651.. bpo: 31970 652.. date: 2017-11-07-14-20-09 653.. nonce: x4EN_9 654.. section: Library 655 656Reduce performance overhead of asyncio debug mode. 657 658.. 659 660.. bpo: 31843 661.. date: 2017-11-07-00-37-50 662.. nonce: lM2gkR 663.. section: Library 664 665*database* argument of sqlite3.connect() now accepts a :term:`path-like 666object`, instead of just a string. 667 668.. 669 670.. bpo: 31945 671.. date: 2017-11-05-01-17-12 672.. nonce: TLPBtS 673.. section: Library 674 675Add Configurable *blocksize* to ``HTTPConnection`` and ``HTTPSConnection`` 676for improved upload throughput. Patch by Nir Soffer. 677 678.. 679 680.. bpo: 31943 681.. date: 2017-11-04-19-28-08 682.. nonce: bxw5gM 683.. section: Library 684 685Add a ``cancelled()`` method to :class:`asyncio.Handle`. Patch by Marat 686Sharafutdinov. 687 688.. 689 690.. bpo: 9678 691.. date: 2017-11-03-22-05-47 692.. nonce: oD51q6 693.. section: Library 694 695Fixed determining the MAC address in the uuid module: 696Using ifconfig on NetBSD and OpenBSD. 697Using arp on Linux, FreeBSD, NetBSD and OpenBSD. 698Based on patch by Takayuki Shimizukawa. 699 700.. 701 702.. bpo: 30057 703.. date: 2017-11-03-19-11-43 704.. nonce: NCaijI 705.. section: Library 706 707Fix potential missed signal in signal.signal(). 708 709.. 710 711.. bpo: 31933 712.. date: 2017-11-03-08-36-03 713.. nonce: UrtoMP 714.. section: Library 715 716Fix Blake2 params leaf_size and node_offset on big endian platforms. Patch 717by Jack O'Connor. 718 719.. 720 721.. bpo: 21423 722.. date: 2017-11-02-22-26-16 723.. nonce: hw5mEh 724.. section: Library 725 726Add an initializer argument to {Process,Thread}PoolExecutor 727 728.. 729 730.. bpo: 31927 731.. date: 2017-11-02-18-26-40 732.. nonce: 40K6kp 733.. section: Library 734 735Fixed compilation of the socket module on NetBSD 8. Fixed assertion failure 736or reading arbitrary data when parse a AF_BLUETOOTH address on NetBSD and 737DragonFly BSD. 738 739.. 740 741.. bpo: 27666 742.. date: 2017-11-01-18-13-42 743.. nonce: j2zRnF 744.. section: Library 745 746Fixed stack corruption in curses.box() and curses.ungetmouse() when the size 747of types chtype or mmask_t is less than the size of C long. curses.box() 748now accepts characters as arguments. Based on patch by Steve Fink. 749 750.. 751 752.. bpo: 31917 753.. date: 2017-11-01-03-28-24 754.. nonce: DYQL0g 755.. section: Library 756 757Add 3 new clock identifiers: :data:`time.CLOCK_BOOTTIME`, 758:data:`time.CLOCK_PROF` and :data:`time.CLOCK_UPTIME`. 759 760.. 761 762.. bpo: 31897 763.. date: 2017-10-30-11-04-56 764.. nonce: yjwdEb 765.. section: Library 766 767plistlib now catches more errors when read binary plists and raises 768InvalidFileException instead of unexpected exceptions. 769 770.. 771 772.. bpo: 25720 773.. date: 2017-10-29-17-52-40 774.. nonce: vSvb5h 775.. section: Library 776 777Fix the method for checking pad state of curses WINDOW. Patch by Masayuki 778Yamamoto. 779 780.. 781 782.. bpo: 31893 783.. date: 2017-10-29-13-51-01 784.. nonce: 8LZKEz 785.. section: Library 786 787Fixed the layout of the kqueue_event structure on OpenBSD and NetBSD. Fixed 788the comparison of the kqueue_event objects. 789 790.. 791 792.. bpo: 31891 793.. date: 2017-10-29-11-23-24 794.. nonce: 9kAPha 795.. section: Library 796 797Fixed building the curses module on NetBSD. 798 799.. 800 801.. bpo: 31884 802.. date: 2017-10-27 803.. nonce: bjhre9 804.. section: Library 805 806added required constants to subprocess module for setting priority on 807windows 808 809.. 810 811.. bpo: 28281 812.. date: 2017-10-26-14-54-38 813.. nonce: 7ZN5FG 814.. section: Library 815 816Remove year (1-9999) limits on the Calendar.weekday() function. 817Patch by Mark Gollahon. 818 819.. 820 821.. bpo: 31702 822.. date: 2017-10-24-21-10-44 823.. nonce: SfwJDI 824.. section: Library 825 826crypt.mksalt() now allows to specify the number of rounds for SHA-256 and 827SHA-512 hashing. 828 829.. 830 831.. bpo: 30639 832.. date: 2017-10-24-12-24-56 833.. nonce: ptNM9a 834.. section: Library 835 836:func:`inspect.getfile` no longer computes the repr of unknown objects to 837display in an error message, to protect against badly behaved custom reprs. 838 839.. 840 841.. bpo: 30768 842.. date: 2017-10-24-12-00-16 843.. nonce: Om8Yj_ 844.. section: Library 845 846Fix the pthread+semaphore implementation of PyThread_acquire_lock_timed() 847when called with timeout > 0 and intr_flag=0: recompute the timeout if 848sem_timedwait() is interrupted by a signal (EINTR). See also the :pep:`475`. 849 850.. 851 852.. bpo: 31854 853.. date: 2017-10-23 854.. nonce: fh8334f 855.. section: Library 856 857Add ``mmap.ACCESS_DEFAULT`` constant. 858 859.. 860 861.. bpo: 31834 862.. date: 2017-10-23-23-27-52 863.. nonce: InwC6O 864.. section: Library 865 866Use optimized code for BLAKE2 only with SSSE3+. The pure SSE2 implementation 867is slower than the pure C reference implementation. 868 869.. 870 871.. bpo: 28292 872.. date: 2017-10-23-20-03-36 873.. nonce: 1Gkim2 874.. section: Library 875 876Calendar.itermonthdates() will now consistently raise an exception when a 877date falls outside of the 0001-01-01 through 9999-12-31 range. To support 878applications that cannot tolerate such exceptions, the new methods 879itermonthdays3() and itermonthdays4() are added. The new methods return 880tuples and are not restricted by the range supported by datetime.date. 881 882.. 883 884.. bpo: 28564 885.. date: 2017-10-23-16-22-54 886.. nonce: Tx-l-I 887.. section: Library 888 889The shutil.rmtree() function has been sped up to 20--40%. This was done 890using the os.scandir() function. 891 892.. 893 894.. bpo: 28416 895.. date: 2017-10-23-12-05-33 896.. nonce: Ldnw8X 897.. section: Library 898 899Instances of pickle.Pickler subclass with the persistent_id() method and 900pickle.Unpickler subclass with the persistent_load() method no longer create 901reference cycles. 902 903.. 904 905.. bpo: 31653 906.. date: 2017-10-22-12-43-03 907.. nonce: ttfGvq 908.. section: Library 909 910Don't release the GIL if we can acquire a multiprocessing semaphore 911immediately. 912 913.. 914 915.. bpo: 28326 916.. date: 2017-10-22-11-06-02 917.. nonce: rxh7L4 918.. section: Library 919 920Fix multiprocessing.Process when stdout and/or stderr is closed or None. 921 922.. 923 924.. bpo: 20825 925.. date: 2017-10-21-09-13-16 926.. nonce: -1MBEy 927.. section: Library 928 929Add `subnet_of` and `superset_of` containment tests to 930:class:`ipaddress.IPv6Network` and :class:`ipaddress.IPv4Network`. Patch by 931Michel Albert and Cheryl Sabella. 932 933.. 934 935.. bpo: 31827 936.. date: 2017-10-20-16-12-01 937.. nonce: 7R8s8s 938.. section: Library 939 940Remove the os.stat_float_times() function. It was introduced in Python 2.3 941for backward compatibility with Python 2.2, and was deprecated since Python 9423.1. 943 944.. 945 946.. bpo: 31756 947.. date: 2017-10-20-12-57-52 948.. nonce: IxCvGB 949.. section: Library 950 951Add a ``subprocess.Popen(text=False)`` keyword argument to `subprocess` 952functions to be more explicit about when the library should attempt to 953decode outputs into text. Patch by Andrew Clegg. 954 955.. 956 957.. bpo: 31819 958.. date: 2017-10-19-20-03-13 959.. nonce: mw2wF9 960.. section: Library 961 962Add AbstractEventLoop.sock_recv_into(). 963 964.. 965 966.. bpo: 31457 967.. date: 2017-10-18-19-05-17 968.. nonce: KlE6r8 969.. section: Library 970 971If nested log adapters are used, the inner ``process()`` methods are no 972longer omitted. 973 974.. 975 976.. bpo: 31457 977.. date: 2017-10-18-16-48-09 978.. nonce: _ovmzp 979.. section: Library 980 981The ``manager`` property on LoggerAdapter objects is now properly settable. 982 983.. 984 985.. bpo: 31806 986.. date: 2017-10-17-23-27-03 987.. nonce: TzphdL 988.. section: Library 989 990Fix timeout rounding in time.sleep(), threading.Lock.acquire() and 991socket.socket.settimeout() to round correctly negative timeouts between -1.0 992and 0.0. The functions now block waiting for events as expected. Previously, 993the call was incorrectly non-blocking. Patch by Pablo Galindo. 994 995.. 996 997.. bpo: 31803 998.. date: 2017-10-17-22-55-13 999.. nonce: YLL1gJ 1000.. section: Library 1001 1002time.clock() and time.get_clock_info('clock') now emit a DeprecationWarning 1003warning. 1004 1005.. 1006 1007.. bpo: 31800 1008.. date: 2017-10-17-20-08-19 1009.. nonce: foOSCi 1010.. section: Library 1011 1012Extended support for parsing UTC offsets. strptime '%z' can now parse the 1013output generated by datetime.isoformat, including seconds and microseconds. 1014 1015.. 1016 1017.. bpo: 28603 1018.. date: 2017-10-17-12-29-18 1019.. nonce: tGuX2C 1020.. section: Library 1021 1022traceback: Fix a TypeError that occurred during printing of exception 1023tracebacks when either the current exception or an exception in its 1024context/cause chain is unhashable. Patch by Zane Bitter. 1025 1026.. 1027 1028.. bpo: 30541 1029.. date: 2017-10-17-12-04-37 1030.. nonce: q3BM6C 1031.. section: Library 1032 1033Add new function to seal a mock and prevent the automatically creation of 1034child mocks. Patch by Mario Corchero. 1035 1036.. 1037 1038.. bpo: 31784 1039.. date: 2017-10-13-23-35-47 1040.. nonce: 6e57bd 1041.. section: Library 1042 1043Implement the :pep:`564`, add new 6 new functions with nanosecond resolution 1044to the :mod:`time` module: :func:`~time.clock_gettime_ns`, 1045:func:`~time.clock_settime_ns`, :func:`~time.monotonic_ns`, 1046:func:`~time.perf_counter_ns`, :func:`~time.process_time_ns`, 1047:func:`~time.time_ns`. 1048 1049.. 1050 1051.. bpo: 30143 1052.. date: 2017-10-12-19-05-54 1053.. nonce: 25_hU1 1054.. section: Library 1055 10562to3 now generates a code that uses abstract collection classes from 1057collections.abc rather than collections. 1058 1059.. 1060 1061.. bpo: 31770 1062.. date: 2017-10-12-18-45-38 1063.. nonce: GV3MPx 1064.. section: Library 1065 1066Prevent a crash when calling the ``__init__()`` method of a 1067``sqlite3.Cursor`` object more than once. Patch by Oren Milman. 1068 1069.. 1070 1071.. bpo: 31764 1072.. date: 2017-10-11-22-18-04 1073.. nonce: EMyIkK 1074.. section: Library 1075 1076Prevent a crash in ``sqlite3.Cursor.close()`` in case the ``Cursor`` object 1077is uninitialized. Patch by Oren Milman. 1078 1079.. 1080 1081.. bpo: 31752 1082.. date: 2017-10-11-00-45-01 1083.. nonce: DhWevN 1084.. section: Library 1085 1086Fix possible crash in timedelta constructor called with custom integers. 1087 1088.. 1089 1090.. bpo: 31620 1091.. date: 2017-10-06-04-35-31 1092.. nonce: gksLA1 1093.. section: Library 1094 1095an empty asyncio.Queue now doesn't leak memory when queue.get pollers 1096timeout 1097 1098.. 1099 1100.. bpo: 31690 1101.. date: 2017-10-05-15-14-46 1102.. nonce: f0XteV 1103.. section: Library 1104 1105Allow the flags re.ASCII, re.LOCALE, and re.UNICODE to be used as group 1106flags for regular expressions. 1107 1108.. 1109 1110.. bpo: 30349 1111.. date: 2017-10-05-12-45-29 1112.. nonce: 6zKJsF 1113.. section: Library 1114 1115FutureWarning is now emitted if a regular expression contains character set 1116constructs that will change semantically in the future (nested sets and set 1117operations). 1118 1119.. 1120 1121.. bpo: 31664 1122.. date: 2017-10-04-20-36-28 1123.. nonce: 4VDUzo 1124.. section: Library 1125 1126Added support for the Blowfish hashing in the crypt module. 1127 1128.. 1129 1130.. bpo: 31632 1131.. date: 2017-10-04-11-37-14 1132.. nonce: LiOC3C 1133.. section: Library 1134 1135Fix method set_protocol() of class _SSLProtocolTransport in asyncio module. 1136This method was previously modifying a wrong reference to the protocol. 1137 1138.. 1139 1140.. bpo: 15037 1141.. date: 2017-09-29-19-19-36 1142.. nonce: ykimLK 1143.. section: Library 1144 1145Added a workaround for getkey() in curses for ncurses 5.7 and earlier. 1146 1147.. 1148 1149.. bpo: 31307 1150.. date: 2017-09-07-12-50-28 1151.. nonce: AVBiNY 1152.. section: Library 1153 1154Allow use of bytes objects for arguments to 1155:meth:`configparser.ConfigParser.read`. Patch by Vincent Michel. 1156 1157.. 1158 1159.. bpo: 31334 1160.. date: 2017-09-04-00-22-31 1161.. nonce: 9WYRfi 1162.. section: Library 1163 1164Fix ``poll.poll([timeout])`` in the ``select`` module for arbitrary negative 1165timeouts on all OSes where it can only be a non-negative integer or -1. 1166Patch by Riccardo Coccioli. 1167 1168.. 1169 1170.. bpo: 31310 1171.. date: 2017-08-30-18-23-54 1172.. nonce: 7D1UNt 1173.. section: Library 1174 1175multiprocessing's semaphore tracker should be launched again if crashed. 1176 1177.. 1178 1179.. bpo: 31308 1180.. date: 2017-08-30-17-59-36 1181.. nonce: KbexyC 1182.. section: Library 1183 1184Make multiprocessing's forkserver process immune to Ctrl-C and other user 1185interruptions. If it crashes, restart it when necessary. 1186 1187.. 1188 1189.. bpo: 31245 1190.. date: 2017-08-22-11-05-35 1191.. nonce: AniZuz 1192.. section: Library 1193 1194Added support for AF_UNIX socket in asyncio `create_datagram_endpoint`. 1195 1196.. 1197 1198.. bpo: 30553 1199.. date: 2017-07-05-14-48-26 1200.. nonce: Oupsxo 1201.. section: Library 1202 1203Add HTTP/2 status code 421 (Misdirected Request) to 1204:class:`http.HTTPStatus`. Patch by Vitor Pereira. 1205 1206.. 1207 1208.. bpo: 32105 1209.. date: 2017-11-21-10-54-16 1210.. nonce: 91mhWm 1211.. section: Documentation 1212 1213Added asyncio.BaseEventLoop.connect_accepted_socket versionadded marker. 1214 1215.. 1216 1217.. bpo: 31380 1218.. date: 2017-12-04-23-19-16 1219.. nonce: VlMmHW 1220.. section: Tests 1221 1222Skip test_httpservers test_undecodable_file on macOS: fails on APFS. 1223 1224.. 1225 1226.. bpo: 31705 1227.. date: 2017-11-30-12-27-10 1228.. nonce: yULW7O 1229.. section: Tests 1230 1231Skip test_socket.test_sha256() on Linux kernel older than 4.5. The test 1232fails with ENOKEY on kernel 3.10 (on ppc64le). A fix was merged into the 1233kernel 4.5. 1234 1235.. 1236 1237.. bpo: 32138 1238.. date: 2017-11-27-16-18-58 1239.. nonce: QsTvf- 1240.. section: Tests 1241 1242Skip on Android test_faulthandler tests that raise SIGSEGV and remove the 1243test.support.requires_android_level decorator. 1244 1245.. 1246 1247.. bpo: 32136 1248.. date: 2017-11-26-17-11-27 1249.. nonce: Y11luJ 1250.. section: Tests 1251 1252The runtime embedding tests have been split out from 1253``Lib/test/test_capi.py`` into a new ``Lib/test/test_embed.py`` file. 1254 1255.. 1256 1257.. bpo: 28668 1258.. date: 2017-11-25-14-53-29 1259.. nonce: Y1G6pA 1260.. section: Tests 1261 1262test.support.requires_multiprocessing_queue is removed. Skip tests with 1263test.support.import_module('multiprocessing.synchronize') instead when the 1264semaphore implementation is broken or missing. 1265 1266.. 1267 1268.. bpo: 32126 1269.. date: 2017-11-24-18-15-12 1270.. nonce: PLmNLn 1271.. section: Tests 1272 1273Skip test_get_event_loop_new_process in test.test_asyncio.test_events when 1274sem_open() is not functional. 1275 1276.. 1277 1278.. bpo: 31174 1279.. date: 2017-10-24-11-36-10 1280.. nonce: xCvXcr 1281.. section: Tests 1282 1283Fix test_tools.test_unparse: DirectoryTestCase now stores the names sample 1284to always test the same files. It prevents false alarms when hunting 1285reference leaks. 1286 1287.. 1288 1289.. bpo: 28538 1290.. date: 2017-11-21-17-27-59 1291.. nonce: DsNBS7 1292.. section: Build 1293 1294Revert the previous changes, the if_nameindex structure is defined by 1295Unified Headers. 1296 1297.. 1298 1299.. bpo: 28762 1300.. date: 2017-11-21-17-12-24 1301.. nonce: R6uu8w 1302.. section: Build 1303 1304Revert the last commit, the F_LOCK macro is defined by Android Unified 1305Headers. 1306 1307.. 1308 1309.. bpo: 29040 1310.. date: 2017-11-21-16-56-24 1311.. nonce: 14lCSr 1312.. section: Build 1313 1314Support building Android with Unified Headers. The first NDK release to 1315support Unified Headers is android-ndk-r14. 1316 1317.. 1318 1319.. bpo: 32059 1320.. date: 2017-11-18-11-19-28 1321.. nonce: a0Hxgp 1322.. section: Build 1323 1324``detect_modules()`` in ``setup.py`` now also searches the sysroot paths 1325when cross-compiling. 1326 1327.. 1328 1329.. bpo: 31957 1330.. date: 2017-11-06-11-53-39 1331.. nonce: S_1jFK 1332.. section: Build 1333 1334Fixes Windows SDK version detection when building for Windows. 1335 1336.. 1337 1338.. bpo: 31609 1339.. date: 2017-11-04-15-35-08 1340.. nonce: k7_nBR 1341.. section: Build 1342 1343Fixes quotes in PCbuild/clean.bat 1344 1345.. 1346 1347.. bpo: 31934 1348.. date: 2017-11-03-15-17-50 1349.. nonce: 8bUlpv 1350.. section: Build 1351 1352Abort the build when building out of a not clean source tree. 1353 1354.. 1355 1356.. bpo: 31926 1357.. date: 2017-11-03-10-07-14 1358.. nonce: 57wE98 1359.. section: Build 1360 1361Fixed Argument Clinic sometimes causing compilation errors when there was 1362more than one function and/or method in a .c file with the same name. 1363 1364.. 1365 1366.. bpo: 28791 1367.. date: 2017-11-02-20-30-57 1368.. nonce: VaE3o8 1369.. section: Build 1370 1371Update Windows builds to use SQLite 3.21.0. 1372 1373.. 1374 1375.. bpo: 28791 1376.. date: 2017-11-02-20-13-46 1377.. nonce: STt3jL 1378.. section: Build 1379 1380Update OS X installer to use SQLite 3.21.0. 1381 1382.. 1383 1384.. bpo: 28643 1385.. date: 2017-11-01-14-16-27 1386.. nonce: 9iPKJy 1387.. section: Build 1388 1389Record profile-opt build progress with stamp files. 1390 1391.. 1392 1393.. bpo: 31866 1394.. date: 2017-10-24-23-21-13 1395.. nonce: MkNO66 1396.. section: Build 1397 1398Finish removing support for AtheOS. 1399 1400.. 1401 1402.. bpo: 1102 1403.. date: 2017-11-19-09-46-27 1404.. nonce: NY-g1F 1405.. section: Windows 1406 1407Return ``None`` when ``View.Fetch()`` returns ``ERROR_NO_MORE_ITEMS`` 1408instead of raising ``MSIError``. 1409Initial patch by Anthony Tuininga. 1410 1411.. 1412 1413.. bpo: 31944 1414.. date: 2017-11-04-15-29-47 1415.. nonce: 0Bx8tZ 1416.. section: Windows 1417 1418Fixes Modify button in Apps and Features dialog. 1419 1420.. 1421 1422.. bpo: 20486 1423.. date: 2017-10-26-23-02-57 1424.. nonce: 3IdsZ1 1425.. section: Windows 1426 1427Implement the ``Database.Close()`` method to help closing MSI database 1428objects. 1429 1430.. 1431 1432.. bpo: 31857 1433.. date: 2017-10-23-18-35-50 1434.. nonce: YwhEvc 1435.. section: Windows 1436 1437Make the behavior of USE_STACKCHECK deterministic in a multi-threaded 1438environment. 1439 1440.. 1441 1442.. bpo: 31392 1443.. date: 2017-12-04-21-57-43 1444.. nonce: f8huBC 1445.. section: macOS 1446 1447Update macOS installer to use OpenSSL 1.0.2m 1448 1449.. 1450 1451.. bpo: 32207 1452.. date: 2017-12-04-15-04-43 1453.. nonce: IzyAJo 1454.. section: IDLE 1455 1456Improve tk event exception tracebacks in IDLE. When tk event handling is 1457driven by IDLE's run loop, a confusing and distracting queue.EMPTY traceback 1458context is no longer added to tk event exception tracebacks. The traceback 1459is now the same as when event handling is driven by user code. Patch based 1460on a suggestion by Serhiy Storchaka. 1461 1462.. 1463 1464.. bpo: 32164 1465.. date: 2017-11-28-21-47-15 1466.. nonce: 2T2Na8 1467.. section: IDLE 1468 1469Delete unused file idlelib/tabbedpages.py. Use of TabbedPageSet in 1470configdialog was replaced by ttk.Notebook. 1471 1472.. 1473 1474.. bpo: 32100 1475.. date: 2017-11-21-08-26-08 1476.. nonce: P43qx2 1477.. section: IDLE 1478 1479IDLE: Fix old and new bugs in pathbrowser; improve tests. Patch mostly by 1480Cheryl Sabella. 1481 1482.. 1483 1484.. bpo: 31858 1485.. date: 2017-10-26-20-20-19 1486.. nonce: VuSA_e 1487.. section: IDLE 1488 1489IDLE -- Restrict shell prompt manipulation to the shell. Editor and output 1490windows only see an empty last prompt line. This simplifies the code and 1491fixes a minor bug when newline is inserted. Sys.ps1, if present, is read on 1492Shell start-up, but is not set or changed. 1493 1494.. 1495 1496.. bpo: 31860 1497.. date: 2017-10-24-16-21-50 1498.. nonce: gECuWx 1499.. section: IDLE 1500 1501The font sample in the IDLE configuration dialog is now editable. Changes 1502persist while IDLE remains open 1503 1504.. 1505 1506.. bpo: 31836 1507.. date: 2017-10-21-15-41-53 1508.. nonce: fheLME 1509.. section: IDLE 1510 1511Test_code_module now passes if run after test_idle, which sets ps1. 1512The code module uses sys.ps1 if present or sets it to '>>> ' if not. 1513Test_code_module now properly tests both behaviors. Ditto for ps2. 1514 1515.. 1516 1517.. bpo: 28603 1518.. date: 2017-10-17-13-26-13 1519.. nonce: TMEQfp 1520.. section: IDLE 1521 1522Fix a TypeError that caused a shell restart when printing a traceback that 1523includes an exception that is unhashable. Patch by Zane Bitter. 1524 1525.. 1526 1527.. bpo: 13802 1528.. date: 2017-10-12-00-51-29 1529.. nonce: VwjZRD 1530.. section: IDLE 1531 1532Use non-Latin characters in the IDLE's Font settings sample. Even if one 1533selects a font that defines a limited subset of the unicode Basic 1534Multilingual Plane, tcl/tk will use other fonts that define a character. The 1535expanded example give users of non-Latin characters a better idea of what 1536they might see in IDLE's shell and editors. 1537To make room for the expanded sample, frames on the Font tab are 1538re-arranged. The Font/Tabs help explains a bit about the additions. 1539 1540.. 1541 1542.. bpo: 32159 1543.. date: 2017-11-28-21-24-41 1544.. nonce: RSl4QK 1545.. section: Tools/Demos 1546 1547Remove CVS and Subversion tools: remove svneol.py and treesync.py scripts. 1548CPython migrated from CVS to Subversion, to Mercurial, and then to Git. CVS 1549and Subversion are no longer used to develop CPython. 1550 1551.. 1552 1553.. bpo: 30722 1554.. date: 2017-10-23-19-45-52 1555.. nonce: ioRlAu 1556.. section: Tools/Demos 1557 1558Make redemo work with Python 3.6 and newer versions. 1559Also, remove the ``LOCALE`` option since it doesn't work with string 1560patterns in Python 3. 1561Patch by Christoph Sarnowski. 1562 1563.. 1564 1565.. bpo: 20891 1566.. date: 2017-11-30-18-13-45 1567.. nonce: wBnMdF 1568.. section: C API 1569 1570Fix PyGILState_Ensure(). When PyGILState_Ensure() is called in a non-Python 1571thread before PyEval_InitThreads(), only call PyEval_InitThreads() after 1572calling PyThreadState_New() to fix a crash. 1573 1574.. 1575 1576.. bpo: 32125 1577.. date: 2017-11-24-21-25-43 1578.. nonce: K8zWgn 1579.. section: C API 1580 1581The ``Py_UseClassExceptionsFlag`` flag has been removed. It was deprecated 1582and wasn't used anymore since Python 2.0. 1583 1584.. 1585 1586.. bpo: 25612 1587.. date: 2017-10-22-13-12-28 1588.. nonce: 1jnWKT 1589.. section: C API 1590 1591Move the current exception state from the frame object to the co-routine. 1592This simplifies the interpreter and fixes a couple of obscure bugs caused by 1593having swap exception state when entering or exiting a generator. 1594 1595.. 1596 1597.. bpo: 23699 1598.. date: 2017-10-19-15-27-04 1599.. nonce: -noVVc 1600.. section: C API 1601 1602Add Py_RETURN_RICHCOMPARE macro to reduce boilerplate code in rich 1603comparison functions. 1604 1605.. 1606 1607.. bpo: 30697 1608.. date: 2017-06-30-11-58-01 1609.. nonce: Q3T_8n 1610.. section: C API 1611 1612The `PyExc_RecursionErrorInst` singleton is removed and 1613`PyErr_NormalizeException()` does not use it anymore. This singleton is 1614persistent and its members being never cleared may cause a segfault during 1615finalization of the interpreter. See also issue #22898. 1616