From 7fdefac8e8fdca29b329b27e6e50f3b265bd8900 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Tue, 30 Jan 2018 17:29:53 -0500 Subject: [PATCH 0001/1754] bpo-32726: Build macOS 10.9+ installer with private copy of Tcl/Tk 8.6 --- Mac/BuildScript/build-installer.py | 116 ++++++++++-------- .../issue19373_tk_8_5_15_source.patch | 13 -- Mac/BuildScript/resources/ReadMe.rtf | 26 ++-- Mac/BuildScript/resources/Welcome.rtf | 2 +- .../2018-01-30-07-13-10.bpo-32726.tcARLK.rst | 2 +- 5 files changed, 84 insertions(+), 75 deletions(-) delete mode 100644 Mac/BuildScript/issue19373_tk_8_5_15_source.patch diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index 8e2e104a0b7e11..1a7080c18f1b99 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -189,6 +189,11 @@ def getTargetCompilers(): # '/Library/Frameworks/Tk.framework/Versions/8.5/Tk'] EXPECTED_SHARED_LIBS = {} +# Are we building and linking with our own copy of Tcl/TK? +# For now, do so if deployment target is 10.9+. +def internalTk(): + return getDeptargetTuple() >= (10, 9) + # List of names of third party software built with this installer. # The names will be inserted into the rtf version of the License. THIRD_PARTY_LIBS = [] @@ -217,13 +222,12 @@ def library_recipes(): ), ]) -# Disable for now - if False: # if getDeptargetTuple() > (10, 5): + if internalTk(): result.extend([ dict( - name="Tcl 8.5.15", - url="ftp://ftp.tcl.tk/pub/tcl//tcl8_5/tcl8.5.15-src.tar.gz", - checksum='f3df162f92c69b254079c4d0af7a690f', + name="Tcl 8.6.7", + url="ftp://ftp.tcl.tk/pub/tcl//tcl8_6/tcl8.6.7-src.tar.gz", + checksum='5673aaf45b5de5d8dd80bb3daaeb8838', buildDir="unix", configure_pre=[ '--enable-shared', @@ -233,16 +237,13 @@ def library_recipes(): useLDFlags=False, install='make TCL_LIBRARY=%(TCL_LIBRARY)s && make install TCL_LIBRARY=%(TCL_LIBRARY)s DESTDIR=%(DESTDIR)s'%{ "DESTDIR": shellQuote(os.path.join(WORKDIR, 'libraries')), - "TCL_LIBRARY": shellQuote('/Library/Frameworks/Python.framework/Versions/%s/lib/tcl8.5'%(getVersion())), + "TCL_LIBRARY": shellQuote('/Library/Frameworks/Python.framework/Versions/%s/lib/tcl8.6'%(getVersion())), }, ), dict( - name="Tk 8.5.15", - url="ftp://ftp.tcl.tk/pub/tcl//tcl8_5/tk8.5.15-src.tar.gz", - checksum='55b8e33f903210a4e1c8bce0f820657f', - patches=[ - "issue19373_tk_8_5_15_source.patch", - ], + name="Tk 8.6.7", + url="ftp://ftp.tcl.tk/pub/tcl//tcl8_6/tk8.6.7-src.tar.gz", + checksum='46ea9c0165c515d87393700f4891ab6f', buildDir="unix", configure_pre=[ '--enable-aqua', @@ -253,8 +254,8 @@ def library_recipes(): useLDFlags=False, install='make TCL_LIBRARY=%(TCL_LIBRARY)s TK_LIBRARY=%(TK_LIBRARY)s && make install TCL_LIBRARY=%(TCL_LIBRARY)s TK_LIBRARY=%(TK_LIBRARY)s DESTDIR=%(DESTDIR)s'%{ "DESTDIR": shellQuote(os.path.join(WORKDIR, 'libraries')), - "TCL_LIBRARY": shellQuote('/Library/Frameworks/Python.framework/Versions/%s/lib/tcl8.5'%(getVersion())), - "TK_LIBRARY": shellQuote('/Library/Frameworks/Python.framework/Versions/%s/lib/tk8.5'%(getVersion())), + "TCL_LIBRARY": shellQuote('/Library/Frameworks/Python.framework/Versions/%s/lib/tcl8.6'%(getVersion())), + "TK_LIBRARY": shellQuote('/Library/Frameworks/Python.framework/Versions/%s/lib/tk8.6'%(getVersion())), }, ), ]) @@ -547,42 +548,45 @@ def checkEnvironment(): fatal("This script should be run on a macOS 10.5 (or later) system") # Because we only support dynamic load of only one major/minor version of + # Tcl/Tk, if we are not using building and using our own private copy of # Tcl/Tk, ensure: # 1. there is a user-installed framework (usually ActiveTcl) in (or linked # in) SDKROOT/Library/Frameworks. As of Python 3.7.0, we no longer # enforce that the version of the user-installed framework also # exists in the system-supplied Tcl/Tk frameworks. Time to support # Tcl/Tk 8.6 even if Apple does not. - - frameworks = {} - for framework in ['Tcl', 'Tk']: - fwpth = 'Library/Frameworks/%s.framework/Versions/Current' % framework - libfw = os.path.join('/', fwpth) - usrfw = os.path.join(os.getenv('HOME'), fwpth) - frameworks[framework] = os.readlink(libfw) - if not os.path.exists(libfw): - fatal("Please install a link to a current %s %s as %s so " - "the user can override the system framework." - % (framework, frameworks[framework], libfw)) - if os.path.exists(usrfw): - fatal("Please rename %s to avoid possible dynamic load issues." - % usrfw) - - if frameworks['Tcl'] != frameworks['Tk']: - fatal("The Tcl and Tk frameworks are not the same version.") - - print(" -- Building with Tcl/Tk %s frameworks" - % frameworks['Tk']) + if not internalTk(): + frameworks = {} + for framework in ['Tcl', 'Tk']: + fwpth = 'Library/Frameworks/%s.framework/Versions/Current' % framework + libfw = os.path.join('/', fwpth) + usrfw = os.path.join(os.getenv('HOME'), fwpth) + frameworks[framework] = os.readlink(libfw) + if not os.path.exists(libfw): + fatal("Please install a link to a current %s %s as %s so " + "the user can override the system framework." + % (framework, frameworks[framework], libfw)) + if os.path.exists(usrfw): + fatal("Please rename %s to avoid possible dynamic load issues." + % usrfw) + + if frameworks['Tcl'] != frameworks['Tk']: + fatal("The Tcl and Tk frameworks are not the same version.") + + print(" -- Building with external Tcl/Tk %s frameworks" + % frameworks['Tk']) + + # add files to check after build + EXPECTED_SHARED_LIBS['_tkinter.so'] = [ + "/Library/Frameworks/Tcl.framework/Versions/%s/Tcl" + % frameworks['Tcl'], + "/Library/Frameworks/Tk.framework/Versions/%s/Tk" + % frameworks['Tk'], + ] + else: + print(" -- Building private copy of Tcl/Tk") print("") - # add files to check after build - EXPECTED_SHARED_LIBS['_tkinter.so'] = [ - "/Library/Frameworks/Tcl.framework/Versions/%s/Tcl" - % frameworks['Tcl'], - "/Library/Frameworks/Tk.framework/Versions/%s/Tk" - % frameworks['Tk'], - ] - # Remove inherited environment variables which might influence build environ_var_prefixes = ['CPATH', 'C_INCLUDE_', 'DYLD_', 'LANG', 'LC_', 'LD_', 'LIBRARY_', 'PATH', 'PYTHON'] @@ -1086,12 +1090,18 @@ def buildPython(): "--with-universal-archs=%s " "%s " "%s " + "%s " + "%s " "LDFLAGS='-g -L%s/libraries/usr/local/lib' " "CFLAGS='-g -I%s/libraries/usr/local/include' 2>&1"%( shellQuote(os.path.join(SRCDIR, 'configure')), UNIVERSALARCHS, (' ', '--with-computed-gotos ')[PYTHON_3], (' ', '--without-ensurepip ')[PYTHON_3], + (' ', "--with-tcltk-includes='-I%s/libraries/usr/local/include'"%( + shellQuote(WORKDIR)[1:-1],))[internalTk()], + (' ', "--with-tcltk-libs='-L%s/libraries/usr/local/lib -ltcl8.6 -ltk8.6'"%( + shellQuote(WORKDIR)[1:-1],))[internalTk()], shellQuote(WORKDIR)[1:-1], shellQuote(WORKDIR)[1:-1])) @@ -1126,14 +1136,22 @@ def buildPython(): del os.environ['DYLD_LIBRARY_PATH'] print("Copying required shared libraries") if os.path.exists(os.path.join(WORKDIR, 'libraries', 'Library')): - runCommand("mv %s/* %s"%( - shellQuote(os.path.join( + build_lib_dir = os.path.join( WORKDIR, 'libraries', 'Library', 'Frameworks', - 'Python.framework', 'Versions', getVersion(), - 'lib')), - shellQuote(os.path.join(WORKDIR, '_root', 'Library', 'Frameworks', - 'Python.framework', 'Versions', getVersion(), - 'lib')))) + 'Python.framework', 'Versions', getVersion(), 'lib') + fw_lib_dir = os.path.join( + WORKDIR, '_root', 'Library', 'Frameworks', + 'Python.framework', 'Versions', getVersion(), 'lib') + if internalTk(): + # move Tcl and Tk pkgconfig files + runCommand("mv %s/pkgconfig/* %s/pkgconfig"%( + shellQuote(build_lib_dir), + shellQuote(fw_lib_dir) )) + runCommand("rm -r %s/pkgconfig"%( + shellQuote(build_lib_dir), )) + runCommand("mv %s/* %s"%( + shellQuote(build_lib_dir), + shellQuote(fw_lib_dir) )) frmDir = os.path.join(rootDir, 'Library', 'Frameworks', 'Python.framework') frmDirVersioned = os.path.join(frmDir, 'Versions', version) diff --git a/Mac/BuildScript/issue19373_tk_8_5_15_source.patch b/Mac/BuildScript/issue19373_tk_8_5_15_source.patch deleted file mode 100644 index de5d08e9d6c045..00000000000000 --- a/Mac/BuildScript/issue19373_tk_8_5_15_source.patch +++ /dev/null @@ -1,13 +0,0 @@ -Issue #19373: Patch to Tk 8.5.15 to correct refresh problem on OS x 10.9. -From upstream checkin https://core.tcl.tk/tk/info/5a5abf71f9 - ---- tk8.5.15/macosx/tkMacOSXDraw.c 2013-09-16 09:41:21.000000000 -0700 -+++ Tk_Source_Code-5a5abf71f9fdb0da/macosx/tkMacOSXDraw.c 2013-10-27 13:27:00.000000000 -0700 -@@ -1688,6 +1688,7 @@ - { - if (dcPtr->context) { - CGContextSynchronize(dcPtr->context); -+ [[dcPtr->view window] setViewsNeedDisplay:YES]; - [[dcPtr->view window] enableFlushWindow]; - if (dcPtr->focusLocked) { - [dcPtr->view unlockFocus]; diff --git a/Mac/BuildScript/resources/ReadMe.rtf b/Mac/BuildScript/resources/ReadMe.rtf index 1eea1e291bda43..cb005af7f051f6 100644 --- a/Mac/BuildScript/resources/ReadMe.rtf +++ b/Mac/BuildScript/resources/ReadMe.rtf @@ -31,6 +31,20 @@ For Python.3.7, python.org currently provides two installer variants for downloa \i0 variant. Use the 10.6 variant if you are running on macOS 10.6 through 10.8 or if you want to produce standalone applications that can run on systems from 10.6. If you are running on macOS 10.9 or later and if you have no need for compatibility with older systems, use the 10.9 variant. The Pythons installed by these installers are built with private copies of some third-party libraries not included with or newer than those in macOS itself. The list of these libraries varies by installer variant and is included at the end of the License.rtf file. \b \ul \ \ +Using IDLE or other Tk applications [NEW/CHANGED in 3.7.0b1] +\b0 \ulnone \ +\ +The 10.9+ installer variant comes with its own private version of Tcl/Tk 8.6. It does not use system-supplied or third-party supplied versions of Tcl/Tk.\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 For the 10.6+ variant, you continue to need to install a newer third-party version of the +\i Tcl/Tk +\i0 8.5 (not 8.6) frameworks to use IDLE or other programs that use the Tkinter graphical user interface toolkit. Visit {\field{\*\fldinst{HYPERLINK "https://www.python.org/download/mac/tcltk/"}}{\fldrslt https://www.python.org/download/mac/tcltk/}} for current information about supported and recommended versions of +\i Tcl/Tk +\i0 for this version of Python and of macOS.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\b \cf0 \ul \ulc0 \ Certificate verification and OpenSSL \{UPDATED in 3.7.0b1]\ \b0 \ulnone \ @@ -53,17 +67,7 @@ The bundled \f0 included with this installer has its own default certificate store for verifying download connections.\ \ -\b \ul Update your version of Tcl/Tk to use IDLE or other Tk applications [CHANGED in 3.7.0b1] -\b0 \ulnone \ -\ -To use IDLE or other programs that use the Tkinter graphical user interface toolkit, you need to install a newer third-party version of the -\i Tcl/Tk -\i0 frameworks. Visit {\field{\*\fldinst{HYPERLINK "https://www.python.org/download/mac/tcltk/"}}{\fldrslt https://www.python.org/download/mac/tcltk/}} for current information about supported and recommended versions of -\i Tcl/Tk -\i0 for this version of Python and of Mac OS X. For 3.7.0b1, the 10.9 installer variant is linked with Tcl/Tk 8.6 which you must install separately. The 10.6 installer links /with Tcl/Tk 8.5 which you should also download and install.\ - -\b \ul \ -Other changes\ +\b \ul Other changes\ \b0 \ulnone \ For other changes in this release, see the diff --git a/Mac/BuildScript/resources/Welcome.rtf b/Mac/BuildScript/resources/Welcome.rtf index 18f3290608ec99..4908fed0eaa55d 100644 --- a/Mac/BuildScript/resources/Welcome.rtf +++ b/Mac/BuildScript/resources/Welcome.rtf @@ -23,7 +23,7 @@ \ \b NEW in 3.7.0b1: -\b0 two installer variants (10.9+ 64-bit-only, 10.6+ 64-/32-bit), Tcl/Tk 8.6 support in the 10.9+ variant, OpenSSL 1.1.0g, and more!\ +\b0 two installer variants (10.9+ 64-bit-only, 10.6+ 64-/32-bit), built-in Tcl/Tk 8.6 support in the 10.9+ variant (no additional third-party downloads!), OpenSSL 1.1.0g, and more!\ \ \b IMPORTANT: diff --git a/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst b/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst index bb7ebf1a62d2d2..6bdf0f12e972ca 100644 --- a/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst +++ b/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst @@ -1,4 +1,4 @@ Provide an additional, more modern macOS installer variant that supports macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied third-party libraries to OpenSSL 1.1.0g and to SQLite 3.22.0. The 10.9+ installer now -links with Tcl/Tk 8.6. +links with and supplies its own copy of Tcl/Tk 8.6. From 9561d7f501bfb9e579ed57536c4c9b4e5eea68a3 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Tue, 30 Jan 2018 18:48:26 -0500 Subject: [PATCH 0002/1754] Update NEWS, docs, and patchlevel for 3.7.0b1 --- Include/patchlevel.h | 6 +- Lib/pydoc_data/topics.py | 199 +++- Misc/NEWS.d/3.7.0b1.rst | 888 ++++++++++++++++++ .../2018-01-16-08-32-49.bpo-29708.YCaHEx.rst | 2 - .../2018-01-18-11-10-52.bpo-32593.XIrf3v.rst | 1 - .../2018-01-19-14-50-19.bpo-32598.hP7bMV.rst | 3 - .../2018-01-23-15-33-40.bpo-32635.qHwIZy.rst | 2 - .../2017-12-28-15-22-05.bpo-10381.a1E6aF.rst | 2 - .../2018-01-26-17-29-29.bpo-32681.N1ruWa.rst | 2 - .../2017-08-07-16-46-56.bpo-31113.XgNEFg.rst | 1 - .../2017-08-10-17-32-48.bpo-31179.XcgLYI.rst | 1 - .../2017-11-02-00-34-42.bpo-31356.54Lb8U.rst | 3 - .../2017-12-03-22-29-13.bpo-32028.KC2w4Q.rst | 3 - .../2017-12-04-18-34-11.bpo-20891.C2TsfR.rst | 3 - .../2017-12-13-16-46-23.bpo-18533.Dlk8d7.rst | 3 - .../2017-12-28-00-20-42.bpo-32436.H159Jv.rst | 1 - .../2018-01-01-21-59-31.bpo-24340.hmKBvg.rst | 1 - .../2018-01-06-01-14-53.bpo-20104.9DkKb8.rst | 1 - .../2018-01-14-12-42-17.bpo-32550.k0EK-4.rst | 1 - .../2018-01-14-20-32-47.bpo-26163.xv9Iuv.rst | 2 - .../2018-01-16-18-51-58.bpo-32544.ga-cFE.rst | 3 - .../2018-01-19-01-54-22.bpo-31368.kzKqUR.rst | 1 - .../2018-01-20-00-50-33.bpo-32591.666kl6.rst | 4 - .../2018-01-25-17-03-46.bpo-32670.YsqJUC.rst | 5 - .../2018-01-26-20-11-09.bpo-32677.xTGfCq.rst | 2 - .../2018-01-28-09-26-07.bpo-32690.8i9g5P.rst | 2 - .../2018-01-28-09-52-12.bpo-32697.RHlu6k.rst | 3 - .../2018-01-28-12-25-06.bpo-32685.nGctze.rst | 3 - .../2018-01-28-15-09-33.bpo-28685.cHThLM.rst | 2 - .../2018-01-28-23-01-39.bpo-32650.Bbi7ek.rst | 2 - .../2018-01-29-01-15-17.bpo-32703.mwrF4-.rst | 2 - .../2018-01-22-21-13-46.bpo-17799.rdZ-Vk.rst | 2 - .../2018-01-27-23-36-31.bpo-32649.o7qOjF.rst | 2 - .../2018-01-30-09-00-19.bpo-32724.qPIaM-.rst | 2 - .../2017-09-07-19-12-47.bpo-14976.dx0Zxb.rst | 2 - .../2017-09-08-14-05-33.bpo-31399.FtBrrt.rst | 4 - .../2017-10-23-22-55-51.bpo-31853.h5fjrP.rst | 2 - .../2017-10-30-15-55-32.bpo-31900.-S9xc4.rst | 9 - .../2017-11-08-03-38-20.bpo-31961.x5Sv0R.rst | 4 - .../2017-12-11-15-14-55.bpo-29302.Nczj9l.rst | 1 - .../2017-12-14-01-36-25.bpo-32320.jwOZlr.rst | 1 - .../2017-12-15-15-34-12.bpo-32248.zmO8G2.rst | 6 - .../2017-12-19-09-23-46.bpo-32373.8qAkoW.rst | 1 - .../2017-12-21-22-00-11.bpo-22908.cVm89I.rst | 2 - .../2017-12-22-16-05-01.bpo-32410.8JzhvH.rst | 1 - .../2017-12-22-16-47-41.bpo-32228.waPx3q.rst | 1 - .../2017-12-23-14-51-46.bpo-32403.CVFapH.rst | 2 - .../2017-12-23-14-54-05.bpo-32404.yJqtlJ.rst | 2 - .../2017-12-24-20-01-09.bpo-28134.HJ8Beb.rst | 2 - .../2017-12-27-20-09-27.bpo-32433.vmxsVI.rst | 2 - .../2017-12-27-20-15-51.bpo-25942.Giyr8v.rst | 6 - .../2017-12-30-10-38-05.bpo-32454.wsZnl-.rst | 1 - .../2018-01-04-14-45-33.bpo-29237.zenYA6.rst | 1 - .../2018-01-07-09-22-26.bpo-32503.ViMxpD.rst | 1 - .../2018-01-08-15-53-37.bpo-32493.vTXxGN.rst | 1 - .../2018-01-08-18-02-33.bpo-32521.Kh-KoN.rst | 2 - .../2018-01-10-18-04-21.bpo-32102.9-CZgD.rst | 1 - .../2018-01-10-20-37-59.bpo-32473.mP_yJG.rst | 1 - .../2018-01-11-00-33-42.bpo-32467.YVEOv6.rst | 1 - .../2018-01-15-12-53-13.bpo-32521.IxX4Ba.rst | 1 - .../2018-01-16-20-37-28.bpo-32574.ru8eZ9.rst | 3 - .../2018-01-17-13-04-16.bpo-32576.iDL09t.rst | 2 - .../2018-01-18-13-47-40.bpo-31801.3UGH1h.rst | 2 - .../2018-01-19-19-57-45.bpo-32596.4aVIie.rst | 4 - .../2018-01-20-17-15-34.bpo-32502.OXJfn7.rst | 2 - .../2018-01-21-16-33-53.bpo-32304.TItrNv.rst | 2 - .../2018-01-22-18-18-44.bpo-32622.A1D6FP.rst | 1 - .../2018-01-23-01-57-36.bpo-32630.6KRHBs.rst | 1 - .../2018-01-24-00-32-58.bpo-32643.VWipsW.rst | 2 - .../2018-01-24-15-20-12.bpo-32391.0f8MY9.rst | 1 - .../2018-01-25-01-45-30.bpo-32662.oabhd8.rst | 3 - .../2018-01-25-03-46-00.bpo-32659.VHYoON.rst | 1 - .../2018-01-25-21-04-11.bpo-27931.e4r52t.rst | 1 - .../2018-01-26-01-26-00.bpo-32660.tVJIWV.rst | 2 - .../2018-01-27-11-20-16.bpo-32513.ak-iD2.rst | 2 - .../2018-01-28-01-21-47.bpo-32251.fOA5qB.rst | 1 - .../2018-01-28-07-55-10.bpo-21417.JFnV99.rst | 1 - .../2018-01-28-14-10-51.bpo-30306.TmKMXi.rst | 4 - .../2018-01-28-22-40-05.bpo-31429.qNt8rQ.rst | 4 - .../2018-01-28-23-48-45.bpo-25988.I9uBct.rst | 2 - .../2018-01-14-11-40-22.bpo-32549.fLwbVA.rst | 1 - .../2018-01-19-20-47-11.bpo-32602.dz41pq.rst | 1 - .../2018-01-26-21-29-09.bpo-32604.7iazNx.rst | 4 - .../2018-01-28-21-19-13.bpo-28414.a6Onzt.rst | 3 - .../2018-01-29-21-30-44.bpo-32721.2Bebm1.rst | 1 - .../2018-01-07-12-32-49.bpo-32507.vB4gxk.rst | 2 - .../2018-01-07-12-33-21.bpo-29911.ewSJKb.rst | 1 - .../2018-01-18-14-56-45.bpo-32588.vHww6F.rst | 2 - .../2018-01-30-04-40-12.bpo-28440.W_BUWU.rst | 2 - .../2018-01-30-07-13-10.bpo-32726.tcARLK.rst | 4 - README.rst | 4 +- 91 files changed, 1042 insertions(+), 242 deletions(-) create mode 100644 Misc/NEWS.d/3.7.0b1.rst delete mode 100644 Misc/NEWS.d/next/Build/2018-01-16-08-32-49.bpo-29708.YCaHEx.rst delete mode 100644 Misc/NEWS.d/next/Build/2018-01-18-11-10-52.bpo-32593.XIrf3v.rst delete mode 100644 Misc/NEWS.d/next/Build/2018-01-19-14-50-19.bpo-32598.hP7bMV.rst delete mode 100644 Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst delete mode 100644 Misc/NEWS.d/next/C API/2017-12-28-15-22-05.bpo-10381.a1E6aF.rst delete mode 100644 Misc/NEWS.d/next/C API/2018-01-26-17-29-29.bpo-32681.N1ruWa.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-08-07-16-46-56.bpo-31113.XgNEFg.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-08-10-17-32-48.bpo-31179.XcgLYI.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-11-02-00-34-42.bpo-31356.54Lb8U.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-12-03-22-29-13.bpo-32028.KC2w4Q.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-12-04-18-34-11.bpo-20891.C2TsfR.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-12-13-16-46-23.bpo-18533.Dlk8d7.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-12-28-00-20-42.bpo-32436.H159Jv.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-01-21-59-31.bpo-24340.hmKBvg.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-06-01-14-53.bpo-20104.9DkKb8.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-14-12-42-17.bpo-32550.k0EK-4.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-14-20-32-47.bpo-26163.xv9Iuv.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-16-18-51-58.bpo-32544.ga-cFE.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-19-01-54-22.bpo-31368.kzKqUR.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-20-00-50-33.bpo-32591.666kl6.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-25-17-03-46.bpo-32670.YsqJUC.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-26-20-11-09.bpo-32677.xTGfCq.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-52-12.bpo-32697.RHlu6k.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-28-12-25-06.bpo-32685.nGctze.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-28-15-09-33.bpo-28685.cHThLM.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-28-23-01-39.bpo-32650.Bbi7ek.rst delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-29-01-15-17.bpo-32703.mwrF4-.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2018-01-22-21-13-46.bpo-17799.rdZ-Vk.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2018-01-27-23-36-31.bpo-32649.o7qOjF.rst delete mode 100644 Misc/NEWS.d/next/Documentation/2018-01-30-09-00-19.bpo-32724.qPIaM-.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-09-07-19-12-47.bpo-14976.dx0Zxb.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-09-08-14-05-33.bpo-31399.FtBrrt.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-10-23-22-55-51.bpo-31853.h5fjrP.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-10-30-15-55-32.bpo-31900.-S9xc4.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-11-08-03-38-20.bpo-31961.x5Sv0R.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-11-15-14-55.bpo-29302.Nczj9l.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-14-01-36-25.bpo-32320.jwOZlr.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-15-15-34-12.bpo-32248.zmO8G2.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-19-09-23-46.bpo-32373.8qAkoW.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-21-22-00-11.bpo-22908.cVm89I.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-22-16-05-01.bpo-32410.8JzhvH.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-22-16-47-41.bpo-32228.waPx3q.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-23-14-51-46.bpo-32403.CVFapH.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-23-14-54-05.bpo-32404.yJqtlJ.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-24-20-01-09.bpo-28134.HJ8Beb.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-27-20-09-27.bpo-32433.vmxsVI.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-27-20-15-51.bpo-25942.Giyr8v.rst delete mode 100644 Misc/NEWS.d/next/Library/2017-12-30-10-38-05.bpo-32454.wsZnl-.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-04-14-45-33.bpo-29237.zenYA6.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-07-09-22-26.bpo-32503.ViMxpD.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-08-15-53-37.bpo-32493.vTXxGN.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-08-18-02-33.bpo-32521.Kh-KoN.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-10-18-04-21.bpo-32102.9-CZgD.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-10-20-37-59.bpo-32473.mP_yJG.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-11-00-33-42.bpo-32467.YVEOv6.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-15-12-53-13.bpo-32521.IxX4Ba.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-16-20-37-28.bpo-32574.ru8eZ9.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-17-13-04-16.bpo-32576.iDL09t.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-18-13-47-40.bpo-31801.3UGH1h.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-19-19-57-45.bpo-32596.4aVIie.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-20-17-15-34.bpo-32502.OXJfn7.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-21-16-33-53.bpo-32304.TItrNv.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-22-18-18-44.bpo-32622.A1D6FP.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-23-01-57-36.bpo-32630.6KRHBs.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-24-00-32-58.bpo-32643.VWipsW.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-24-15-20-12.bpo-32391.0f8MY9.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-25-01-45-30.bpo-32662.oabhd8.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-25-03-46-00.bpo-32659.VHYoON.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-25-21-04-11.bpo-27931.e4r52t.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-26-01-26-00.bpo-32660.tVJIWV.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-27-11-20-16.bpo-32513.ak-iD2.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-28-01-21-47.bpo-32251.fOA5qB.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-28-07-55-10.bpo-21417.JFnV99.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-28-14-10-51.bpo-30306.TmKMXi.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-28-22-40-05.bpo-31429.qNt8rQ.rst delete mode 100644 Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst delete mode 100644 Misc/NEWS.d/next/Tests/2018-01-14-11-40-22.bpo-32549.fLwbVA.rst delete mode 100644 Misc/NEWS.d/next/Tests/2018-01-19-20-47-11.bpo-32602.dz41pq.rst delete mode 100644 Misc/NEWS.d/next/Tests/2018-01-26-21-29-09.bpo-32604.7iazNx.rst delete mode 100644 Misc/NEWS.d/next/Tests/2018-01-28-21-19-13.bpo-28414.a6Onzt.rst delete mode 100644 Misc/NEWS.d/next/Tests/2018-01-29-21-30-44.bpo-32721.2Bebm1.rst delete mode 100644 Misc/NEWS.d/next/Windows/2018-01-07-12-32-49.bpo-32507.vB4gxk.rst delete mode 100644 Misc/NEWS.d/next/Windows/2018-01-07-12-33-21.bpo-29911.ewSJKb.rst delete mode 100644 Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst delete mode 100644 Misc/NEWS.d/next/macOS/2018-01-30-04-40-12.bpo-28440.W_BUWU.rst delete mode 100644 Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst diff --git a/Include/patchlevel.h b/Include/patchlevel.h index cea35de9493e37..87ab8ed17e5270 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -19,11 +19,11 @@ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 7 #define PY_MICRO_VERSION 0 -#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA -#define PY_RELEASE_SERIAL 4 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA +#define PY_RELEASE_SERIAL 1 /* Version as a string */ -#define PY_VERSION "3.7.0a4+" +#define PY_VERSION "3.7.0b1" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py index dc9591adc781fd..a979931e266c35 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Autogenerated by Sphinx on Mon Jan 8 21:23:03 2018 +# Autogenerated by Sphinx on Tue Jan 30 18:36:07 2018 topics = {'assert': 'The "assert" statement\n' '**********************\n' '\n' @@ -629,6 +629,18 @@ 'dictionary) is\n' ' unaffected.\n' '\n' + 'Changed in version 3.5: "__class__" module attribute is ' + 'now writable.\n' + '\n' + 'New in version 3.7: "__getattr__" and "__dir__" module ' + 'attributes.\n' + '\n' + 'See also:\n' + '\n' + ' **PEP 562** - Module __getattr__ and __dir__\n' + ' Describes the "__getattr__" and "__dir__" functions ' + 'on modules.\n' + '\n' '\n' 'Implementing Descriptors\n' '========================\n' @@ -2512,17 +2524,23 @@ 'have\n' '"return" annotation of the form ""-> expression"" after the ' 'parameter\n' - 'list. These annotations can be any valid Python expression and ' - 'are\n' - 'evaluated when the function definition is executed. Annotations ' - 'may\n' - 'be evaluated in a different order than they appear in the source ' - 'code.\n' - 'The presence of annotations does not change the semantics of a\n' - 'function. The annotation values are available as values of a\n' - "dictionary keyed by the parameters' names in the " - '"__annotations__"\n' - 'attribute of the function object.\n' + 'list. These annotations can be any valid Python expression. ' + 'The\n' + 'presence of annotations does not change the semantics of a ' + 'function.\n' + 'The annotation values are available as values of a dictionary ' + 'keyed by\n' + 'the parameters\' names in the "__annotations__" attribute of ' + 'the\n' + 'function object. If the "annotations" import from "__future__" ' + 'is\n' + 'used, annotations are preserved as strings at runtime which ' + 'enables\n' + 'postponed evaluation. Otherwise, they are evaluated when the ' + 'function\n' + 'definition is executed. In this case annotations may be ' + 'evaluated in\n' + 'a different order than they appear in the source code.\n' '\n' 'It is also possible to create anonymous functions (functions not ' 'bound\n' @@ -2554,6 +2572,21 @@ ' **PEP 3107** - Function Annotations\n' ' The original specification for function annotations.\n' '\n' + ' **PEP 484** - Type Hints\n' + ' Definition of a standard meaning for annotations: type ' + 'hints.\n' + '\n' + ' **PEP 526** - Syntax for Variable Annotations\n' + ' Ability to type hint variable declarations, including ' + 'class\n' + ' variables and instance variables\n' + '\n' + ' **PEP 563** - Postponed Evaluation of Annotations\n' + ' Support for forward references within annotations by ' + 'preserving\n' + ' annotations in a string form at runtime instead of eager\n' + ' evaluation.\n' + '\n' '\n' 'Class definitions\n' '=================\n' @@ -3748,33 +3781,30 @@ ' (com) end\n' ' (Pdb)\n' '\n' - ' To remove all commands from a breakpoint, type commands and ' - 'follow\n' - ' it immediately with "end"; that is, give no commands.\n' + ' To remove all commands from a breakpoint, type "commands" ' + 'and\n' + ' follow it immediately with "end"; that is, give no commands.\n' '\n' - ' With no *bpnumber* argument, commands refers to the last ' - 'breakpoint\n' - ' set.\n' + ' With no *bpnumber* argument, "commands" refers to the last\n' + ' breakpoint set.\n' '\n' ' You can use breakpoint commands to start your program up ' 'again.\n' - ' Simply use the continue command, or step, or any other ' - 'command that\n' - ' resumes execution.\n' + ' Simply use the "continue" command, or "step", or any other ' + 'command\n' + ' that resumes execution.\n' '\n' ' Specifying any command resuming execution (currently ' - 'continue,\n' - ' step, next, return, jump, quit and their abbreviations) ' - 'terminates\n' - ' the command list (as if that command was immediately followed ' - 'by\n' - ' end). This is because any time you resume execution (even ' - 'with a\n' - ' simple next or step), you may encounter another ' - 'breakpoint—which\n' - ' could have its own command list, leading to ambiguities about ' - 'which\n' - ' list to execute.\n' + '"continue",\n' + ' "step", "next", "return", "jump", "quit" and their ' + 'abbreviations)\n' + ' terminates the command "list" (as if that command was ' + 'immediately\n' + ' followed by end). This is because any time you resume ' + 'execution\n' + ' (even with a simple next or step), you may encounter another\n' + ' breakpoint—which could have its own command list, leading to\n' + ' ambiguities about which list to execute.\n' '\n' " If you use the 'silent' command in the command list, the " 'usual\n' @@ -5506,17 +5536,23 @@ 'have\n' '"return" annotation of the form ""-> expression"" after the ' 'parameter\n' - 'list. These annotations can be any valid Python expression and ' - 'are\n' - 'evaluated when the function definition is executed. Annotations ' - 'may\n' - 'be evaluated in a different order than they appear in the source ' - 'code.\n' - 'The presence of annotations does not change the semantics of a\n' - 'function. The annotation values are available as values of a\n' - "dictionary keyed by the parameters' names in the " - '"__annotations__"\n' - 'attribute of the function object.\n' + 'list. These annotations can be any valid Python expression. ' + 'The\n' + 'presence of annotations does not change the semantics of a ' + 'function.\n' + 'The annotation values are available as values of a dictionary ' + 'keyed by\n' + 'the parameters\' names in the "__annotations__" attribute of ' + 'the\n' + 'function object. If the "annotations" import from "__future__" ' + 'is\n' + 'used, annotations are preserved as strings at runtime which ' + 'enables\n' + 'postponed evaluation. Otherwise, they are evaluated when the ' + 'function\n' + 'definition is executed. In this case annotations may be ' + 'evaluated in\n' + 'a different order than they appear in the source code.\n' '\n' 'It is also possible to create anonymous functions (functions not ' 'bound\n' @@ -5546,7 +5582,22 @@ 'See also:\n' '\n' ' **PEP 3107** - Function Annotations\n' - ' The original specification for function annotations.\n', + ' The original specification for function annotations.\n' + '\n' + ' **PEP 484** - Type Hints\n' + ' Definition of a standard meaning for annotations: type ' + 'hints.\n' + '\n' + ' **PEP 526** - Syntax for Variable Annotations\n' + ' Ability to type hint variable declarations, including ' + 'class\n' + ' variables and instance variables\n' + '\n' + ' **PEP 563** - Postponed Evaluation of Annotations\n' + ' Support for forward references within annotations by ' + 'preserving\n' + ' annotations in a string form at runtime instead of eager\n' + ' evaluation.\n', 'global': 'The "global" statement\n' '**********************\n' '\n' @@ -6019,11 +6070,16 @@ '\n' '* other future statements.\n' '\n' - 'The features recognized by Python 3.0 are "absolute_import",\n' - '"division", "generators", "unicode_literals", "print_function",\n' - '"nested_scopes" and "with_statement". They are all redundant ' - 'because\n' - 'they are always enabled, and only kept for backwards ' + 'The only feature in Python 3.7 that requires using the future\n' + 'statement is "annotations".\n' + '\n' + 'All historical features enabled by the future statement are still\n' + 'recognized by Python 3. The list includes "absolute_import",\n' + '"division", "generators", "generator_stop", "unicode_literals",\n' + '"print_function", "nested_scopes" and "with_statement". They are ' + 'all\n' + 'redundant because they are always enabled, and only kept for ' + 'backwards\n' 'compatibility.\n' '\n' 'A future statement is recognized and treated specially at compile\n' @@ -8146,6 +8202,18 @@ 'dictionary) is\n' ' unaffected.\n' '\n' + 'Changed in version 3.5: "__class__" module attribute is now ' + 'writable.\n' + '\n' + 'New in version 3.7: "__getattr__" and "__dir__" module ' + 'attributes.\n' + '\n' + 'See also:\n' + '\n' + ' **PEP 562** - Module __getattr__ and __dir__\n' + ' Describes the "__getattr__" and "__dir__" functions on ' + 'modules.\n' + '\n' '\n' 'Implementing Descriptors\n' '------------------------\n' @@ -9547,6 +9615,27 @@ ' formatting options that can be specified in format ' 'strings.\n' '\n' + ' Note: When formatting a number ("int", "float", "float" ' + 'and\n' + ' subclasses) with the "n" type (ex: ' + '"\'{:n}\'.format(1234)"), the\n' + ' function sets temporarily the "LC_CTYPE" locale to ' + 'the\n' + ' "LC_NUMERIC" locale to decode "decimal_point" and ' + '"thousands_sep"\n' + ' fields of "localeconv()" if they are non-ASCII or ' + 'longer than 1\n' + ' byte, and the "LC_NUMERIC" locale is different than ' + 'the\n' + ' "LC_CTYPE" locale. This temporary change affects ' + 'other threads.\n' + '\n' + ' Changed in version 3.7: When formatting a number with ' + 'the "n" type,\n' + ' the function sets temporarily the "LC_CTYPE" locale to ' + 'the\n' + ' "LC_NUMERIC" locale in some cases.\n' + '\n' 'str.format_map(mapping)\n' '\n' ' Similar to "str.format(**mapping)", except that ' @@ -9598,6 +9687,16 @@ 'Unicode\n' ' Standard.\n' '\n' + 'str.isascii()\n' + '\n' + ' Return true if the string is empty or all characters in ' + 'the string\n' + ' are ASCII, false otherwise. ASCII characters have code ' + 'points in\n' + ' the range U+0000-U+007F.\n' + '\n' + ' New in version 3.7.\n' + '\n' 'str.isdecimal()\n' '\n' ' Return true if all characters in the string are decimal ' diff --git a/Misc/NEWS.d/3.7.0b1.rst b/Misc/NEWS.d/3.7.0b1.rst new file mode 100644 index 00000000000000..4f7bfee85cbb3e --- /dev/null +++ b/Misc/NEWS.d/3.7.0b1.rst @@ -0,0 +1,888 @@ +.. bpo: 32703 +.. date: 2018-01-29-01-15-17 +.. nonce: mwrF4- +.. release date: 2018-01-30 +.. section: Core and Builtins + +Fix coroutine's ResourceWarning when there's an active error set when it's +being finalized. + +.. + +.. bpo: 32650 +.. date: 2018-01-28-23-01-39 +.. nonce: Bbi7ek +.. section: Core and Builtins + +Pdb and other debuggers dependent on bdb.py will correctly step over (next +command) native coroutines. Patch by Pablo Galindo. + +.. + +.. bpo: 28685 +.. date: 2018-01-28-15-09-33 +.. nonce: cHThLM +.. section: Core and Builtins + +Optimize list.sort() and sorted() by using type specialized comparisons when +possible. + +.. + +.. bpo: 32685 +.. date: 2018-01-28-12-25-06 +.. nonce: nGctze +.. section: Core and Builtins + +Improve suggestion when the Python 2 form of print statement is either +present on the same line as the header of a compound statement or else +terminated by a semi-colon instead of a newline. Patch by Nitish Chandra. + +.. + +.. bpo: 32697 +.. date: 2018-01-28-09-52-12 +.. nonce: RHlu6k +.. section: Core and Builtins + +Python now explicitly preserves the definition order of keyword-only +parameters. It's always preserved their order, but this behavior was never +guaranteed before; this behavior is now guaranteed and tested. + +.. + +.. bpo: 32690 +.. date: 2018-01-28-09-26-07 +.. nonce: 8i9g5P +.. section: Core and Builtins + +The locals() dictionary now displays in the lexical order that variables +were defined. Previously, the order was reversed. + +.. + +.. bpo: 32677 +.. date: 2018-01-26-20-11-09 +.. nonce: xTGfCq +.. section: Core and Builtins + +Add ``.isascii()`` method to ``str``, ``bytes`` and ``bytearray``. It can be +used to test that string contains only ASCII characters. + +.. + +.. bpo: 32670 +.. date: 2018-01-25-17-03-46 +.. nonce: YsqJUC +.. section: Core and Builtins + +Enforce :pep:`479` for all code. + +This means that manually raising a StopIteration exception from a generator +is prohibited for all code, regardless of whether 'from __future__ import +generator_stop' was used or not. + +.. + +.. bpo: 32591 +.. date: 2018-01-20-00-50-33 +.. nonce: 666kl6 +.. section: Core and Builtins + +Added built-in support for tracking the origin of coroutine objects; see +sys.set_coroutine_origin_tracking_depth and CoroutineType.cr_origin. This +replaces the asyncio debug mode's use of coroutine wrapping for native +coroutine objects. + +.. + +.. bpo: 31368 +.. date: 2018-01-19-01-54-22 +.. nonce: kzKqUR +.. section: Core and Builtins + +Expose preadv and pwritev system calls in the os module. Patch by Pablo +Galindo + +.. + +.. bpo: 32544 +.. date: 2018-01-16-18-51-58 +.. nonce: ga-cFE +.. section: Core and Builtins + +``hasattr(obj, name)`` and ``getattr(obj, name, default)`` are about 4 times +faster than before when ``name`` is not found and ``obj`` doesn't override +``__getattr__`` or ``__getattribute__``. + +.. + +.. bpo: 26163 +.. date: 2018-01-14-20-32-47 +.. nonce: xv9Iuv +.. section: Core and Builtins + +Improved frozenset() hash to create more distinct hash values when faced +with datasets containing many similar values. + +.. + +.. bpo: 32550 +.. date: 2018-01-14-12-42-17 +.. nonce: k0EK-4 +.. section: Core and Builtins + +Remove the STORE_ANNOTATION bytecode. + +.. + +.. bpo: 20104 +.. date: 2018-01-06-01-14-53 +.. nonce: 9DkKb8 +.. section: Core and Builtins + +Expose posix_spawn as a low level API in the os module. + +.. + +.. bpo: 24340 +.. date: 2018-01-01-21-59-31 +.. nonce: hmKBvg +.. section: Core and Builtins + +Fixed estimation of the code stack size. + +.. + +.. bpo: 32436 +.. date: 2017-12-28-00-20-42 +.. nonce: H159Jv +.. section: Core and Builtins + +Implement :pep:`567` Context Variables. + +.. + +.. bpo: 18533 +.. date: 2017-12-13-16-46-23 +.. nonce: Dlk8d7 +.. section: Core and Builtins + +``repr()`` on a dict containing its own ``values()`` or ``items()`` no +longer raises ``RecursionError``; OrderedDict similarly. Instead, use +``...``, as for other recursive structures. Patch by Ben North. + +.. + +.. bpo: 20891 +.. date: 2017-12-04-18-34-11 +.. nonce: C2TsfR +.. section: Core and Builtins + +Py_Initialize() now creates the GIL. The GIL is no longer created "on +demand" to fix a race condition when PyGILState_Ensure() is called in a non- +Python thread. + +.. + +.. bpo: 32028 +.. date: 2017-12-03-22-29-13 +.. nonce: KC2w4Q +.. section: Core and Builtins + +Leading whitespace is now correctly ignored when generating suggestions for +converting Py2 print statements to Py3 builtin print function calls. Patch +by Sanyam Khurana. + +.. + +.. bpo: 31356 +.. date: 2017-11-02-00-34-42 +.. nonce: 54Lb8U +.. section: Core and Builtins + +Add a new contextmanager to the gc module that temporarily disables the GC +and restores the previous state. The implementation is done in C to assure +atomicity and speed. + +.. + +.. bpo: 31179 +.. date: 2017-08-10-17-32-48 +.. nonce: XcgLYI +.. section: Core and Builtins + +Make dict.copy() up to 5.5 times faster. + +.. + +.. bpo: 31113 +.. date: 2017-08-07-16-46-56 +.. nonce: XgNEFg +.. section: Core and Builtins + +Get rid of recursion in the compiler for normal control flow. + +.. + +.. bpo: 25988 +.. date: 2018-01-28-23-48-45 +.. nonce: I9uBct +.. section: Library + +Deprecate exposing the contents of collections.abc in the regular +collections module. + +.. + +.. bpo: 31429 +.. date: 2018-01-28-22-40-05 +.. nonce: qNt8rQ +.. section: Library + +The default cipher suite selection of the ssl module now uses a blacklist +approach rather than a hard-coded whitelist. Python no longer re-enables +ciphers that have been blocked by OpenSSL security update. Default cipher +suite selection can be configured on compile time. + +.. + +.. bpo: 30306 +.. date: 2018-01-28-14-10-51 +.. nonce: TmKMXi +.. section: Library + +contextlib.contextmanager now releases the arguments passed to the +underlying generator as soon as the context manager is entered. Previously +it would keep them alive for as long as the context manager was alive, even +when not being used as a function decorator. Patch by Martin Teichmann. + +.. + +.. bpo: 21417 +.. date: 2018-01-28-07-55-10 +.. nonce: JFnV99 +.. section: Library + +Added support for setting the compression level for zipfile.ZipFile. + +.. + +.. bpo: 32251 +.. date: 2018-01-28-01-21-47 +.. nonce: fOA5qB +.. section: Library + +Implement asyncio.BufferedProtocol (provisional API). + +.. + +.. bpo: 32513 +.. date: 2018-01-27-11-20-16 +.. nonce: ak-iD2 +.. section: Library + +In dataclasses, allow easier overriding of dunder methods without specifying +decorator parameters. + +.. + +.. bpo: 32660 +.. date: 2018-01-26-01-26-00 +.. nonce: tVJIWV +.. section: Library + +:mod:`termios` makes available ``FIONREAD``, ``FIONCLEX``, ``FIOCLEX``, +``FIOASYNC`` and ``FIONBIO`` also under Solaris/derivatives. + +.. + +.. bpo: 27931 +.. date: 2018-01-25-21-04-11 +.. nonce: e4r52t +.. section: Library + +Fix email address header parsing error when the username is an empty quoted +string. Patch by Xiang Zhang. + +.. + +.. bpo: 32659 +.. date: 2018-01-25-03-46-00 +.. nonce: VHYoON +.. section: Library + +Under Solaris and derivatives, :class:`os.stat_result` provides a st_fstype +attribute. + +.. + +.. bpo: 32662 +.. date: 2018-01-25-01-45-30 +.. nonce: oabhd8 +.. section: Library + +Implement Server.start_serving(), Server.serve_forever(), and +Server.is_serving() methods. Add 'start_serving' keyword parameter to +loop.create_server() and loop.create_unix_server(). + +.. + +.. bpo: 32391 +.. date: 2018-01-24-15-20-12 +.. nonce: 0f8MY9 +.. section: Library + +Implement :meth:`asyncio.StreamWriter.wait_closed` and +:meth:`asyncio.StreamWriter.is_closing` methods + +.. + +.. bpo: 32643 +.. date: 2018-01-24-00-32-58 +.. nonce: VWipsW +.. section: Library + +Make Task._step, Task._wakeup and Future._schedule_callbacks methods +private. + +.. + +.. bpo: 32630 +.. date: 2018-01-23-01-57-36 +.. nonce: 6KRHBs +.. section: Library + +Refactor decimal module to use contextvars to store decimal context. + +.. + +.. bpo: 32622 +.. date: 2018-01-22-18-18-44 +.. nonce: A1D6FP +.. section: Library + +Add :meth:`asyncio.AbstractEventLoop.sendfile` method. + +.. + +.. bpo: 32304 +.. date: 2018-01-21-16-33-53 +.. nonce: TItrNv +.. section: Library + +distutils' upload command no longer corrupts tar files ending with a CR +byte, and no longer tries to convert CR to CRLF in any of the upload text +fields. + +.. + +.. bpo: 32502 +.. date: 2018-01-20-17-15-34 +.. nonce: OXJfn7 +.. section: Library + +uuid.uuid1 no longer raises an exception if a 64-bit hardware address is +encountered. + +.. + +.. bpo: 32596 +.. date: 2018-01-19-19-57-45 +.. nonce: 4aVIie +.. section: Library + +``concurrent.futures`` imports ``ThreadPoolExecutor`` and +``ProcessPoolExecutor`` lazily (using :pep:`562`). It makes ``import +asyncio`` about 15% faster because asyncio uses only ``ThreadPoolExecutor`` +by default. + +.. + +.. bpo: 31801 +.. date: 2018-01-18-13-47-40 +.. nonce: 3UGH1h +.. section: Library + +Add ``_ignore_`` to ``Enum`` so temporary variables can be used during class +construction without being turned into members. + +.. + +.. bpo: 32576 +.. date: 2018-01-17-13-04-16 +.. nonce: iDL09t +.. section: Library + +Use queue.SimpleQueue() in places where it can be invoked from a weakref +callback. + +.. + +.. bpo: 32574 +.. date: 2018-01-16-20-37-28 +.. nonce: ru8eZ9 +.. section: Library + +Fix memory leak in asyncio.Queue, when the queue has limited size and it is +full, the cancelation of queue.put() can cause a memory leak. Patch by: José +Melero. + +.. + +.. bpo: 32521 +.. date: 2018-01-15-12-53-13 +.. nonce: IxX4Ba +.. section: Library + +The nis module is now compatible with new libnsl and headers location. + +.. + +.. bpo: 32467 +.. date: 2018-01-11-00-33-42 +.. nonce: YVEOv6 +.. section: Library + +collections.abc.ValuesView now inherits from collections.abc.Collection. + +.. + +.. bpo: 32473 +.. date: 2018-01-10-20-37-59 +.. nonce: mP_yJG +.. section: Library + +Improve ABCMeta._dump_registry() output readability + +.. + +.. bpo: 32102 +.. date: 2018-01-10-18-04-21 +.. nonce: 9-CZgD +.. section: Library + +New argument ``capture_output`` for subprocess.run + +.. + +.. bpo: 32521 +.. date: 2018-01-08-18-02-33 +.. nonce: Kh-KoN +.. section: Library + +glibc has removed Sun RPC. Use replacement libtirpc headers and library in +nis module. + +.. + +.. bpo: 32493 +.. date: 2018-01-08-15-53-37 +.. nonce: vTXxGN +.. section: Library + +UUID module fixes build for FreeBSD/OpenBSD + +.. + +.. bpo: 32503 +.. date: 2018-01-07-09-22-26 +.. nonce: ViMxpD +.. section: Library + +Pickling with protocol 4 no longer creates too small frames. + +.. + +.. bpo: 29237 +.. date: 2018-01-04-14-45-33 +.. nonce: zenYA6 +.. section: Library + +Create enum for pstats sorting options + +.. + +.. bpo: 32454 +.. date: 2017-12-30-10-38-05 +.. nonce: wsZnl- +.. section: Library + +Add close(fd) function to the socket module. + +.. + +.. bpo: 25942 +.. date: 2017-12-27-20-15-51 +.. nonce: Giyr8v +.. section: Library + +The subprocess module is now more graceful when handling a Ctrl-C +KeyboardInterrupt during subprocess.call, subprocess.run, or a Popen context +manager. It now waits a short amount of time for the child (presumed to +have also gotten the SIGINT) to exit, before continuing the +KeyboardInterrupt exception handling. This still includes a SIGKILL in the +call() and run() APIs, but at least the child had a chance first. + +.. + +.. bpo: 32433 +.. date: 2017-12-27-20-09-27 +.. nonce: vmxsVI +.. section: Library + +The hmac module now has hmac.digest(), which provides an optimized HMAC +digest. + +.. + +.. bpo: 28134 +.. date: 2017-12-24-20-01-09 +.. nonce: HJ8Beb +.. section: Library + +Sockets now auto-detect family, type and protocol from file descriptor by +default. + +.. + +.. bpo: 32404 +.. date: 2017-12-23-14-54-05 +.. nonce: yJqtlJ +.. section: Library + +Fix bug where :meth:`datetime.datetime.fromtimestamp` did not call __new__ +in :class:`datetime.datetime` subclasses. + +.. + +.. bpo: 32403 +.. date: 2017-12-23-14-51-46 +.. nonce: CVFapH +.. section: Library + +Improved speed of :class:`datetime.date` and :class:`datetime.datetime` +alternate constructors. + +.. + +.. bpo: 32228 +.. date: 2017-12-22-16-47-41 +.. nonce: waPx3q +.. section: Library + +Ensure that ``truncate()`` preserves the file position (as reported by +``tell()``) after writes longer than the buffer size. + +.. + +.. bpo: 32410 +.. date: 2017-12-22-16-05-01 +.. nonce: 8JzhvH +.. section: Library + +Implement ``loop.sock_sendfile`` for asyncio event loop. + +.. + +.. bpo: 22908 +.. date: 2017-12-21-22-00-11 +.. nonce: cVm89I +.. section: Library + +Added seek and tell to the ZipExtFile class. This only works if the file +object used to open the zipfile is seekable. + +.. + +.. bpo: 32373 +.. date: 2017-12-19-09-23-46 +.. nonce: 8qAkoW +.. section: Library + +Add socket.getblocking() method. + +.. + +.. bpo: 32248 +.. date: 2017-12-15-15-34-12 +.. nonce: zmO8G2 +.. section: Library + +Add :mod:`importlib.resources` and :class:`importlib.abc.ResourceReader` as +the unified API for reading resources contained within packages. Loaders +wishing to support resource reading must implement the +:meth:`get_resource_reader()` method. File-based and zipimport-based +loaders both implement these APIs. :class:`importlib.abc.ResourceLoader` is +deprecated in favor of these new APIs. + +.. + +.. bpo: 32320 +.. date: 2017-12-14-01-36-25 +.. nonce: jwOZlr +.. section: Library + +collections.namedtuple() now supports default values. + +.. + +.. bpo: 29302 +.. date: 2017-12-11-15-14-55 +.. nonce: Nczj9l +.. section: Library + +Add contextlib.AsyncExitStack. Patch by Alexander Mohr and Ilya Kulakov. + +.. + +.. bpo: 31961 +.. date: 2017-11-08-03-38-20 +.. nonce: x5Sv0R +.. section: Library + +The *args* argument of subprocess.Popen can now be a :term:`path-like +object`. If *args* is given as a sequence, it's first element can now be a +:term:`path-like object` as well. + +.. + +.. bpo: 31900 +.. date: 2017-10-30-15-55-32 +.. nonce: -S9xc4 +.. section: Library + +The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` +locale to the ``LC_NUMERIC`` locale to decode ``decimal_point`` and +``thousands_sep`` byte strings if they are non-ASCII or longer than 1 byte, +and the ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. +This temporary change affects other threads. + +Same change for the :meth:`str.format` method when formatting a number +(:class:`int`, :class:`float`, :class:`float` and subclasses) with the ``n`` +type (ex: ``'{:n}'.format(1234)``). + +.. + +.. bpo: 31853 +.. date: 2017-10-23-22-55-51 +.. nonce: h5fjrP +.. section: Library + +Use super().method instead of socket.method in SSLSocket. They were there +most likely for legacy reasons. + +.. + +.. bpo: 31399 +.. date: 2017-09-08-14-05-33 +.. nonce: FtBrrt +.. section: Library + +The ssl module now uses OpenSSL's X509_VERIFY_PARAM_set1_host() and +X509_VERIFY_PARAM_set1_ip() API to verify hostname and IP addresses. Subject +common name fallback can be disabled with +SSLContext.hostname_checks_common_name. + +.. + +.. bpo: 14976 +.. date: 2017-09-07-19-12-47 +.. nonce: dx0Zxb +.. section: Library + +Add a queue.SimpleQueue class, an unbounded FIFO queue with a reentrant C +implementation of put(). + +.. + +.. bpo: 32724 +.. date: 2018-01-30-09-00-19 +.. nonce: qPIaM- +.. section: Documentation + +Add references to some commands in the documentation of Pdb. Patch by +Stéphane Wirtel + +.. + +.. bpo: 32649 +.. date: 2018-01-27-23-36-31 +.. nonce: o7qOjF +.. section: Documentation + +Complete the C API documentation, profiling and tracing part with the newly +added per-opcode events. + +.. + +.. bpo: 17799 +.. date: 2018-01-22-21-13-46 +.. nonce: rdZ-Vk +.. section: Documentation + +Explain real behaviour of sys.settrace and sys.setprofile and their C-API +counterparts regarding which type of events are received in each function. +Patch by Pablo Galindo Salgado. + +.. + +.. bpo: 32721 +.. date: 2018-01-29-21-30-44 +.. nonce: 2Bebm1 +.. section: Tests + +Fix test_hashlib to not fail if the _md5 module is not built. + +.. + +.. bpo: 28414 +.. date: 2018-01-28-21-19-13 +.. nonce: a6Onzt +.. section: Tests + +Add test cases for IDNA 2003 and 2008 host names. IDNA 2003 +internationalized host names are working since bpo-31399 has landed. IDNA +2008 are still broken. + +.. + +.. bpo: 32604 +.. date: 2018-01-26-21-29-09 +.. nonce: 7iazNx +.. section: Tests + +Add a new "_xxsubinterpreters" extension module that exposes the existing +subinterpreter C-API and a new cross-interpreter data sharing mechanism. The +module is primarily intended for more thorough testing of the existing +subinterpreter support. + +.. + +.. bpo: 32602 +.. date: 2018-01-19-20-47-11 +.. nonce: dz41pq +.. section: Tests + +Add test certs and test for ECDSA cert and EC/RSA dual mode. + +.. + +.. bpo: 32549 +.. date: 2018-01-14-11-40-22 +.. nonce: fLwbVA +.. section: Tests + +On Travis CI, Python now Compiles and uses a local copy of OpenSSL 1.1.0g +for testing. + +.. + +.. bpo: 32635 +.. date: 2018-01-23-15-33-40 +.. nonce: qHwIZy +.. section: Build + +Fix segfault of the crypt module when libxcrypt is provided instead of +libcrypt at the system. + +.. + +.. bpo: 32598 +.. date: 2018-01-19-14-50-19 +.. nonce: hP7bMV +.. section: Build + +Use autoconf to detect OpenSSL libs, headers and supported features. The +ax_check_openssl M4 macro uses pkg-config to locate OpenSSL and falls back +to manual search. + +.. + +.. bpo: 32593 +.. date: 2018-01-18-11-10-52 +.. nonce: XIrf3v +.. section: Build + +Drop support of FreeBSD 9 and older. + +.. + +.. bpo: 29708 +.. date: 2018-01-16-08-32-49 +.. nonce: YCaHEx +.. section: Build + +If the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, +:mod:`py_compile` will always create hash-based ``.pyc`` files. + +.. + +.. bpo: 32588 +.. date: 2018-01-18-14-56-45 +.. nonce: vHww6F +.. section: Windows + +Create standalone _distutils_findvs module and add missing _queue module to +installer. + +.. + +.. bpo: 29911 +.. date: 2018-01-07-12-33-21 +.. nonce: ewSJKb +.. section: Windows + +Ensure separate Modify and Uninstall buttons are displayed. + +.. + +.. bpo: 32507 +.. date: 2018-01-07-12-32-49 +.. nonce: vB4gxk +.. section: Windows + +Use app-local UCRT install rather than the proper update for old versions of +Windows. + +.. + +.. bpo: 32726 +.. date: 2018-01-30-07-13-10 +.. nonce: tcARLK +.. section: macOS + +Provide an additional, more modern macOS installer variant that supports +macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied third-party +libraries to OpenSSL 1.1.0g and to SQLite 3.22.0. The 10.9+ installer now +links with and supplies its own copy of Tcl/Tk 8.6. + +.. + +.. bpo: 28440 +.. date: 2018-01-30-04-40-12 +.. nonce: W_BUWU +.. section: macOS + +No longer add /Library/Python/3.x/site-packages to sys.path for macOS +framework builds to avoid future conflicts. + +.. + +.. bpo: 32681 +.. date: 2018-01-26-17-29-29 +.. nonce: N1ruWa +.. section: C API + +Fix uninitialized variable 'res' in the C implementation of os.dup2. Patch +by Stéphane Wirtel + +.. + +.. bpo: 10381 +.. date: 2017-12-28-15-22-05 +.. nonce: a1E6aF +.. section: C API + +Add C API access to the ``datetime.timezone`` constructor and +``datetime.timzone.UTC`` singleton. diff --git a/Misc/NEWS.d/next/Build/2018-01-16-08-32-49.bpo-29708.YCaHEx.rst b/Misc/NEWS.d/next/Build/2018-01-16-08-32-49.bpo-29708.YCaHEx.rst deleted file mode 100644 index e52c0018e5e10d..00000000000000 --- a/Misc/NEWS.d/next/Build/2018-01-16-08-32-49.bpo-29708.YCaHEx.rst +++ /dev/null @@ -1,2 +0,0 @@ -If the :envvar:`SOURCE_DATE_EPOCH` environment variable is set, -:mod:`py_compile` will always create hash-based ``.pyc`` files. diff --git a/Misc/NEWS.d/next/Build/2018-01-18-11-10-52.bpo-32593.XIrf3v.rst b/Misc/NEWS.d/next/Build/2018-01-18-11-10-52.bpo-32593.XIrf3v.rst deleted file mode 100644 index e033cf2cedf68d..00000000000000 --- a/Misc/NEWS.d/next/Build/2018-01-18-11-10-52.bpo-32593.XIrf3v.rst +++ /dev/null @@ -1 +0,0 @@ -Drop support of FreeBSD 9 and older. diff --git a/Misc/NEWS.d/next/Build/2018-01-19-14-50-19.bpo-32598.hP7bMV.rst b/Misc/NEWS.d/next/Build/2018-01-19-14-50-19.bpo-32598.hP7bMV.rst deleted file mode 100644 index 4b05e73feef969..00000000000000 --- a/Misc/NEWS.d/next/Build/2018-01-19-14-50-19.bpo-32598.hP7bMV.rst +++ /dev/null @@ -1,3 +0,0 @@ -Use autoconf to detect OpenSSL libs, headers and supported features. The -ax_check_openssl M4 macro uses pkg-config to locate OpenSSL and falls back -to manual search. diff --git a/Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst b/Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst deleted file mode 100644 index d411890f5d884e..00000000000000 --- a/Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix segfault of the crypt module when libxcrypt is provided instead of -libcrypt at the system. diff --git a/Misc/NEWS.d/next/C API/2017-12-28-15-22-05.bpo-10381.a1E6aF.rst b/Misc/NEWS.d/next/C API/2017-12-28-15-22-05.bpo-10381.a1E6aF.rst deleted file mode 100644 index 26717692d03876..00000000000000 --- a/Misc/NEWS.d/next/C API/2017-12-28-15-22-05.bpo-10381.a1E6aF.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add C API access to the ``datetime.timezone`` constructor and -``datetime.timzone.UTC`` singleton. diff --git a/Misc/NEWS.d/next/C API/2018-01-26-17-29-29.bpo-32681.N1ruWa.rst b/Misc/NEWS.d/next/C API/2018-01-26-17-29-29.bpo-32681.N1ruWa.rst deleted file mode 100644 index 1506ec797c4bd3..00000000000000 --- a/Misc/NEWS.d/next/C API/2018-01-26-17-29-29.bpo-32681.N1ruWa.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix uninitialized variable 'res' in the C implementation of os.dup2. Patch -by Stéphane Wirtel diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-08-07-16-46-56.bpo-31113.XgNEFg.rst b/Misc/NEWS.d/next/Core and Builtins/2017-08-07-16-46-56.bpo-31113.XgNEFg.rst deleted file mode 100644 index 3ecdf2ff086d0c..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-08-07-16-46-56.bpo-31113.XgNEFg.rst +++ /dev/null @@ -1 +0,0 @@ -Get rid of recursion in the compiler for normal control flow. diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-08-10-17-32-48.bpo-31179.XcgLYI.rst b/Misc/NEWS.d/next/Core and Builtins/2017-08-10-17-32-48.bpo-31179.XcgLYI.rst deleted file mode 100644 index 12ebc8bfc7976c..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-08-10-17-32-48.bpo-31179.XcgLYI.rst +++ /dev/null @@ -1 +0,0 @@ -Make dict.copy() up to 5.5 times faster. diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-11-02-00-34-42.bpo-31356.54Lb8U.rst b/Misc/NEWS.d/next/Core and Builtins/2017-11-02-00-34-42.bpo-31356.54Lb8U.rst deleted file mode 100644 index 792f314c7a6d49..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-11-02-00-34-42.bpo-31356.54Lb8U.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add a new contextmanager to the gc module that temporarily disables the GC -and restores the previous state. The implementation is done in C to assure -atomicity and speed. diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-12-03-22-29-13.bpo-32028.KC2w4Q.rst b/Misc/NEWS.d/next/Core and Builtins/2017-12-03-22-29-13.bpo-32028.KC2w4Q.rst deleted file mode 100644 index 8e2b2e1b35038b..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-12-03-22-29-13.bpo-32028.KC2w4Q.rst +++ /dev/null @@ -1,3 +0,0 @@ -Leading whitespace is now correctly ignored when generating suggestions -for converting Py2 print statements to Py3 builtin print function calls. -Patch by Sanyam Khurana. diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-12-04-18-34-11.bpo-20891.C2TsfR.rst b/Misc/NEWS.d/next/Core and Builtins/2017-12-04-18-34-11.bpo-20891.C2TsfR.rst deleted file mode 100644 index abf9c3c2e390df..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-12-04-18-34-11.bpo-20891.C2TsfR.rst +++ /dev/null @@ -1,3 +0,0 @@ -Py_Initialize() now creates the GIL. The GIL is no longer created "on demand" -to fix a race condition when PyGILState_Ensure() is called in a non-Python -thread. diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-12-13-16-46-23.bpo-18533.Dlk8d7.rst b/Misc/NEWS.d/next/Core and Builtins/2017-12-13-16-46-23.bpo-18533.Dlk8d7.rst deleted file mode 100644 index a33eff5c70592f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-12-13-16-46-23.bpo-18533.Dlk8d7.rst +++ /dev/null @@ -1,3 +0,0 @@ -``repr()`` on a dict containing its own ``values()`` or ``items()`` no -longer raises ``RecursionError``; OrderedDict similarly. Instead, use -``...``, as for other recursive structures. Patch by Ben North. diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-12-28-00-20-42.bpo-32436.H159Jv.rst b/Misc/NEWS.d/next/Core and Builtins/2017-12-28-00-20-42.bpo-32436.H159Jv.rst deleted file mode 100644 index 8586d771781ac9..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2017-12-28-00-20-42.bpo-32436.H159Jv.rst +++ /dev/null @@ -1 +0,0 @@ -Implement PEP 567 diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-01-21-59-31.bpo-24340.hmKBvg.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-01-21-59-31.bpo-24340.hmKBvg.rst deleted file mode 100644 index c4189752d50ba4..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-01-21-59-31.bpo-24340.hmKBvg.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed estimation of the code stack size. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-06-01-14-53.bpo-20104.9DkKb8.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-06-01-14-53.bpo-20104.9DkKb8.rst deleted file mode 100644 index cb69f320dfb806..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-06-01-14-53.bpo-20104.9DkKb8.rst +++ /dev/null @@ -1 +0,0 @@ -Expose posix_spawn as a low level API in the os module. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-14-12-42-17.bpo-32550.k0EK-4.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-14-12-42-17.bpo-32550.k0EK-4.rst deleted file mode 100644 index 9f77b94f6dd543..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-14-12-42-17.bpo-32550.k0EK-4.rst +++ /dev/null @@ -1 +0,0 @@ -Remove the STORE_ANNOTATION bytecode. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-14-20-32-47.bpo-26163.xv9Iuv.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-14-20-32-47.bpo-26163.xv9Iuv.rst deleted file mode 100644 index 163b9e02c5a804..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-14-20-32-47.bpo-26163.xv9Iuv.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improved frozenset() hash to create more distinct hash values when faced -with datasets containing many similar values. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-16-18-51-58.bpo-32544.ga-cFE.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-16-18-51-58.bpo-32544.ga-cFE.rst deleted file mode 100644 index 55a52fa9f1c058..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-16-18-51-58.bpo-32544.ga-cFE.rst +++ /dev/null @@ -1,3 +0,0 @@ -``hasattr(obj, name)`` and ``getattr(obj, name, default)`` are about 4 times -faster than before when ``name`` is not found and ``obj`` doesn't override -``__getattr__`` or ``__getattribute__``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-19-01-54-22.bpo-31368.kzKqUR.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-19-01-54-22.bpo-31368.kzKqUR.rst deleted file mode 100644 index e13a58bb2c208a..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-19-01-54-22.bpo-31368.kzKqUR.rst +++ /dev/null @@ -1 +0,0 @@ -Expose preadv and pwritev system calls in the os module. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-20-00-50-33.bpo-32591.666kl6.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-20-00-50-33.bpo-32591.666kl6.rst deleted file mode 100644 index e3f3d59aca7440..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-20-00-50-33.bpo-32591.666kl6.rst +++ /dev/null @@ -1,4 +0,0 @@ -Added built-in support for tracking the origin of coroutine objects; see -sys.set_coroutine_origin_tracking_depth and CoroutineType.cr_origin. This -replaces the asyncio debug mode's use of coroutine wrapping for native -coroutine objects. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-25-17-03-46.bpo-32670.YsqJUC.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-25-17-03-46.bpo-32670.YsqJUC.rst deleted file mode 100644 index b22249b37e5e67..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-25-17-03-46.bpo-32670.YsqJUC.rst +++ /dev/null @@ -1,5 +0,0 @@ -Enforce PEP 479 for all code. - -This means that manually raising a StopIteration exception from a generator -is prohibited for all code, regardless of whether 'from __future__ import -generator_stop' was used or not. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-26-20-11-09.bpo-32677.xTGfCq.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-26-20-11-09.bpo-32677.xTGfCq.rst deleted file mode 100644 index 947c74f130b243..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-26-20-11-09.bpo-32677.xTGfCq.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add ``.isascii()`` method to ``str``, ``bytes`` and ``bytearray``. -It can be used to test that string contains only ASCII characters. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst deleted file mode 100644 index 1663b96cb927fc..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst +++ /dev/null @@ -1,2 +0,0 @@ -The locals() dictionary now displays in the lexical order that variables -were defined. Previously, the order was reversed. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-52-12.bpo-32697.RHlu6k.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-52-12.bpo-32697.RHlu6k.rst deleted file mode 100644 index 97bc310683c312..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-52-12.bpo-32697.RHlu6k.rst +++ /dev/null @@ -1,3 +0,0 @@ -Python now explicitly preserves the definition order of keyword-only -parameters. It's always preserved their order, but this behavior was never -guaranteed before; this behavior is now guaranteed and tested. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-12-25-06.bpo-32685.nGctze.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-12-25-06.bpo-32685.nGctze.rst deleted file mode 100644 index 07d7a072f6e1c7..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-12-25-06.bpo-32685.nGctze.rst +++ /dev/null @@ -1,3 +0,0 @@ -Improve suggestion when the Python 2 form of print statement is either -present on the same line as the header of a compound statement or else -terminated by a semi-colon instead of a newline. Patch by Nitish Chandra. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-15-09-33.bpo-28685.cHThLM.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-15-09-33.bpo-28685.cHThLM.rst deleted file mode 100644 index ccc3c0857bc089..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-15-09-33.bpo-28685.cHThLM.rst +++ /dev/null @@ -1,2 +0,0 @@ -Optimize list.sort() and sorted() by using type specialized comparisons when -possible. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-23-01-39.bpo-32650.Bbi7ek.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-23-01-39.bpo-32650.Bbi7ek.rst deleted file mode 100644 index f0b9e3ff459df6..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-23-01-39.bpo-32650.Bbi7ek.rst +++ /dev/null @@ -1,2 +0,0 @@ -Pdb and other debuggers dependent on bdb.py will correctly step over (next -command) native coroutines. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-29-01-15-17.bpo-32703.mwrF4-.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-29-01-15-17.bpo-32703.mwrF4-.rst deleted file mode 100644 index cfd166b64c2b0f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2018-01-29-01-15-17.bpo-32703.mwrF4-.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix coroutine's ResourceWarning when there's an active error set when it's -being finalized. diff --git a/Misc/NEWS.d/next/Documentation/2018-01-22-21-13-46.bpo-17799.rdZ-Vk.rst b/Misc/NEWS.d/next/Documentation/2018-01-22-21-13-46.bpo-17799.rdZ-Vk.rst deleted file mode 100644 index ccc52f60eeedac..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2018-01-22-21-13-46.bpo-17799.rdZ-Vk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Explain real behaviour of sys.settrace and sys.setprofile and their C-API counterparts -regarding which type of events are received in each function. Patch by Pablo Galindo Salgado. diff --git a/Misc/NEWS.d/next/Documentation/2018-01-27-23-36-31.bpo-32649.o7qOjF.rst b/Misc/NEWS.d/next/Documentation/2018-01-27-23-36-31.bpo-32649.o7qOjF.rst deleted file mode 100644 index 8e8045808fbdd4..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2018-01-27-23-36-31.bpo-32649.o7qOjF.rst +++ /dev/null @@ -1,2 +0,0 @@ -Complete the C API documentation, profiling and tracing part with the newly -added per-opcode events. diff --git a/Misc/NEWS.d/next/Documentation/2018-01-30-09-00-19.bpo-32724.qPIaM-.rst b/Misc/NEWS.d/next/Documentation/2018-01-30-09-00-19.bpo-32724.qPIaM-.rst deleted file mode 100644 index ddef6327de1398..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2018-01-30-09-00-19.bpo-32724.qPIaM-.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add references to some commands in the documentation of Pdb. Patch by -Stéphane Wirtel diff --git a/Misc/NEWS.d/next/Library/2017-09-07-19-12-47.bpo-14976.dx0Zxb.rst b/Misc/NEWS.d/next/Library/2017-09-07-19-12-47.bpo-14976.dx0Zxb.rst deleted file mode 100644 index a4087551322317..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-09-07-19-12-47.bpo-14976.dx0Zxb.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add a queue.SimpleQueue class, an unbounded FIFO queue with a reentrant C -implementation of put(). diff --git a/Misc/NEWS.d/next/Library/2017-09-08-14-05-33.bpo-31399.FtBrrt.rst b/Misc/NEWS.d/next/Library/2017-09-08-14-05-33.bpo-31399.FtBrrt.rst deleted file mode 100644 index e50ce2a1a93a01..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-09-08-14-05-33.bpo-31399.FtBrrt.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ssl module now uses OpenSSL's X509_VERIFY_PARAM_set1_host() and -X509_VERIFY_PARAM_set1_ip() API to verify hostname and IP addresses. Subject -common name fallback can be disabled with -SSLContext.hostname_checks_common_name. diff --git a/Misc/NEWS.d/next/Library/2017-10-23-22-55-51.bpo-31853.h5fjrP.rst b/Misc/NEWS.d/next/Library/2017-10-23-22-55-51.bpo-31853.h5fjrP.rst deleted file mode 100644 index 516214d0a19adb..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-10-23-22-55-51.bpo-31853.h5fjrP.rst +++ /dev/null @@ -1,2 +0,0 @@ -Use super().method instead of socket.method in SSLSocket. They were -there most likely for legacy reasons. diff --git a/Misc/NEWS.d/next/Library/2017-10-30-15-55-32.bpo-31900.-S9xc4.rst b/Misc/NEWS.d/next/Library/2017-10-30-15-55-32.bpo-31900.-S9xc4.rst deleted file mode 100644 index 2d8e3ce6002a8d..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-10-30-15-55-32.bpo-31900.-S9xc4.rst +++ /dev/null @@ -1,9 +0,0 @@ -The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` -locale to the ``LC_NUMERIC`` locale to decode ``decimal_point`` and -``thousands_sep`` byte strings if they are non-ASCII or longer than 1 byte, and -the ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale. This -temporary change affects other threads. - -Same change for the :meth:`str.format` method when formatting a number -(:class:`int`, :class:`float`, :class:`float` and subclasses) with the ``n`` -type (ex: ``'{:n}'.format(1234)``). diff --git a/Misc/NEWS.d/next/Library/2017-11-08-03-38-20.bpo-31961.x5Sv0R.rst b/Misc/NEWS.d/next/Library/2017-11-08-03-38-20.bpo-31961.x5Sv0R.rst deleted file mode 100644 index 611f4e978f1a13..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-11-08-03-38-20.bpo-31961.x5Sv0R.rst +++ /dev/null @@ -1,4 +0,0 @@ -The *args* argument of subprocess.Popen can now be a -:term:`path-like object`. If *args* is given as a -sequence, it's first element can now be a -:term:`path-like object` as well. diff --git a/Misc/NEWS.d/next/Library/2017-12-11-15-14-55.bpo-29302.Nczj9l.rst b/Misc/NEWS.d/next/Library/2017-12-11-15-14-55.bpo-29302.Nczj9l.rst deleted file mode 100644 index 0030e2ce367b91..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-11-15-14-55.bpo-29302.Nczj9l.rst +++ /dev/null @@ -1 +0,0 @@ -Add contextlib.AsyncExitStack. Patch by Alexander Mohr and Ilya Kulakov. diff --git a/Misc/NEWS.d/next/Library/2017-12-14-01-36-25.bpo-32320.jwOZlr.rst b/Misc/NEWS.d/next/Library/2017-12-14-01-36-25.bpo-32320.jwOZlr.rst deleted file mode 100644 index 6e4aad8f795adf..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-14-01-36-25.bpo-32320.jwOZlr.rst +++ /dev/null @@ -1 +0,0 @@ -collections.namedtuple() now supports default values. diff --git a/Misc/NEWS.d/next/Library/2017-12-15-15-34-12.bpo-32248.zmO8G2.rst b/Misc/NEWS.d/next/Library/2017-12-15-15-34-12.bpo-32248.zmO8G2.rst deleted file mode 100644 index d821cf91bdd422..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-15-15-34-12.bpo-32248.zmO8G2.rst +++ /dev/null @@ -1,6 +0,0 @@ -Add :mod:`importlib.resources` and :class:`importlib.abc.ResourceReader` as -the unified API for reading resources contained within packages. Loaders -wishing to support resource reading must implement the -:meth:`get_resource_reader()` method. File-based and zipimport-based loaders -both implement these APIs. :class:`importlib.abc.ResourceLoader` is -deprecated in favor of these new APIs. diff --git a/Misc/NEWS.d/next/Library/2017-12-19-09-23-46.bpo-32373.8qAkoW.rst b/Misc/NEWS.d/next/Library/2017-12-19-09-23-46.bpo-32373.8qAkoW.rst deleted file mode 100644 index 9772dda35a3013..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-19-09-23-46.bpo-32373.8qAkoW.rst +++ /dev/null @@ -1 +0,0 @@ -Add socket.getblocking() method. diff --git a/Misc/NEWS.d/next/Library/2017-12-21-22-00-11.bpo-22908.cVm89I.rst b/Misc/NEWS.d/next/Library/2017-12-21-22-00-11.bpo-22908.cVm89I.rst deleted file mode 100644 index 4f3cc0166019f1..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-21-22-00-11.bpo-22908.cVm89I.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added seek and tell to the ZipExtFile class. This only works if the file -object used to open the zipfile is seekable. diff --git a/Misc/NEWS.d/next/Library/2017-12-22-16-05-01.bpo-32410.8JzhvH.rst b/Misc/NEWS.d/next/Library/2017-12-22-16-05-01.bpo-32410.8JzhvH.rst deleted file mode 100644 index 968d1da6a3cdc0..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-22-16-05-01.bpo-32410.8JzhvH.rst +++ /dev/null @@ -1 +0,0 @@ -Implement ``loop.sock_sendfile`` for asyncio event loop. diff --git a/Misc/NEWS.d/next/Library/2017-12-22-16-47-41.bpo-32228.waPx3q.rst b/Misc/NEWS.d/next/Library/2017-12-22-16-47-41.bpo-32228.waPx3q.rst deleted file mode 100644 index 3bbe7c495f82d3..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-22-16-47-41.bpo-32228.waPx3q.rst +++ /dev/null @@ -1 +0,0 @@ -Ensure that ``truncate()`` preserves the file position (as reported by ``tell()``) after writes longer than the buffer size. diff --git a/Misc/NEWS.d/next/Library/2017-12-23-14-51-46.bpo-32403.CVFapH.rst b/Misc/NEWS.d/next/Library/2017-12-23-14-51-46.bpo-32403.CVFapH.rst deleted file mode 100644 index f05d346948a5a8..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-23-14-51-46.bpo-32403.CVFapH.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improved speed of :class:`datetime.date` and :class:`datetime.datetime` -alternate constructors. diff --git a/Misc/NEWS.d/next/Library/2017-12-23-14-54-05.bpo-32404.yJqtlJ.rst b/Misc/NEWS.d/next/Library/2017-12-23-14-54-05.bpo-32404.yJqtlJ.rst deleted file mode 100644 index 5299820429bb04..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-23-14-54-05.bpo-32404.yJqtlJ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix bug where :meth:`datetime.datetime.fromtimestamp` did not call __new__ -in :class:`datetime.datetime` subclasses. diff --git a/Misc/NEWS.d/next/Library/2017-12-24-20-01-09.bpo-28134.HJ8Beb.rst b/Misc/NEWS.d/next/Library/2017-12-24-20-01-09.bpo-28134.HJ8Beb.rst deleted file mode 100644 index 9c4c683db6e36d..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-24-20-01-09.bpo-28134.HJ8Beb.rst +++ /dev/null @@ -1,2 +0,0 @@ -Sockets now auto-detect family, type and protocol from file descriptor by -default. diff --git a/Misc/NEWS.d/next/Library/2017-12-27-20-09-27.bpo-32433.vmxsVI.rst b/Misc/NEWS.d/next/Library/2017-12-27-20-09-27.bpo-32433.vmxsVI.rst deleted file mode 100644 index d9b326e128e35f..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-27-20-09-27.bpo-32433.vmxsVI.rst +++ /dev/null @@ -1,2 +0,0 @@ -The hmac module now has hmac.digest(), which provides an optimized HMAC -digest. diff --git a/Misc/NEWS.d/next/Library/2017-12-27-20-15-51.bpo-25942.Giyr8v.rst b/Misc/NEWS.d/next/Library/2017-12-27-20-15-51.bpo-25942.Giyr8v.rst deleted file mode 100644 index b898345b2b32ce..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-27-20-15-51.bpo-25942.Giyr8v.rst +++ /dev/null @@ -1,6 +0,0 @@ -The subprocess module is now more graceful when handling a Ctrl-C -KeyboardInterrupt during subprocess.call, subprocess.run, or a Popen context -manager. It now waits a short amount of time for the child (presumed to -have also gotten the SIGINT) to exit, before continuing the -KeyboardInterrupt exception handling. This still includes a SIGKILL in the -call() and run() APIs, but at least the child had a chance first. diff --git a/Misc/NEWS.d/next/Library/2017-12-30-10-38-05.bpo-32454.wsZnl-.rst b/Misc/NEWS.d/next/Library/2017-12-30-10-38-05.bpo-32454.wsZnl-.rst deleted file mode 100644 index b8eaa859fa5be2..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-12-30-10-38-05.bpo-32454.wsZnl-.rst +++ /dev/null @@ -1 +0,0 @@ -Add close(fd) function to the socket module. diff --git a/Misc/NEWS.d/next/Library/2018-01-04-14-45-33.bpo-29237.zenYA6.rst b/Misc/NEWS.d/next/Library/2018-01-04-14-45-33.bpo-29237.zenYA6.rst deleted file mode 100644 index f903aa7001b5c1..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-04-14-45-33.bpo-29237.zenYA6.rst +++ /dev/null @@ -1 +0,0 @@ -Create enum for pstats sorting options diff --git a/Misc/NEWS.d/next/Library/2018-01-07-09-22-26.bpo-32503.ViMxpD.rst b/Misc/NEWS.d/next/Library/2018-01-07-09-22-26.bpo-32503.ViMxpD.rst deleted file mode 100644 index 609c59308e6c72..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-07-09-22-26.bpo-32503.ViMxpD.rst +++ /dev/null @@ -1 +0,0 @@ -Pickling with protocol 4 no longer creates too small frames. diff --git a/Misc/NEWS.d/next/Library/2018-01-08-15-53-37.bpo-32493.vTXxGN.rst b/Misc/NEWS.d/next/Library/2018-01-08-15-53-37.bpo-32493.vTXxGN.rst deleted file mode 100644 index 82d33aa55b707a..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-08-15-53-37.bpo-32493.vTXxGN.rst +++ /dev/null @@ -1 +0,0 @@ -UUID module fixes build for FreeBSD/OpenBSD diff --git a/Misc/NEWS.d/next/Library/2018-01-08-18-02-33.bpo-32521.Kh-KoN.rst b/Misc/NEWS.d/next/Library/2018-01-08-18-02-33.bpo-32521.Kh-KoN.rst deleted file mode 100644 index 5ca9bcf768955b..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-08-18-02-33.bpo-32521.Kh-KoN.rst +++ /dev/null @@ -1,2 +0,0 @@ -glibc has removed Sun RPC. Use replacement libtirpc headers and library in -nis module. diff --git a/Misc/NEWS.d/next/Library/2018-01-10-18-04-21.bpo-32102.9-CZgD.rst b/Misc/NEWS.d/next/Library/2018-01-10-18-04-21.bpo-32102.9-CZgD.rst deleted file mode 100644 index cd4d0b5a8bd6f0..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-10-18-04-21.bpo-32102.9-CZgD.rst +++ /dev/null @@ -1 +0,0 @@ -New argument ``capture_output`` for subprocess.run diff --git a/Misc/NEWS.d/next/Library/2018-01-10-20-37-59.bpo-32473.mP_yJG.rst b/Misc/NEWS.d/next/Library/2018-01-10-20-37-59.bpo-32473.mP_yJG.rst deleted file mode 100644 index 95b9d45e4227fe..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-10-20-37-59.bpo-32473.mP_yJG.rst +++ /dev/null @@ -1 +0,0 @@ -Improve ABCMeta._dump_registry() output readability diff --git a/Misc/NEWS.d/next/Library/2018-01-11-00-33-42.bpo-32467.YVEOv6.rst b/Misc/NEWS.d/next/Library/2018-01-11-00-33-42.bpo-32467.YVEOv6.rst deleted file mode 100644 index 58bf066f9f54dc..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-11-00-33-42.bpo-32467.YVEOv6.rst +++ /dev/null @@ -1 +0,0 @@ -collections.abc.ValuesView now inherits from collections.abc.Collection. diff --git a/Misc/NEWS.d/next/Library/2018-01-15-12-53-13.bpo-32521.IxX4Ba.rst b/Misc/NEWS.d/next/Library/2018-01-15-12-53-13.bpo-32521.IxX4Ba.rst deleted file mode 100644 index ee704667c3c062..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-15-12-53-13.bpo-32521.IxX4Ba.rst +++ /dev/null @@ -1 +0,0 @@ -The nis module is now compatible with new libnsl and headers location. diff --git a/Misc/NEWS.d/next/Library/2018-01-16-20-37-28.bpo-32574.ru8eZ9.rst b/Misc/NEWS.d/next/Library/2018-01-16-20-37-28.bpo-32574.ru8eZ9.rst deleted file mode 100644 index 00650d4d02e07e..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-16-20-37-28.bpo-32574.ru8eZ9.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix memory leak in asyncio.Queue, when the queue has limited size and it is -full, the cancelation of queue.put() can cause a memory leak. Patch by: José -Melero. diff --git a/Misc/NEWS.d/next/Library/2018-01-17-13-04-16.bpo-32576.iDL09t.rst b/Misc/NEWS.d/next/Library/2018-01-17-13-04-16.bpo-32576.iDL09t.rst deleted file mode 100644 index 143a83e0fcc2b1..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-17-13-04-16.bpo-32576.iDL09t.rst +++ /dev/null @@ -1,2 +0,0 @@ -Use queue.SimpleQueue() in places where it can be invoked from a weakref -callback. diff --git a/Misc/NEWS.d/next/Library/2018-01-18-13-47-40.bpo-31801.3UGH1h.rst b/Misc/NEWS.d/next/Library/2018-01-18-13-47-40.bpo-31801.3UGH1h.rst deleted file mode 100644 index 48043c046fa447..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-18-13-47-40.bpo-31801.3UGH1h.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add ``_ignore_`` to ``Enum`` so temporary variables can be used during class -construction without being turned into members. diff --git a/Misc/NEWS.d/next/Library/2018-01-19-19-57-45.bpo-32596.4aVIie.rst b/Misc/NEWS.d/next/Library/2018-01-19-19-57-45.bpo-32596.4aVIie.rst deleted file mode 100644 index a90f7d17653914..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-19-19-57-45.bpo-32596.4aVIie.rst +++ /dev/null @@ -1,4 +0,0 @@ -``concurrent.futures`` imports ``ThreadPoolExecutor`` and -``ProcessPoolExecutor`` lazily (using :pep:`562`). -It makes ``import asyncio`` about 15% faster because asyncio -uses only ``ThreadPoolExecutor`` by default. diff --git a/Misc/NEWS.d/next/Library/2018-01-20-17-15-34.bpo-32502.OXJfn7.rst b/Misc/NEWS.d/next/Library/2018-01-20-17-15-34.bpo-32502.OXJfn7.rst deleted file mode 100644 index 8338632aa2c547..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-20-17-15-34.bpo-32502.OXJfn7.rst +++ /dev/null @@ -1,2 +0,0 @@ -uuid.uuid1 no longer raises an exception if a 64-bit hardware address is -encountered. diff --git a/Misc/NEWS.d/next/Library/2018-01-21-16-33-53.bpo-32304.TItrNv.rst b/Misc/NEWS.d/next/Library/2018-01-21-16-33-53.bpo-32304.TItrNv.rst deleted file mode 100644 index c199a644ad401f..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-21-16-33-53.bpo-32304.TItrNv.rst +++ /dev/null @@ -1,2 +0,0 @@ -distutils' upload command no longer corrupts tar files ending with a CR byte, -and no longer tries to convert CR to CRLF in any of the upload text fields. diff --git a/Misc/NEWS.d/next/Library/2018-01-22-18-18-44.bpo-32622.A1D6FP.rst b/Misc/NEWS.d/next/Library/2018-01-22-18-18-44.bpo-32622.A1D6FP.rst deleted file mode 100644 index d7433fa3cb1229..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-22-18-18-44.bpo-32622.A1D6FP.rst +++ /dev/null @@ -1 +0,0 @@ -Add :meth:`asyncio.AbstractEventLoop.sendfile` method. diff --git a/Misc/NEWS.d/next/Library/2018-01-23-01-57-36.bpo-32630.6KRHBs.rst b/Misc/NEWS.d/next/Library/2018-01-23-01-57-36.bpo-32630.6KRHBs.rst deleted file mode 100644 index 1bbcbb173eb9ed..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-23-01-57-36.bpo-32630.6KRHBs.rst +++ /dev/null @@ -1 +0,0 @@ -Refactor decimal module to use contextvars to store decimal context. diff --git a/Misc/NEWS.d/next/Library/2018-01-24-00-32-58.bpo-32643.VWipsW.rst b/Misc/NEWS.d/next/Library/2018-01-24-00-32-58.bpo-32643.VWipsW.rst deleted file mode 100644 index 7fdd53d8e277a8..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-24-00-32-58.bpo-32643.VWipsW.rst +++ /dev/null @@ -1,2 +0,0 @@ -Make Task._step, Task._wakeup and Future._schedule_callbacks methods -private. diff --git a/Misc/NEWS.d/next/Library/2018-01-24-15-20-12.bpo-32391.0f8MY9.rst b/Misc/NEWS.d/next/Library/2018-01-24-15-20-12.bpo-32391.0f8MY9.rst deleted file mode 100644 index 6e0922774d3f11..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-24-15-20-12.bpo-32391.0f8MY9.rst +++ /dev/null @@ -1 +0,0 @@ -Implement :meth:`asyncio.StreamWriter.wait_closed` and :meth:`asyncio.StreamWriter.is_closing` methods diff --git a/Misc/NEWS.d/next/Library/2018-01-25-01-45-30.bpo-32662.oabhd8.rst b/Misc/NEWS.d/next/Library/2018-01-25-01-45-30.bpo-32662.oabhd8.rst deleted file mode 100644 index 44c8b951030109..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-25-01-45-30.bpo-32662.oabhd8.rst +++ /dev/null @@ -1,3 +0,0 @@ -Implement Server.start_serving(), Server.serve_forever(), and -Server.is_serving() methods. Add 'start_serving' keyword parameter to -loop.create_server() and loop.create_unix_server(). diff --git a/Misc/NEWS.d/next/Library/2018-01-25-03-46-00.bpo-32659.VHYoON.rst b/Misc/NEWS.d/next/Library/2018-01-25-03-46-00.bpo-32659.VHYoON.rst deleted file mode 100644 index f29f08786f55ad..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-25-03-46-00.bpo-32659.VHYoON.rst +++ /dev/null @@ -1 +0,0 @@ -Under Solaris and derivatives, :class:`os.stat_result` provides a st_fstype attribute. diff --git a/Misc/NEWS.d/next/Library/2018-01-25-21-04-11.bpo-27931.e4r52t.rst b/Misc/NEWS.d/next/Library/2018-01-25-21-04-11.bpo-27931.e4r52t.rst deleted file mode 100644 index 7324247357a613..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-25-21-04-11.bpo-27931.e4r52t.rst +++ /dev/null @@ -1 +0,0 @@ -Fix email address header parsing error when the username is an empty quoted string. Patch by Xiang Zhang. diff --git a/Misc/NEWS.d/next/Library/2018-01-26-01-26-00.bpo-32660.tVJIWV.rst b/Misc/NEWS.d/next/Library/2018-01-26-01-26-00.bpo-32660.tVJIWV.rst deleted file mode 100644 index 5b33e1a19f9628..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-26-01-26-00.bpo-32660.tVJIWV.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`termios` makes available ``FIONREAD``, ``FIONCLEX``, ``FIOCLEX``, -``FIOASYNC`` and ``FIONBIO`` also under Solaris/derivatives. diff --git a/Misc/NEWS.d/next/Library/2018-01-27-11-20-16.bpo-32513.ak-iD2.rst b/Misc/NEWS.d/next/Library/2018-01-27-11-20-16.bpo-32513.ak-iD2.rst deleted file mode 100644 index 48072417f77143..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-27-11-20-16.bpo-32513.ak-iD2.rst +++ /dev/null @@ -1,2 +0,0 @@ -In dataclasses, allow easier overriding of dunder methods without specifying -decorator parameters. diff --git a/Misc/NEWS.d/next/Library/2018-01-28-01-21-47.bpo-32251.fOA5qB.rst b/Misc/NEWS.d/next/Library/2018-01-28-01-21-47.bpo-32251.fOA5qB.rst deleted file mode 100644 index 869be1ccce0546..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-28-01-21-47.bpo-32251.fOA5qB.rst +++ /dev/null @@ -1 +0,0 @@ -Implement asyncio.BufferedProtocol (provisional API). diff --git a/Misc/NEWS.d/next/Library/2018-01-28-07-55-10.bpo-21417.JFnV99.rst b/Misc/NEWS.d/next/Library/2018-01-28-07-55-10.bpo-21417.JFnV99.rst deleted file mode 100644 index 50207a0e4c33ae..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-28-07-55-10.bpo-21417.JFnV99.rst +++ /dev/null @@ -1 +0,0 @@ -Added support for setting the compression level for zipfile.ZipFile. diff --git a/Misc/NEWS.d/next/Library/2018-01-28-14-10-51.bpo-30306.TmKMXi.rst b/Misc/NEWS.d/next/Library/2018-01-28-14-10-51.bpo-30306.TmKMXi.rst deleted file mode 100644 index 65df2cdac022b3..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-28-14-10-51.bpo-30306.TmKMXi.rst +++ /dev/null @@ -1,4 +0,0 @@ -contextlib.contextmanager now releases the arguments passed to the -underlying generator as soon as the context manager is entered. Previously -it would keep them alive for as long as the context manager was alive, even -when not being used as a function decorator. Patch by Martin Teichmann. diff --git a/Misc/NEWS.d/next/Library/2018-01-28-22-40-05.bpo-31429.qNt8rQ.rst b/Misc/NEWS.d/next/Library/2018-01-28-22-40-05.bpo-31429.qNt8rQ.rst deleted file mode 100644 index 1ac537b07aaffb..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-28-22-40-05.bpo-31429.qNt8rQ.rst +++ /dev/null @@ -1,4 +0,0 @@ -The default cipher suite selection of the ssl module now uses a blacklist -approach rather than a hard-coded whitelist. Python no longer re-enables -ciphers that have been blocked by OpenSSL security update. Default cipher -suite selection can be configured on compile time. diff --git a/Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst b/Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst deleted file mode 100644 index df350779ea4a16..00000000000000 --- a/Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst +++ /dev/null @@ -1,2 +0,0 @@ -Deprecate exposing the contents of collections.abc in the regular -collections module. diff --git a/Misc/NEWS.d/next/Tests/2018-01-14-11-40-22.bpo-32549.fLwbVA.rst b/Misc/NEWS.d/next/Tests/2018-01-14-11-40-22.bpo-32549.fLwbVA.rst deleted file mode 100644 index d98f4661361c00..00000000000000 --- a/Misc/NEWS.d/next/Tests/2018-01-14-11-40-22.bpo-32549.fLwbVA.rst +++ /dev/null @@ -1 +0,0 @@ -On Travis CI, Python now Compiles and uses a local copy of OpenSSL 1.1.0g for testing. diff --git a/Misc/NEWS.d/next/Tests/2018-01-19-20-47-11.bpo-32602.dz41pq.rst b/Misc/NEWS.d/next/Tests/2018-01-19-20-47-11.bpo-32602.dz41pq.rst deleted file mode 100644 index dde812ecacf425..00000000000000 --- a/Misc/NEWS.d/next/Tests/2018-01-19-20-47-11.bpo-32602.dz41pq.rst +++ /dev/null @@ -1 +0,0 @@ -Add test certs and test for ECDSA cert and EC/RSA dual mode. diff --git a/Misc/NEWS.d/next/Tests/2018-01-26-21-29-09.bpo-32604.7iazNx.rst b/Misc/NEWS.d/next/Tests/2018-01-26-21-29-09.bpo-32604.7iazNx.rst deleted file mode 100644 index f5472f9fe23f8d..00000000000000 --- a/Misc/NEWS.d/next/Tests/2018-01-26-21-29-09.bpo-32604.7iazNx.rst +++ /dev/null @@ -1,4 +0,0 @@ -Add a new "_xxsubinterpreters" extension module that exposes the existing -subinterpreter C-API and a new cross-interpreter data sharing mechanism. The -module is primarily intended for more thorough testing of the existing -subinterpreter support. diff --git a/Misc/NEWS.d/next/Tests/2018-01-28-21-19-13.bpo-28414.a6Onzt.rst b/Misc/NEWS.d/next/Tests/2018-01-28-21-19-13.bpo-28414.a6Onzt.rst deleted file mode 100644 index c64bc55bb85050..00000000000000 --- a/Misc/NEWS.d/next/Tests/2018-01-28-21-19-13.bpo-28414.a6Onzt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add test cases for IDNA 2003 and 2008 host names. IDNA 2003 -internationalized host names are working since bpo-31399 has landed. IDNA -2008 are still broken. diff --git a/Misc/NEWS.d/next/Tests/2018-01-29-21-30-44.bpo-32721.2Bebm1.rst b/Misc/NEWS.d/next/Tests/2018-01-29-21-30-44.bpo-32721.2Bebm1.rst deleted file mode 100644 index f4bf6aa1fc4afa..00000000000000 --- a/Misc/NEWS.d/next/Tests/2018-01-29-21-30-44.bpo-32721.2Bebm1.rst +++ /dev/null @@ -1 +0,0 @@ -Fix test_hashlib to not fail if the _md5 module is not built. diff --git a/Misc/NEWS.d/next/Windows/2018-01-07-12-32-49.bpo-32507.vB4gxk.rst b/Misc/NEWS.d/next/Windows/2018-01-07-12-32-49.bpo-32507.vB4gxk.rst deleted file mode 100644 index 010271ca24e412..00000000000000 --- a/Misc/NEWS.d/next/Windows/2018-01-07-12-32-49.bpo-32507.vB4gxk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Use app-local UCRT install rather than the proper update for old versions of -Windows. diff --git a/Misc/NEWS.d/next/Windows/2018-01-07-12-33-21.bpo-29911.ewSJKb.rst b/Misc/NEWS.d/next/Windows/2018-01-07-12-33-21.bpo-29911.ewSJKb.rst deleted file mode 100644 index 7f311efef46e96..00000000000000 --- a/Misc/NEWS.d/next/Windows/2018-01-07-12-33-21.bpo-29911.ewSJKb.rst +++ /dev/null @@ -1 +0,0 @@ -Ensure separate Modify and Uninstall buttons are displayed. diff --git a/Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst b/Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst deleted file mode 100644 index 0766a7eb2599a3..00000000000000 --- a/Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst +++ /dev/null @@ -1,2 +0,0 @@ -Create standalone _distutils_findvs module and add missing _queue module to -installer. diff --git a/Misc/NEWS.d/next/macOS/2018-01-30-04-40-12.bpo-28440.W_BUWU.rst b/Misc/NEWS.d/next/macOS/2018-01-30-04-40-12.bpo-28440.W_BUWU.rst deleted file mode 100644 index e973e09577552e..00000000000000 --- a/Misc/NEWS.d/next/macOS/2018-01-30-04-40-12.bpo-28440.W_BUWU.rst +++ /dev/null @@ -1,2 +0,0 @@ -No longer add /Library/Python/3.x/site-packages to sys.path for macOS -framework builds to avoid future conflicts. diff --git a/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst b/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst deleted file mode 100644 index 6bdf0f12e972ca..00000000000000 --- a/Misc/NEWS.d/next/macOS/2018-01-30-07-13-10.bpo-32726.tcARLK.rst +++ /dev/null @@ -1,4 +0,0 @@ -Provide an additional, more modern macOS installer variant that supports -macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied third-party -libraries to OpenSSL 1.1.0g and to SQLite 3.22.0. The 10.9+ installer now -links with and supplies its own copy of Tcl/Tk 8.6. diff --git a/README.rst b/README.rst index b6d744d19ebad6..17745568816789 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -This is Python version 3.7.0 alpha 4+ -===================================== +This is Python version 3.7.0 beta 1 +=================================== .. image:: https://travis-ci.org/python/cpython.svg?branch=master :alt: CPython build status on Travis CI From f5f8a74356e210e49ed2f4dd173ab2ab3a49ecc7 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Wed, 31 Jan 2018 17:00:52 -0500 Subject: [PATCH 0003/1754] finished 3.7.0b1 - on to b1+ --- Include/patchlevel.h | 2 +- README.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 87ab8ed17e5270..02874052325595 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -23,7 +23,7 @@ #define PY_RELEASE_SERIAL 1 /* Version as a string */ -#define PY_VERSION "3.7.0b1" +#define PY_VERSION "3.7.0b1+" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/README.rst b/README.rst index 17745568816789..c82fef4a41f682 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -This is Python version 3.7.0 beta 1 -=================================== +This is Python version 3.7.0 beta 1+ +==================================== .. image:: https://travis-ci.org/python/cpython.svg?branch=master :alt: CPython build status on Travis CI From 209108bd6997258948d13f48f2b5a2f1220c1a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Wirtel?= Date: Wed, 31 Jan 2018 01:02:51 +0100 Subject: [PATCH 0004/1754] bpo-32727: smtplib's SMTP.send_message behaves differently with from_addr and to_addrs (#5451) Do not pass the name field in the 'from' address in the SMTP envelope. --- Lib/smtplib.py | 1 + Lib/test/test_smtplib.py | 19 ++++++++++++++++++- .../2018-01-30-17-46-18.bpo-32727.aHVsRC.rst | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Library/2018-01-30-17-46-18.bpo-32727.aHVsRC.rst diff --git a/Lib/smtplib.py b/Lib/smtplib.py index 5e422b704ad4dc..b679875fd2c539 100755 --- a/Lib/smtplib.py +++ b/Lib/smtplib.py @@ -933,6 +933,7 @@ def send_message(self, msg, from_addr=None, to_addrs=None, from_addr = (msg[header_prefix + 'Sender'] if (header_prefix + 'Sender') in msg else msg[header_prefix + 'From']) + from_addr = email.utils.getaddresses([from_addr])[0][1] if to_addrs is None: addr_fields = [f for f in (msg[header_prefix + 'To'], msg[header_prefix + 'Bcc'], diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py index 040ad4e05962ba..7991174fb5d75a 100644 --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@ -825,6 +825,7 @@ class SimSMTPServer(smtpd.SMTPServer): def __init__(self, *args, **kw): self._extra_features = [] + self._addresses = {} smtpd.SMTPServer.__init__(self, *args, **kw) def handle_accepted(self, conn, addr): @@ -833,7 +834,8 @@ def handle_accepted(self, conn, addr): decode_data=self._decode_data) def process_message(self, peer, mailfrom, rcpttos, data): - pass + self._addresses['from'] = mailfrom + self._addresses['tos'] = rcpttos def add_feature(self, feature): self._extra_features.append(feature) @@ -1072,6 +1074,21 @@ def test_send_unicode_without_SMTPUTF8(self): self.assertRaises(UnicodeEncodeError, smtp.sendmail, 'Alice', 'Böb', '') self.assertRaises(UnicodeEncodeError, smtp.mail, 'Älice') + def test_name_field_not_included_in_envelop_addresses(self): + smtp = smtplib.SMTP( + HOST, self.port, local_hostname='localhost', timeout=3 + ) + self.addCleanup(smtp.close) + + message = EmailMessage() + message['From'] = email.utils.formataddr(('Michaël', 'michael@example.com')) + message['To'] = email.utils.formataddr(('René', 'rene@example.com')) + + self.assertDictEqual(smtp.send_message(message), {}) + + self.assertEqual(self.serv._addresses['from'], 'michael@example.com') + self.assertEqual(self.serv._addresses['tos'], ['rene@example.com']) + class SimSMTPUTF8Server(SimSMTPServer): diff --git a/Misc/NEWS.d/next/Library/2018-01-30-17-46-18.bpo-32727.aHVsRC.rst b/Misc/NEWS.d/next/Library/2018-01-30-17-46-18.bpo-32727.aHVsRC.rst new file mode 100644 index 00000000000000..22c219636de29e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-01-30-17-46-18.bpo-32727.aHVsRC.rst @@ -0,0 +1 @@ +Do not include name field in SMTP envelope from address. Patch by Stéphane Wirtel From 57750be4ad3fa2cfd3473b5be1f1e1a5d0fa9f50 Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Wed, 31 Jan 2018 11:17:10 +0100 Subject: [PATCH 0005/1754] bpo-30693: zip+tarfile: sort directory listing (#2263) tarfile and zipfile now sort directory listing to generate tar and zip archives in a more reproducible way. See also https://reproducible-builds.org/docs/stable-inputs/ on that topic. --- Doc/library/tarfile.rst | 6 ++++- Doc/library/zipfile.rst | 5 +++- Lib/tarfile.py | 2 +- Lib/test/test_tarfile.py | 24 +++++++++++++++++++ Lib/zipfile.py | 6 ++--- .../2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst | 1 + .../2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst | 1 + 7 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst create mode 100644 Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index 2450716a1d9120..9cd07158e7f628 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -451,7 +451,8 @@ be finalized; only the internally used file object will be closed. See the (directory, fifo, symbolic link, etc.). If given, *arcname* specifies an alternative name for the file in the archive. Directories are added recursively by default. This can be avoided by setting *recursive* to - :const:`False`. If *filter* is given, it + :const:`False`. Recursion adds entries in sorted order. + If *filter* is given, it should be a function that takes a :class:`TarInfo` object argument and returns the changed :class:`TarInfo` object. If it instead returns :const:`None` the :class:`TarInfo` object will be excluded from the @@ -460,6 +461,9 @@ be finalized; only the internally used file object will be closed. See the .. versionchanged:: 3.2 Added the *filter* parameter. + .. versionchanged:: 3.7 + Recursion adds entries in sorted order. + .. method:: TarFile.addfile(tarinfo, fileobj=None) diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 7c9a8c80225491..c0f2a89a3a17fa 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -491,7 +491,7 @@ The :class:`PyZipFile` constructor takes the same parameters as the :file:`\*.pyc` are added at the top level. If the directory is a package directory, then all :file:`\*.pyc` are added under the package name as a file path, and if any subdirectories are package directories, - all of these are added recursively. + all of these are added recursively in sorted order. *basename* is intended for internal use only. @@ -524,6 +524,9 @@ The :class:`PyZipFile` constructor takes the same parameters as the .. versionchanged:: 3.6.2 The *pathname* parameter accepts a :term:`path-like object`. + .. versionchanged:: 3.7 + Recursion sorts directory entries. + .. _zipinfo-objects: diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 0b8d31f85cf3ec..a24ee42abf8268 100755 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -1943,7 +1943,7 @@ def add(self, name, arcname=None, recursive=True, *, filter=None): elif tarinfo.isdir(): self.addfile(tarinfo) if recursive: - for f in os.listdir(name): + for f in sorted(os.listdir(name)): self.add(os.path.join(name, f), os.path.join(arcname, f), recursive, filter=filter) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 179cbc6dfffca7..8ef4294921b249 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -1129,6 +1129,30 @@ def test_directory_size(self): finally: support.rmdir(path) + # mock the following: + # os.listdir: so we know that files are in the wrong order + @unittest.mock.patch('os.listdir') + def test_ordered_recursion(self, mock_listdir): + path = os.path.join(TEMPDIR, "directory") + os.mkdir(path) + open(os.path.join(path, "1"), "a").close() + open(os.path.join(path, "2"), "a").close() + mock_listdir.return_value = ["2", "1"] + try: + tar = tarfile.open(tmpname, self.mode) + try: + tar.add(path) + paths = [] + for m in tar.getmembers(): + paths.append(os.path.split(m.name)[-1]) + self.assertEqual(paths, ["directory", "1", "2"]); + finally: + tar.close() + finally: + support.unlink(os.path.join(path, "1")) + support.unlink(os.path.join(path, "2")) + support.rmdir(path) + def test_gettarinfo_pathlike_name(self): with tarfile.open(tmpname, self.mode) as tar: path = pathlib.Path(TEMPDIR) / "file" diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 5df7b1bf75b9d9..b90b60f72e2bcd 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -1940,7 +1940,7 @@ def writepy(self, pathname, basename="", filterfunc=None): if self.debug: print("Adding", arcname) self.write(fname, arcname) - dirlist = os.listdir(pathname) + dirlist = sorted(os.listdir(pathname)) dirlist.remove("__init__.py") # Add all *.py files and package subdirectories for filename in dirlist: @@ -1965,7 +1965,7 @@ def writepy(self, pathname, basename="", filterfunc=None): # This is NOT a package directory, add its files at top level if self.debug: print("Adding files from directory", pathname) - for filename in os.listdir(pathname): + for filename in sorted(os.listdir(pathname)): path = os.path.join(pathname, filename) root, ext = os.path.splitext(filename) if ext == ".py": @@ -2116,7 +2116,7 @@ def addToZip(zf, path, zippath): elif os.path.isdir(path): if zippath: zf.write(path, zippath) - for nm in os.listdir(path): + for nm in sorted(os.listdir(path)): addToZip(zf, os.path.join(path, nm), os.path.join(zippath, nm)) # else: ignore diff --git a/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst b/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst new file mode 100644 index 00000000000000..9c895c53de124a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst @@ -0,0 +1 @@ +The ZipFile class now recurses directories in a reproducible way. diff --git a/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst b/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst new file mode 100644 index 00000000000000..a622e7ed6e5dca --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst @@ -0,0 +1 @@ +The TarFile class now recurses directories in a reproducible way. From 86fdad093b863db7ef6a3a00c9cff724c09442e7 Mon Sep 17 00:00:00 2001 From: Xiang Zhang Date: Wed, 31 Jan 2018 20:48:05 +0800 Subject: [PATCH 0006/1754] bpo-32583: Fix possible crashing in builtin Unicode decoders (#5325) When using customized decode error handlers, it is possible for builtin decoders to write out-of-bounds and then crash. --- Lib/test/test_codeccallbacks.py | 52 +++++++++++++++++++ .../2018-01-26-21-20-21.bpo-32583.Fh3fau.rst | 2 + Objects/unicodeobject.c | 22 +++++++- 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-26-21-20-21.bpo-32583.Fh3fau.rst diff --git a/Lib/test/test_codeccallbacks.py b/Lib/test/test_codeccallbacks.py index 0c066e633fa846..e2e7463389ef72 100644 --- a/Lib/test/test_codeccallbacks.py +++ b/Lib/test/test_codeccallbacks.py @@ -1044,6 +1044,58 @@ def mutating(exc): for (encoding, data) in baddata: self.assertEqual(data.decode(encoding, "test.mutating"), "\u4242") + # issue32583 + def test_crashing_decode_handler(self): + # better generating one more character to fill the extra space slot + # so in debug build it can steadily fail + def forward_shorter_than_end(exc): + if isinstance(exc, UnicodeDecodeError): + # size one character, 0 < forward < exc.end + return ('\ufffd', exc.start+1) + else: + raise TypeError("don't know how to handle %r" % exc) + codecs.register_error( + "test.forward_shorter_than_end", forward_shorter_than_end) + + self.assertEqual( + b'\xd8\xd8\xd8\xd8\xd8\x00\x00\x00'.decode( + 'utf-16-le', 'test.forward_shorter_than_end'), + '\ufffd\ufffd\ufffd\ufffd\xd8\x00' + ) + self.assertEqual( + b'\xd8\xd8\xd8\xd8\x00\xd8\x00\x00'.decode( + 'utf-16-be', 'test.forward_shorter_than_end'), + '\ufffd\ufffd\ufffd\ufffd\xd8\x00' + ) + self.assertEqual( + b'\x11\x11\x11\x11\x11\x00\x00\x00\x00\x00\x00'.decode( + 'utf-32-le', 'test.forward_shorter_than_end'), + '\ufffd\ufffd\ufffd\u1111\x00' + ) + self.assertEqual( + b'\x11\x11\x11\x00\x00\x11\x11\x00\x00\x00\x00'.decode( + 'utf-32-be', 'test.forward_shorter_than_end'), + '\ufffd\ufffd\ufffd\u1111\x00' + ) + + def replace_with_long(exc): + if isinstance(exc, UnicodeDecodeError): + exc.object = b"\x00" * 8 + return ('\ufffd', exc.start) + else: + raise TypeError("don't know how to handle %r" % exc) + codecs.register_error("test.replace_with_long", replace_with_long) + + self.assertEqual( + b'\x00'.decode('utf-16', 'test.replace_with_long'), + '\ufffd\x00\x00\x00\x00' + ) + self.assertEqual( + b'\x00'.decode('utf-32', 'test.replace_with_long'), + '\ufffd\x00\x00' + ) + + def test_fake_error_class(self): handlers = [ codecs.strict_errors, diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-26-21-20-21.bpo-32583.Fh3fau.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-26-21-20-21.bpo-32583.Fh3fau.rst new file mode 100644 index 00000000000000..45f1d043f9d6fe --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2018-01-26-21-20-21.bpo-32583.Fh3fau.rst @@ -0,0 +1,2 @@ +Fix possible crashing in builtin Unicode decoders caused by write +out-of-bound errors when using customized decode error handlers. diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 775bd15cf6d160..3d9e09d7fab158 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -4190,7 +4190,10 @@ unicode_decode_call_errorhandler_writer( Py_ssize_t insize; Py_ssize_t newpos; Py_ssize_t replen; + Py_ssize_t remain; PyObject *inputobj = NULL; + int need_to_grow = 0; + const char *new_inptr; if (*errorHandler == NULL) { *errorHandler = PyCodec_LookupError(errors); @@ -4221,6 +4224,7 @@ unicode_decode_call_errorhandler_writer( inputobj = PyUnicodeDecodeError_GetObject(*exceptionObject); if (!inputobj) goto onError; + remain = *inend - *input - *endinpos; *input = PyBytes_AS_STRING(inputobj); insize = PyBytes_GET_SIZE(inputobj); *inend = *input + insize; @@ -4238,6 +4242,19 @@ unicode_decode_call_errorhandler_writer( replen = PyUnicode_GET_LENGTH(repunicode); if (replen > 1) { writer->min_length += replen - 1; + need_to_grow = 1; + } + new_inptr = *input + newpos; + if (*inend - new_inptr > remain) { + /* We don't know the decoding algorithm here so we make the worst + assumption that one byte decodes to one unicode character. + If unfortunately one byte could decode to more unicode characters, + the decoder may write out-of-bound then. Is it possible for the + algorithms using this function? */ + writer->min_length += *inend - new_inptr - remain; + need_to_grow = 1; + } + if (need_to_grow) { writer->overallocate = 1; if (_PyUnicodeWriter_Prepare(writer, writer->min_length, PyUnicode_MAX_CHAR_VALUE(repunicode)) == -1) @@ -4247,7 +4264,7 @@ unicode_decode_call_errorhandler_writer( goto onError; *endinpos = newpos; - *inptr = *input + newpos; + *inptr = new_inptr; /* we made it! */ Py_DECREF(restuple); @@ -5572,7 +5589,8 @@ PyUnicode_DecodeUTF16Stateful(const char *s, #endif /* Note: size will always be longer than the resulting Unicode - character count */ + character count normally. Error handler will take care of + resizing when needed. */ _PyUnicodeWriter_Init(&writer); writer.min_length = (e - q + 1) / 2; if (_PyUnicodeWriter_Prepare(&writer, writer.min_length, 127) == -1) From f3da70f8ab17219dfe122d43379b7a3f751bddab Mon Sep 17 00:00:00 2001 From: Xiang Zhang Date: Wed, 31 Jan 2018 23:50:50 +0800 Subject: [PATCH 0007/1754] Make site documentation more clear (#5461) Mention only ImportError caused by importing sitecustomize.py/usercustomize.py themselves will be silently ignored. --- Doc/library/site.rst | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Doc/library/site.rst b/Doc/library/site.rst index 43daf790b77cb0..ae408133a7cea3 100644 --- a/Doc/library/site.rst +++ b/Doc/library/site.rst @@ -97,12 +97,12 @@ not mentioned in either path configuration file. After these path manipulations, an attempt is made to import a module named :mod:`sitecustomize`, which can perform arbitrary site-specific customizations. It is typically created by a system administrator in the site-packages -directory. If this import fails with an :exc:`ImportError` exception, it is -silently ignored. If Python is started without output streams available, as +directory. If this import fails with an :exc:`ImportError` or its subclass +exception, and the exception's :attr:`name` attribute equals to ``'sitecustomize'``, +it is silently ignored. If Python is started without output streams available, as with :file:`pythonw.exe` on Windows (which is used by default to start IDLE), -attempted output from :mod:`sitecustomize` is ignored. Any exception other -than :exc:`ImportError` causes a silent and perhaps mysterious failure of the -process. +attempted output from :mod:`sitecustomize` is ignored. Any other exception +causes a silent and perhaps mysterious failure of the process. .. index:: module: usercustomize @@ -110,7 +110,9 @@ After this, an attempt is made to import a module named :mod:`usercustomize`, which can perform arbitrary user-specific customizations, if :data:`ENABLE_USER_SITE` is true. This file is intended to be created in the user site-packages directory (see below), which is part of ``sys.path`` unless -disabled by :option:`-s`. An :exc:`ImportError` will be silently ignored. +disabled by :option:`-s`. If this import fails with an :exc:`ImportError` or +its subclass exception, and the exception's :attr:`name` attribute equals to +``'usercustomize'``, it is silently ignored. Note that for some non-Unix systems, ``sys.prefix`` and ``sys.exec_prefix`` are empty, and the path manipulations are skipped; however the import of From 70e304252af34dfde3d89c9a1aa48c0c4af17dd3 Mon Sep 17 00:00:00 2001 From: Cheryl Sabella Date: Wed, 31 Jan 2018 16:37:51 -0500 Subject: [PATCH 0008/1754] bpo-32735: Fix typo in f-strings datetime format specifier example (GH-5464) The f-string example for using datetime format specifier does not match the given output. Changed the format from %b to %B so it matches the output of "January". --- Doc/reference/lexical_analysis.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst index 95b0f53a83e604..c6d96ca612b8c3 100644 --- a/Doc/reference/lexical_analysis.rst +++ b/Doc/reference/lexical_analysis.rst @@ -676,7 +676,7 @@ Some examples of formatted string literals:: >>> f"result: {value:{width}.{precision}}" # nested fields 'result: 12.35' >>> today = datetime(year=2017, month=1, day=27) - >>> f"{today:%b %d, %Y}" # using date format specifier + >>> f"{today:%B %d, %Y}" # using date format specifier 'January 27, 2017' >>> number = 1024 >>> f"{number:#0x}" # using integer format specifier From 7f38637853c25a72abeea75f854d81a91b087cb5 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Wed, 31 Jan 2018 18:24:44 -0500 Subject: [PATCH 0009/1754] Update Doc build for split off of 3.7 branch --- Doc/tools/extensions/pyspecific.py | 2 +- Doc/tools/static/switchers.js | 3 ++- Doc/tools/templates/indexsidebar.html | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index 00acd4f55b8b95..5cb9f1d66e10c8 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -35,7 +35,7 @@ ISSUE_URI = 'https://bugs.python.org/issue%s' -SOURCE_URI = 'https://github.com/python/cpython/tree/master/%s' +SOURCE_URI = 'https://github.com/python/cpython/tree/3.7/%s' # monkey-patch reST parser to disable alphabetic and roman enumerated lists from docutils.parsers.rst.states import Body diff --git a/Doc/tools/static/switchers.js b/Doc/tools/static/switchers.js index c450f5eafffc89..8e0c5ea0092a9f 100644 --- a/Doc/tools/static/switchers.js +++ b/Doc/tools/static/switchers.js @@ -10,7 +10,8 @@ '(?:release/\\d.\\d[\\x\\d\\.]*)']; var all_versions = { - '3.7': 'dev (3.7)', + '3.8': 'dev (3.8)', + '3.7': 'pre (3.7)', '3.6': '3.6', '3.5': '3.5', '2.7': '2.7', diff --git a/Doc/tools/templates/indexsidebar.html b/Doc/tools/templates/indexsidebar.html index 9fa814f923b6e2..ea50ba9028fdc8 100644 --- a/Doc/tools/templates/indexsidebar.html +++ b/Doc/tools/templates/indexsidebar.html @@ -2,6 +2,7 @@

{% trans %}Download{% endtrans %}

{% trans %}Download these documents{% endtrans %}

{% trans %}Docs for other versions{% endtrans %}