Python-checkins
Threads by month
- ----- 2024 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
February 2018
- 4 participants
- 401 discussions
https://github.com/python/cpython/commit/82734a6769a9b986478b130d321f8bbd18…
commit: 82734a6769a9b986478b130d321f8bbd18e1546a
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-02-28T15:58:58-08:00
summary:
Fix typo in logging doc: picked -> pickled (GH-5942)
(cherry picked from commit 982c7233846e8fbdb1e0ca23c8ae3f6362645307)
Co-authored-by: James Walker <19191463+jdswalker(a)users.noreply.github.com>
files:
M Doc/library/logging.rst
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 1ed129c00d49..88f804a074ec 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -328,7 +328,7 @@ is the module's name in the Python package namespace.
.. versionadded:: 3.2
.. versionchanged:: 3.7
- Loggers can now be picked and unpickled.
+ Loggers can now be pickled and unpickled.
.. _levels:
1
0
https://github.com/python/cpython/commit/982c7233846e8fbdb1e0ca23c8ae3f6362…
commit: 982c7233846e8fbdb1e0ca23c8ae3f6362645307
branch: master
author: James Walker <19191463+jdswalker(a)users.noreply.github.com>
committer: Mariatta <Mariatta(a)users.noreply.github.com>
date: 2018-02-28T15:46:35-08:00
summary:
Fix typo in logging doc: picked -> pickled (GH-5942)
files:
M Doc/library/logging.rst
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 1ed129c00d49..88f804a074ec 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -328,7 +328,7 @@ is the module's name in the Python package namespace.
.. versionadded:: 3.2
.. versionchanged:: 3.7
- Loggers can now be picked and unpickled.
+ Loggers can now be pickled and unpickled.
.. _levels:
1
0
bpo-32940: IDLE: Simplify StringTranslatePseudoMapping in pyparse (GH-5862)
by Miss Islington (bot) 28 Feb '18
by Miss Islington (bot) 28 Feb '18
28 Feb '18
https://github.com/python/cpython/commit/32f5392f64f004382e26a988b1145d2dc9…
commit: 32f5392f64f004382e26a988b1145d2dc96c4978
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-02-28T15:12:15-08:00
summary:
bpo-32940: IDLE: Simplify StringTranslatePseudoMapping in pyparse (GH-5862)
The new code also runs faster.
(cherry picked from commit f0daa880a405c8de6743e44fa46006754aa145c9)
Co-authored-by: Cheryl Sabella <cheryl.sabella(a)gmail.com>
files:
A Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
M Lib/idlelib/idle_test/test_pyparse.py
M Lib/idlelib/pyparse.py
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py
index c7b645caa6a8..574b19d9d6f1 100644
--- a/Lib/idlelib/idle_test/test_pyparse.py
+++ b/Lib/idlelib/idle_test/test_pyparse.py
@@ -8,44 +8,20 @@
from idlelib import pyparse
-class StringTranslatePseudoMappingTest(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- whitespace_chars = ' \t\n\r'
- cls.preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
- cls.default = ord('x')
- cls.mapping = pyparse.StringTranslatePseudoMapping(
- cls.preserve_dict, default_value=ord('x'))
-
- @classmethod
- def tearDownClass(cls):
- del cls.preserve_dict, cls.default, cls.mapping
-
- def test__init__(self):
- m = self.mapping
- self.assertEqual(m._non_defaults, self.preserve_dict)
- self.assertEqual(m._default_value, self.default)
-
- def test__get_item__(self):
- self.assertEqual(self.mapping[ord('\t')], ord('\t'))
- self.assertEqual(self.mapping[ord('a')], self.default)
-
- def test__len__(self):
- self.assertEqual(len(self.mapping), len(self.preserve_dict))
-
- def test__iter__(self):
- count = 0
- for key, value in self.mapping.items():
- self.assertIn(key, self.preserve_dict)
- count += 1
- self.assertEqual(count, len(self.mapping))
-
- def test_get(self):
- self.assertEqual(self.mapping.get(ord('\t')), ord('\t'))
- self.assertEqual(self.mapping.get('a'), self.default)
- # Default is a parameter, but it isn't used.
- self.assertEqual(self.mapping.get('a', default=500), self.default)
+class ParseMapTest(unittest.TestCase):
+
+ def test_parsemap(self):
+ keepwhite = {ord(c): ord(c) for c in ' \t\n\r'}
+ mapping = pyparse.ParseMap(keepwhite)
+ self.assertEqual(mapping[ord('\t')], ord('\t'))
+ self.assertEqual(mapping[ord('a')], ord('x'))
+ self.assertEqual(mapping[1000], ord('x'))
+
+ def test_trans(self):
+ # trans is the production instance of ParseMap, used in _study1
+ parser = pyparse.Parser(4, 4)
+ self.assertEqual('\t a([{b}])b"c\'d\n'.translate(pyparse.trans),
+ 'xxx(((x)))x"x\'x\n')
class PyParseTest(unittest.TestCase):
@@ -152,10 +128,6 @@ def test_set_lo(self):
p.set_lo(44)
self.assertEqual(p.code, code[44:])
- def test_tran(self):
- self.assertEqual('\t a([{b}])b"c\'d\n'.translate(self.parser._tran),
- 'xxx(((x)))x"x\'x\n')
-
def test_study1(self):
eq = self.assertEqual
p = self.parser
diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py
index 443d198d1efe..6196c2b7edc9 100644
--- a/Lib/idlelib/pyparse.py
+++ b/Lib/idlelib/pyparse.py
@@ -1,6 +1,6 @@
"""Define partial Python code Parser used by editor and hyperparser.
-Instances of StringTranslatePseudoMapping are used with str.translate.
+Instances of ParseMap are used with str.translate.
The following bound search and match functions are defined:
_synchre - start of popular statement;
@@ -10,7 +10,6 @@
_closere - line that must be followed by dedent.
_chew_ordinaryre - non-special characters.
"""
-from collections.abc import Mapping
import re
import sys
@@ -101,46 +100,27 @@
""", re.VERBOSE).match
-class StringTranslatePseudoMapping(Mapping):
- r"""Utility class to be used with str.translate()
+class ParseMap(dict):
+ r"""Dict subclass that maps anything not in dict to 'x'.
- This Mapping class wraps a given dict. When a value for a key is
- requested via __getitem__() or get(), the key is looked up in the
- given dict. If found there, the value from the dict is returned.
- Otherwise, the default value given upon initialization is returned.
+ This is designed to be used with str.translate in study1.
+ Anything not specifically mapped otherwise becomes 'x'.
+ Example: replace everything except whitespace with 'x'.
- This allows using str.translate() to make some replacements, and to
- replace all characters for which no replacement was specified with
- a given character instead of leaving them as-is.
-
- For example, to replace everything except whitespace with 'x':
-
- >>> whitespace_chars = ' \t\n\r'
- >>> preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
- >>> mapping = StringTranslatePseudoMapping(preserve_dict, ord('x'))
- >>> text = "a + b\tc\nd"
- >>> text.translate(mapping)
+ >>> keepwhite = ParseMap((ord(c), ord(c)) for c in ' \t\n\r')
+ >>> "a + b\tc\nd".translate(keepwhite)
'x x x\tx\nx'
"""
- def __init__(self, non_defaults, default_value):
- self._non_defaults = non_defaults
- self._default_value = default_value
-
- def _get(key, _get=non_defaults.get, _default=default_value):
- return _get(key, _default)
- self._get = _get
+ # Calling this triples access time; see bpo-32940
+ def __missing__(self, key):
+ return 120 # ord('x')
- def __getitem__(self, item):
- return self._get(item)
- def __len__(self):
- return len(self._non_defaults)
-
- def __iter__(self):
- return iter(self._non_defaults)
-
- def get(self, key, default=None):
- return self._get(key)
+# Map all ascii to 120 to avoid __missing__ call, then replace some.
+trans = ParseMap.fromkeys(range(128), 120)
+trans.update((ord(c), ord('(')) for c in "({[") # open brackets => '(';
+trans.update((ord(c), ord(')')) for c in ")}]") # close brackets => ')'.
+trans.update((ord(c), ord(c)) for c in "\"'\\\n#") # Keep these.
class Parser:
@@ -224,16 +204,6 @@ def set_lo(self, lo):
if lo > 0:
self.code = self.code[lo:]
- # Build a translation table to map uninteresting chars to 'x', open
- # brackets to '(', close brackets to ')' while preserving quotes,
- # backslashes, newlines and hashes. This is to be passed to
- # str.translate() in _study1().
- _tran = {}
- _tran.update((ord(c), ord('(')) for c in "({[")
- _tran.update((ord(c), ord(')')) for c in ")}]")
- _tran.update((ord(c), ord(c)) for c in "\"'\\\n#")
- _tran = StringTranslatePseudoMapping(_tran, default_value=ord('x'))
-
def _study1(self):
"""Find the line numbers of non-continuation lines.
@@ -250,7 +220,7 @@ def _study1(self):
# uninteresting characters. This can cut the number of chars
# by a factor of 10-40, and so greatly speed the following loop.
code = self.code
- code = code.translate(self._tran)
+ code = code.translate(trans)
code = code.replace('xxxxxxxx', 'x')
code = code.replace('xxxx', 'x')
code = code.replace('xx', 'x')
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst b/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
new file mode 100644
index 000000000000..958f9522d4f8
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
@@ -0,0 +1 @@
+Simplify and rename StringTranslatePseudoMapping in pyparse.
1
0
bpo-32940: IDLE: Simplify StringTranslatePseudoMapping in pyparse (GH-5862)
by Miss Islington (bot) 28 Feb '18
by Miss Islington (bot) 28 Feb '18
28 Feb '18
https://github.com/python/cpython/commit/7e5763469e2fc9d08a3f6b6205f87f20a1…
commit: 7e5763469e2fc9d08a3f6b6205f87f20a1bdd465
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-02-28T15:08:21-08:00
summary:
bpo-32940: IDLE: Simplify StringTranslatePseudoMapping in pyparse (GH-5862)
The new code also runs faster.
(cherry picked from commit f0daa880a405c8de6743e44fa46006754aa145c9)
Co-authored-by: Cheryl Sabella <cheryl.sabella(a)gmail.com>
files:
A Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
M Lib/idlelib/idle_test/test_pyparse.py
M Lib/idlelib/pyparse.py
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py
index c7b645caa6a8..574b19d9d6f1 100644
--- a/Lib/idlelib/idle_test/test_pyparse.py
+++ b/Lib/idlelib/idle_test/test_pyparse.py
@@ -8,44 +8,20 @@
from idlelib import pyparse
-class StringTranslatePseudoMappingTest(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- whitespace_chars = ' \t\n\r'
- cls.preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
- cls.default = ord('x')
- cls.mapping = pyparse.StringTranslatePseudoMapping(
- cls.preserve_dict, default_value=ord('x'))
-
- @classmethod
- def tearDownClass(cls):
- del cls.preserve_dict, cls.default, cls.mapping
-
- def test__init__(self):
- m = self.mapping
- self.assertEqual(m._non_defaults, self.preserve_dict)
- self.assertEqual(m._default_value, self.default)
-
- def test__get_item__(self):
- self.assertEqual(self.mapping[ord('\t')], ord('\t'))
- self.assertEqual(self.mapping[ord('a')], self.default)
-
- def test__len__(self):
- self.assertEqual(len(self.mapping), len(self.preserve_dict))
-
- def test__iter__(self):
- count = 0
- for key, value in self.mapping.items():
- self.assertIn(key, self.preserve_dict)
- count += 1
- self.assertEqual(count, len(self.mapping))
-
- def test_get(self):
- self.assertEqual(self.mapping.get(ord('\t')), ord('\t'))
- self.assertEqual(self.mapping.get('a'), self.default)
- # Default is a parameter, but it isn't used.
- self.assertEqual(self.mapping.get('a', default=500), self.default)
+class ParseMapTest(unittest.TestCase):
+
+ def test_parsemap(self):
+ keepwhite = {ord(c): ord(c) for c in ' \t\n\r'}
+ mapping = pyparse.ParseMap(keepwhite)
+ self.assertEqual(mapping[ord('\t')], ord('\t'))
+ self.assertEqual(mapping[ord('a')], ord('x'))
+ self.assertEqual(mapping[1000], ord('x'))
+
+ def test_trans(self):
+ # trans is the production instance of ParseMap, used in _study1
+ parser = pyparse.Parser(4, 4)
+ self.assertEqual('\t a([{b}])b"c\'d\n'.translate(pyparse.trans),
+ 'xxx(((x)))x"x\'x\n')
class PyParseTest(unittest.TestCase):
@@ -152,10 +128,6 @@ def test_set_lo(self):
p.set_lo(44)
self.assertEqual(p.code, code[44:])
- def test_tran(self):
- self.assertEqual('\t a([{b}])b"c\'d\n'.translate(self.parser._tran),
- 'xxx(((x)))x"x\'x\n')
-
def test_study1(self):
eq = self.assertEqual
p = self.parser
diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py
index 443d198d1efe..6196c2b7edc9 100644
--- a/Lib/idlelib/pyparse.py
+++ b/Lib/idlelib/pyparse.py
@@ -1,6 +1,6 @@
"""Define partial Python code Parser used by editor and hyperparser.
-Instances of StringTranslatePseudoMapping are used with str.translate.
+Instances of ParseMap are used with str.translate.
The following bound search and match functions are defined:
_synchre - start of popular statement;
@@ -10,7 +10,6 @@
_closere - line that must be followed by dedent.
_chew_ordinaryre - non-special characters.
"""
-from collections.abc import Mapping
import re
import sys
@@ -101,46 +100,27 @@
""", re.VERBOSE).match
-class StringTranslatePseudoMapping(Mapping):
- r"""Utility class to be used with str.translate()
+class ParseMap(dict):
+ r"""Dict subclass that maps anything not in dict to 'x'.
- This Mapping class wraps a given dict. When a value for a key is
- requested via __getitem__() or get(), the key is looked up in the
- given dict. If found there, the value from the dict is returned.
- Otherwise, the default value given upon initialization is returned.
+ This is designed to be used with str.translate in study1.
+ Anything not specifically mapped otherwise becomes 'x'.
+ Example: replace everything except whitespace with 'x'.
- This allows using str.translate() to make some replacements, and to
- replace all characters for which no replacement was specified with
- a given character instead of leaving them as-is.
-
- For example, to replace everything except whitespace with 'x':
-
- >>> whitespace_chars = ' \t\n\r'
- >>> preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
- >>> mapping = StringTranslatePseudoMapping(preserve_dict, ord('x'))
- >>> text = "a + b\tc\nd"
- >>> text.translate(mapping)
+ >>> keepwhite = ParseMap((ord(c), ord(c)) for c in ' \t\n\r')
+ >>> "a + b\tc\nd".translate(keepwhite)
'x x x\tx\nx'
"""
- def __init__(self, non_defaults, default_value):
- self._non_defaults = non_defaults
- self._default_value = default_value
-
- def _get(key, _get=non_defaults.get, _default=default_value):
- return _get(key, _default)
- self._get = _get
+ # Calling this triples access time; see bpo-32940
+ def __missing__(self, key):
+ return 120 # ord('x')
- def __getitem__(self, item):
- return self._get(item)
- def __len__(self):
- return len(self._non_defaults)
-
- def __iter__(self):
- return iter(self._non_defaults)
-
- def get(self, key, default=None):
- return self._get(key)
+# Map all ascii to 120 to avoid __missing__ call, then replace some.
+trans = ParseMap.fromkeys(range(128), 120)
+trans.update((ord(c), ord('(')) for c in "({[") # open brackets => '(';
+trans.update((ord(c), ord(')')) for c in ")}]") # close brackets => ')'.
+trans.update((ord(c), ord(c)) for c in "\"'\\\n#") # Keep these.
class Parser:
@@ -224,16 +204,6 @@ def set_lo(self, lo):
if lo > 0:
self.code = self.code[lo:]
- # Build a translation table to map uninteresting chars to 'x', open
- # brackets to '(', close brackets to ')' while preserving quotes,
- # backslashes, newlines and hashes. This is to be passed to
- # str.translate() in _study1().
- _tran = {}
- _tran.update((ord(c), ord('(')) for c in "({[")
- _tran.update((ord(c), ord(')')) for c in ")}]")
- _tran.update((ord(c), ord(c)) for c in "\"'\\\n#")
- _tran = StringTranslatePseudoMapping(_tran, default_value=ord('x'))
-
def _study1(self):
"""Find the line numbers of non-continuation lines.
@@ -250,7 +220,7 @@ def _study1(self):
# uninteresting characters. This can cut the number of chars
# by a factor of 10-40, and so greatly speed the following loop.
code = self.code
- code = code.translate(self._tran)
+ code = code.translate(trans)
code = code.replace('xxxxxxxx', 'x')
code = code.replace('xxxx', 'x')
code = code.replace('xx', 'x')
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst b/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
new file mode 100644
index 000000000000..958f9522d4f8
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
@@ -0,0 +1 @@
+Simplify and rename StringTranslatePseudoMapping in pyparse.
1
0
bpo-32940: IDLE: Simplify StringTranslatePseudoMapping in pyparse (GH-5862)
by Terry Jan Reedy 28 Feb '18
by Terry Jan Reedy 28 Feb '18
28 Feb '18
https://github.com/python/cpython/commit/f0daa880a405c8de6743e44fa46006754a…
commit: f0daa880a405c8de6743e44fa46006754aa145c9
branch: master
author: Cheryl Sabella <cheryl.sabella(a)gmail.com>
committer: Terry Jan Reedy <tjreedy(a)udel.edu>
date: 2018-02-28T17:23:58-05:00
summary:
bpo-32940: IDLE: Simplify StringTranslatePseudoMapping in pyparse (GH-5862)
The new code also runs faster.
files:
A Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
M Lib/idlelib/idle_test/test_pyparse.py
M Lib/idlelib/pyparse.py
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py
index c7b645caa6a8..574b19d9d6f1 100644
--- a/Lib/idlelib/idle_test/test_pyparse.py
+++ b/Lib/idlelib/idle_test/test_pyparse.py
@@ -8,44 +8,20 @@
from idlelib import pyparse
-class StringTranslatePseudoMappingTest(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- whitespace_chars = ' \t\n\r'
- cls.preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
- cls.default = ord('x')
- cls.mapping = pyparse.StringTranslatePseudoMapping(
- cls.preserve_dict, default_value=ord('x'))
-
- @classmethod
- def tearDownClass(cls):
- del cls.preserve_dict, cls.default, cls.mapping
-
- def test__init__(self):
- m = self.mapping
- self.assertEqual(m._non_defaults, self.preserve_dict)
- self.assertEqual(m._default_value, self.default)
-
- def test__get_item__(self):
- self.assertEqual(self.mapping[ord('\t')], ord('\t'))
- self.assertEqual(self.mapping[ord('a')], self.default)
-
- def test__len__(self):
- self.assertEqual(len(self.mapping), len(self.preserve_dict))
-
- def test__iter__(self):
- count = 0
- for key, value in self.mapping.items():
- self.assertIn(key, self.preserve_dict)
- count += 1
- self.assertEqual(count, len(self.mapping))
-
- def test_get(self):
- self.assertEqual(self.mapping.get(ord('\t')), ord('\t'))
- self.assertEqual(self.mapping.get('a'), self.default)
- # Default is a parameter, but it isn't used.
- self.assertEqual(self.mapping.get('a', default=500), self.default)
+class ParseMapTest(unittest.TestCase):
+
+ def test_parsemap(self):
+ keepwhite = {ord(c): ord(c) for c in ' \t\n\r'}
+ mapping = pyparse.ParseMap(keepwhite)
+ self.assertEqual(mapping[ord('\t')], ord('\t'))
+ self.assertEqual(mapping[ord('a')], ord('x'))
+ self.assertEqual(mapping[1000], ord('x'))
+
+ def test_trans(self):
+ # trans is the production instance of ParseMap, used in _study1
+ parser = pyparse.Parser(4, 4)
+ self.assertEqual('\t a([{b}])b"c\'d\n'.translate(pyparse.trans),
+ 'xxx(((x)))x"x\'x\n')
class PyParseTest(unittest.TestCase):
@@ -152,10 +128,6 @@ def test_set_lo(self):
p.set_lo(44)
self.assertEqual(p.code, code[44:])
- def test_tran(self):
- self.assertEqual('\t a([{b}])b"c\'d\n'.translate(self.parser._tran),
- 'xxx(((x)))x"x\'x\n')
-
def test_study1(self):
eq = self.assertEqual
p = self.parser
diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py
index 443d198d1efe..6196c2b7edc9 100644
--- a/Lib/idlelib/pyparse.py
+++ b/Lib/idlelib/pyparse.py
@@ -1,6 +1,6 @@
"""Define partial Python code Parser used by editor and hyperparser.
-Instances of StringTranslatePseudoMapping are used with str.translate.
+Instances of ParseMap are used with str.translate.
The following bound search and match functions are defined:
_synchre - start of popular statement;
@@ -10,7 +10,6 @@
_closere - line that must be followed by dedent.
_chew_ordinaryre - non-special characters.
"""
-from collections.abc import Mapping
import re
import sys
@@ -101,46 +100,27 @@
""", re.VERBOSE).match
-class StringTranslatePseudoMapping(Mapping):
- r"""Utility class to be used with str.translate()
+class ParseMap(dict):
+ r"""Dict subclass that maps anything not in dict to 'x'.
- This Mapping class wraps a given dict. When a value for a key is
- requested via __getitem__() or get(), the key is looked up in the
- given dict. If found there, the value from the dict is returned.
- Otherwise, the default value given upon initialization is returned.
+ This is designed to be used with str.translate in study1.
+ Anything not specifically mapped otherwise becomes 'x'.
+ Example: replace everything except whitespace with 'x'.
- This allows using str.translate() to make some replacements, and to
- replace all characters for which no replacement was specified with
- a given character instead of leaving them as-is.
-
- For example, to replace everything except whitespace with 'x':
-
- >>> whitespace_chars = ' \t\n\r'
- >>> preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
- >>> mapping = StringTranslatePseudoMapping(preserve_dict, ord('x'))
- >>> text = "a + b\tc\nd"
- >>> text.translate(mapping)
+ >>> keepwhite = ParseMap((ord(c), ord(c)) for c in ' \t\n\r')
+ >>> "a + b\tc\nd".translate(keepwhite)
'x x x\tx\nx'
"""
- def __init__(self, non_defaults, default_value):
- self._non_defaults = non_defaults
- self._default_value = default_value
-
- def _get(key, _get=non_defaults.get, _default=default_value):
- return _get(key, _default)
- self._get = _get
+ # Calling this triples access time; see bpo-32940
+ def __missing__(self, key):
+ return 120 # ord('x')
- def __getitem__(self, item):
- return self._get(item)
- def __len__(self):
- return len(self._non_defaults)
-
- def __iter__(self):
- return iter(self._non_defaults)
-
- def get(self, key, default=None):
- return self._get(key)
+# Map all ascii to 120 to avoid __missing__ call, then replace some.
+trans = ParseMap.fromkeys(range(128), 120)
+trans.update((ord(c), ord('(')) for c in "({[") # open brackets => '(';
+trans.update((ord(c), ord(')')) for c in ")}]") # close brackets => ')'.
+trans.update((ord(c), ord(c)) for c in "\"'\\\n#") # Keep these.
class Parser:
@@ -224,16 +204,6 @@ def set_lo(self, lo):
if lo > 0:
self.code = self.code[lo:]
- # Build a translation table to map uninteresting chars to 'x', open
- # brackets to '(', close brackets to ')' while preserving quotes,
- # backslashes, newlines and hashes. This is to be passed to
- # str.translate() in _study1().
- _tran = {}
- _tran.update((ord(c), ord('(')) for c in "({[")
- _tran.update((ord(c), ord(')')) for c in ")}]")
- _tran.update((ord(c), ord(c)) for c in "\"'\\\n#")
- _tran = StringTranslatePseudoMapping(_tran, default_value=ord('x'))
-
def _study1(self):
"""Find the line numbers of non-continuation lines.
@@ -250,7 +220,7 @@ def _study1(self):
# uninteresting characters. This can cut the number of chars
# by a factor of 10-40, and so greatly speed the following loop.
code = self.code
- code = code.translate(self._tran)
+ code = code.translate(trans)
code = code.replace('xxxxxxxx', 'x')
code = code.replace('xxxx', 'x')
code = code.replace('xx', 'x')
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst b/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
new file mode 100644
index 000000000000..958f9522d4f8
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2018-02-24-18-20-50.bpo-32940.ZaJ1Rf.rst
@@ -0,0 +1 @@
+Simplify and rename StringTranslatePseudoMapping in pyparse.
1
0
https://github.com/python/cpython/commit/45ab51c142c2dc70a2abb7100b3cb3457b…
commit: 45ab51c142c2dc70a2abb7100b3cb3457bc18516
branch: master
author: Ned Deily <nad(a)python.org>
committer: Ned Deily <nad(a)python.org>
date: 2018-02-28T13:58:38-05:00
summary:
Fix 3.8 whatsnew changelog link
files:
M Doc/whatsnew/3.8.rst
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 1d722ef5f0cd..904a3584e67a 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -47,7 +47,7 @@
This article explains the new features in Python 3.8, compared to 3.7.
-For full details, see the :source:`Misc/NEWS` file.
+For full details, see the :ref:`changelog <changelog>`.
.. note::
1
0
results for 4243df51fe43 on branch "default"
--------------------------------------------
test_collections leaked [-7, 1, 0] memory blocks, sum=-6
test_functools leaked [0, 3, 1] memory blocks, sum=4
test_multiprocessing_fork leaked [-2, 2, 1] memory blocks, sum=1
test_multiprocessing_forkserver leaked [0, -2, 2] memory blocks, sum=0
Command line was: ['./python', '-m', 'test.regrtest', '-uall', '-R', '3:3:/home/psf-users/antoine/refleaks/reflogtJXUWJ', '--timeout', '7200']
1
0
Minor improvements to the Windows build/release process (GH-5935)
by Miss Islington (bot) 28 Feb '18
by Miss Islington (bot) 28 Feb '18
28 Feb '18
https://github.com/python/cpython/commit/cefbd0101d4fd0a258be0c182cf27609ad…
commit: cefbd0101d4fd0a258be0c182cf27609ad26c100
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-02-27T22:30:48-08:00
summary:
Minor improvements to the Windows build/release process (GH-5935)
(cherry picked from commit 881323db717f9b6ffe30d14104a2925c77f28db7)
Co-authored-by: Steve Dower <steve.dower(a)microsoft.com>
files:
M PCbuild/find_msbuild.bat
M Tools/msi/purge.py
M Tools/msi/uploadrelease.bat
diff --git a/PCbuild/find_msbuild.bat b/PCbuild/find_msbuild.bat
index 2b7413fbcde8..1877906e00a5 100644
--- a/PCbuild/find_msbuild.bat
+++ b/PCbuild/find_msbuild.bat
@@ -29,14 +29,6 @@
@where msbuild > "%TEMP%\msbuild.loc" 2> nul && set /P MSBUILD= < "%TEMP%\msbuild.loc" & del "%TEMP%\msbuild.loc"
@if exist "%MSBUILD%" set MSBUILD="%MSBUILD%" & (set _Py_MSBuild_Source=PATH) & goto :found
-@rem VS 2015 and earlier register MSBuild separately, so we can find it.
-@rem Prefer MSBuild 14.0 over MSBuild 15.0, since the latter may not be able to find a VC14 install.
-@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32 >nul 2>nul
-@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32') DO @(
- @if "%%i"=="MSBuildToolsPath" @if exist "%%k\msbuild.exe" @(set MSBUILD="%%k\msbuild.exe")
-)
-@if exist %MSBUILD% (set _Py_MSBuild_Source=registry) & goto :found
-
@rem VS 2017 sets exactly one install as the "main" install, so we may find MSBuild in there.
@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v 15.0 /reg:32 >nul 2>nul
@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v 15.0 /reg:32') DO @(
@@ -44,6 +36,13 @@
)
@if exist %MSBUILD% (set _Py_MSBuild_Source=Visual Studio 2017 registry) & goto :found
+@rem VS 2015 and earlier register MSBuild separately, so we can find it.
+@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32 >nul 2>nul
+@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32') DO @(
+ @if "%%i"=="MSBuildToolsPath" @if exist "%%k\msbuild.exe" @(set MSBUILD="%%k\msbuild.exe")
+)
+@if exist %MSBUILD% (set _Py_MSBuild_Source=registry) & goto :found
+
@exit /b 1
diff --git a/Tools/msi/purge.py b/Tools/msi/purge.py
index 24fdae243884..a8b8f4d8973c 100644
--- a/Tools/msi/purge.py
+++ b/Tools/msi/purge.py
@@ -50,6 +50,7 @@
"test_d.msi",
"test_pdb.msi",
"tools.msi",
+ "ucrt.msi",
"Windows6.0-KB2999226-x64.msu",
"Windows6.0-KB2999226-x86.msu",
"Windows6.1-KB2999226-x64.msu",
diff --git a/Tools/msi/uploadrelease.bat b/Tools/msi/uploadrelease.bat
index 3ae5dbc61bf3..f262489cce60 100644
--- a/Tools/msi/uploadrelease.bat
+++ b/Tools/msi/uploadrelease.bat
@@ -31,13 +31,17 @@ if "%1" NEQ "" echo Unexpected argument "%1" & exit /B 1
if not defined PLINK where plink > "%TEMP%\plink.loc" 2> nul && set /P PLINK= < "%TEMP%\plink.loc" & del "%TEMP%\plink.loc"
if not defined PLINK where /R "%ProgramFiles(x86)%\PuTTY" plink > "%TEMP%\plink.loc" 2> nul && set /P PLINK= < "%TEMP%\plink.loc" & del "%TEMP%\plink.loc"
+if not defined PLINK where /R "%ProgramFiles%\PuTTY" plink > "%TEMP%\plink.loc" 2> nul && set /P PLINK= < "%TEMP%\plink.loc" & del "%TEMP%\plink.loc"
if not defined PLINK where /R "%ProgramFiles(x86)%" plink > "%TEMP%\plink.loc" 2> nul && set /P PLINK= < "%TEMP%\plink.loc" & del "%TEMP%\plink.loc"
+if not defined PLINK where /R "%ProgramFiles%" plink > "%TEMP%\plink.loc" 2> nul && set /P PLINK= < "%TEMP%\plink.loc" & del "%TEMP%\plink.loc"
if not defined PLINK echo Cannot locate plink.exe & exit /B 1
echo Found plink.exe at %PLINK%
if not defined PSCP where pscp > "%TEMP%\pscp.loc" 2> nul && set /P pscp= < "%TEMP%\pscp.loc" & del "%TEMP%\pscp.loc"
if not defined PSCP where /R "%ProgramFiles(x86)%\PuTTY" pscp > "%TEMP%\pscp.loc" 2> nul && set /P pscp= < "%TEMP%\pscp.loc" & del "%TEMP%\pscp.loc"
+if not defined PSCP where /R "%ProgramFiles%\PuTTY" pscp > "%TEMP%\pscp.loc" 2> nul && set /P pscp= < "%TEMP%\pscp.loc" & del "%TEMP%\pscp.loc"
if not defined PSCP where /R "%ProgramFiles(x86)%" pscp > "%TEMP%\pscp.loc" 2> nul && set /P pscp= < "%TEMP%\pscp.loc" & del "%TEMP%\pscp.loc"
+if not defined PSCP where /R "%ProgramFiles%" pscp > "%TEMP%\pscp.loc" 2> nul && set /P pscp= < "%TEMP%\pscp.loc" & del "%TEMP%\pscp.loc"
if not defined PSCP echo Cannot locate pscp.exe & exit /B 1
echo Found pscp.exe at %PSCP%
1
0
https://github.com/python/cpython/commit/b0ef5c979b0c4e1df2286ac734160d7560…
commit: b0ef5c979b0c4e1df2286ac734160d7560fcce2c
branch: 3.7
author: Ned Deily <nad(a)python.org>
committer: Ned Deily <nad(a)python.org>
date: 2018-02-27T19:49:18-05:00
summary:
Update NEWS, docs, and patchlevel for 3.7.0b2
files:
A Misc/NEWS.d/3.7.0b2.rst
D Misc/NEWS.d/next/Build/2018-02-21-12-46-00.bpo-32898.M15bZh.rst
D Misc/NEWS.d/next/Core and Builtins/2018-01-26-21-20-21.bpo-32583.Fh3fau.rst
D Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst
D Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-16-28.bpo-32303.VsvhSl.rst
D Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-56-41.bpo-32305.dkU9Qa.rst
D Misc/NEWS.d/next/Core and Builtins/2018-02-02-08-50-46.bpo-31356.MNwUOQ.rst
D Misc/NEWS.d/next/Core and Builtins/2018-02-20-21-53-48.bpo-32889.J6eWy5.rst
D Misc/NEWS.d/next/Documentation/2018-01-25-14-23-12.bpo-31972.w1m_8r.rst
D Misc/NEWS.d/next/Documentation/2018-02-02-07-41-57.bpo-32614.LSqzGw.rst
D Misc/NEWS.d/next/Documentation/2018-02-03-06-11-37.bpo-8722.MPyVyj.rst
D Misc/NEWS.d/next/Documentation/2018-02-10-12-48-38.bpo-11015.-gUf34.rst
D Misc/NEWS.d/next/Documentation/2018-02-10-15-16-04.bpo-32800.FyrqCk.rst
D Misc/NEWS.d/next/Documentation/2018-02-14-11-10-41.bpo-32436.TTJ2jb.rst
D Misc/NEWS.d/next/Documentation/2018-02-23-12-48-03.bpo-17232.tmuTKL.rst
D Misc/NEWS.d/next/Documentation/2018-02-25-16-33-35.bpo-28124._uzkgq.rst
D Misc/NEWS.d/next/IDLE/2018-02-04-17-52-54.bpo-32765.qm0eCu.rst
D Misc/NEWS.d/next/IDLE/2018-02-12-11-05-22.bpo-32826.IxNZrk.rst
D Misc/NEWS.d/next/IDLE/2018-02-12-17-22-48.bpo-32837.-33QPl.rst
D Misc/NEWS.d/next/IDLE/2018-02-19-10-56-41.bpo-32874.6pZ9Gv.rst
D Misc/NEWS.d/next/IDLE/2018-02-22-00-09-27.bpo-32905.VlXj0x.rst
D Misc/NEWS.d/next/IDLE/2018-02-23-07-32-36.bpo-32916.4MsQ5F.rst
D Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst
D Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst
D Misc/NEWS.d/next/Library/2017-12-06-10-10-10.bpo-32221.ideco_.rst
D Misc/NEWS.d/next/Library/2018-01-18-13-09-00.bpo-32585.qpeijr.rst
D Misc/NEWS.d/next/Library/2018-01-18-23-34-17.bpo-31848.M2cldy.rst
D Misc/NEWS.d/next/Library/2018-01-20-23-17-25.bpo-24334.GZuQLv.rst
D Misc/NEWS.d/next/Library/2018-01-21-15-01-50.bpo-31453.cZiZBe.rst
D Misc/NEWS.d/next/Library/2018-01-30-17-46-18.bpo-32727.aHVsRC.rst
D Misc/NEWS.d/next/Library/2018-02-01-01-34-47.bpo-32734.gCV9AD.rst
D Misc/NEWS.d/next/Library/2018-02-01-15-53-35.bpo-32691.VLWVTq.rst
D Misc/NEWS.d/next/Library/2018-02-01-17-54-08.bpo-32741.KUvOPL.rst
D Misc/NEWS.d/next/Library/2018-02-05-13-31-42.bpo-32647.ktmfR_.rst
D Misc/NEWS.d/next/Library/2018-02-05-21-28-28.bpo-32777.C-wIXF.rst
D Misc/NEWS.d/next/Library/2018-02-06-17-58-15.bpo-32622.AE0Jz7.rst
D Misc/NEWS.d/next/Library/2018-02-07-19-12-10.bpo-32775.-T77_c.rst
D Misc/NEWS.d/next/Library/2018-02-08-00-47-07.bpo-32792.NtyDb4.rst
D Misc/NEWS.d/next/Library/2018-02-09-14-44-43.bpo-30157.lEiiAK.rst
D Misc/NEWS.d/next/Library/2018-02-09-21-41-56.bpo-31787.owSZ2t.rst
D Misc/NEWS.d/next/Library/2018-02-10-13-51-56.bpo-32394.dFM9SI.rst
D Misc/NEWS.d/next/Library/2018-02-11-15-54-41.bpo-32819.ZTRX2Q.rst
D Misc/NEWS.d/next/Library/2018-02-14-00-21-24.bpo-32841.bvHDOc.rst
D Misc/NEWS.d/next/Library/2018-02-15-08-18-52.bpo-31333.4fF-gM.rst
D Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst
D Misc/NEWS.d/next/Library/2018-02-17-19-20-19.bpo-21060.S1Z-x6.rst
D Misc/NEWS.d/next/Library/2018-02-18-13-04-59.bpo-25988.ACidKC.rst
D Misc/NEWS.d/next/Library/2018-02-19-14-27-51.bpo-32556.CsRsgr.rst
D Misc/NEWS.d/next/Library/2018-02-19-17-46-31.bpo-32859.kAT-Xp.rst
D Misc/NEWS.d/next/Library/2018-02-23-19-12-04.bpo-32922.u-xe0B.rst
D Misc/NEWS.d/next/Library/2018-02-24-21-40-42.bpo-30622.dQjxSe.rst
D Misc/NEWS.d/next/Library/2018-02-25-13-06-21.bpo-32947.mqStVW.rst
D Misc/NEWS.d/next/Library/2018-02-25-13-47-48.bpo-32929.X2gTDH.rst
D Misc/NEWS.d/next/Library/2018-02-25-18-22-01.bpo-32951.gHrCXq.rst
D Misc/NEWS.d/next/Library/2018-02-26-13-16-36.bpo-32713.55yegW.rst
D Misc/NEWS.d/next/Library/2018-02-26-20-04-40.bpo-32960.48r0Ml.rst
D Misc/NEWS.d/next/Security/2017-08-06-14-43-45.bpo-28414.mzZ6vD.rst
D Misc/NEWS.d/next/Tests/2017-10-18-18-07-45.bpo-31809.KlQrkE.rst
D Misc/NEWS.d/next/Tools-Demos/2017-12-07-20-51-20.bpo-32222.hPBcGT.rst
D Misc/NEWS.d/next/Windows/2018-02-07-17-50-48.bpo-29248.Xzwj-6.rst
D Misc/NEWS.d/next/Windows/2018-02-10-15-38-19.bpo-32370.kcKuct.rst
D Misc/NEWS.d/next/Windows/2018-02-19-08-54-06.bpo-32457.vVP0Iz.rst
D Misc/NEWS.d/next/Windows/2018-02-19-10-00-57.bpo-32409.nocuDg.rst
D Misc/NEWS.d/next/Windows/2018-02-19-13-54-42.bpo-31966._Q3HPb.rst
D Misc/NEWS.d/next/Windows/2018-02-23-00-47-13.bpo-32901.mGKz5_.rst
D Misc/NEWS.d/next/macOS/2018-02-27-17-33-15.bpo-32901.hQu0w3.rst
M Include/patchlevel.h
M Lib/pydoc_data/topics.py
M README.rst
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index 028740523255..49b493a418e0 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 7
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
-#define PY_RELEASE_SERIAL 1
+#define PY_RELEASE_SERIAL 2
/* Version as a string */
-#define PY_VERSION "3.7.0b1+"
+#define PY_VERSION "3.7.0b2"
/*--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 a979931e266c..ede9385886a4 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Tue Jan 30 18:36:07 2018
+# Autogenerated by Sphinx on Tue Feb 27 19:39:14 2018
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -483,15 +483,19 @@
'\n'
'object.__getattr__(self, name)\n'
'\n'
- ' Called when an attribute lookup has not found the '
- 'attribute in the\n'
- ' usual places (i.e. it is not an instance attribute '
- 'nor is it found\n'
- ' in the class tree for "self"). "name" is the '
- 'attribute name. This\n'
- ' method should return the (computed) attribute value '
- 'or raise an\n'
- ' "AttributeError" exception.\n'
+ ' Called when the default attribute access fails with '
+ 'an\n'
+ ' "AttributeError" (either "__getattribute__()" raises '
+ 'an\n'
+ ' "AttributeError" because *name* is not an instance '
+ 'attribute or an\n'
+ ' attribute in the class tree for "self"; or '
+ '"__get__()" of a *name*\n'
+ ' property raises "AttributeError"). This method '
+ 'should either\n'
+ ' return the (computed) attribute value or raise an '
+ '"AttributeError"\n'
+ ' exception.\n'
'\n'
' Note that if the attribute is found through the '
'normal mechanism,\n'
@@ -4718,9 +4722,9 @@
'conversion] [":" format_spec] "}"\n'
' field_name ::= arg_name ("." attribute_name | '
'"[" element_index "]")*\n'
- ' arg_name ::= [identifier | integer]\n'
+ ' arg_name ::= [identifier | digit+]\n'
' attribute_name ::= identifier\n'
- ' element_index ::= integer | index_string\n'
+ ' element_index ::= digit+ | index_string\n'
' index_string ::= <any source character except '
'"]"> +\n'
' conversion ::= "r" | "s" | "a"\n'
@@ -4879,9 +4883,9 @@
' fill ::= <any character>\n'
' align ::= "<" | ">" | "=" | "^"\n'
' sign ::= "+" | "-" | " "\n'
- ' width ::= integer\n'
+ ' width ::= digit+\n'
' grouping_option ::= "_" | ","\n'
- ' precision ::= integer\n'
+ ' precision ::= digit+\n'
' type ::= "b" | "c" | "d" | "e" | "E" | "f" | '
'"F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"\n'
'\n'
@@ -8057,15 +8061,17 @@
'\n'
'object.__getattr__(self, name)\n'
'\n'
- ' Called when an attribute lookup has not found the '
- 'attribute in the\n'
- ' usual places (i.e. it is not an instance attribute nor is '
- 'it found\n'
- ' in the class tree for "self"). "name" is the attribute '
- 'name. This\n'
- ' method should return the (computed) attribute value or '
- 'raise an\n'
- ' "AttributeError" exception.\n'
+ ' Called when the default attribute access fails with an\n'
+ ' "AttributeError" (either "__getattribute__()" raises an\n'
+ ' "AttributeError" because *name* is not an instance '
+ 'attribute or an\n'
+ ' attribute in the class tree for "self"; or "__get__()" of '
+ 'a *name*\n'
+ ' property raises "AttributeError"). This method should '
+ 'either\n'
+ ' return the (computed) attribute value or raise an '
+ '"AttributeError"\n'
+ ' exception.\n'
'\n'
' Note that if the attribute is found through the normal '
'mechanism,\n'
@@ -11599,7 +11605,9 @@
'\n'
' Frame objects\n'
' Frame objects represent execution frames. They may occur in\n'
- ' traceback objects (see below).\n'
+ ' traceback objects (see below), and are also passed to '
+ 'registered\n'
+ ' trace functions.\n'
'\n'
' Special read-only attributes: "f_back" is to the previous '
'stack\n'
@@ -11654,44 +11662,59 @@
' New in version 3.4.\n'
'\n'
' Traceback objects\n'
- ' Traceback objects represent a stack trace of an exception. '
- 'A\n'
- ' traceback object is created when an exception occurs. When '
+ ' Traceback objects represent a stack trace of an '
+ 'exception. A\n'
+ ' traceback object is implicitly created when an exception\n'
+ ' occurs, and may also be explicitly created by calling\n'
+ ' "types.TracebackType".\n'
+ '\n'
+ ' For implicitly created tracebacks, when the search for an\n'
+ ' exception handler unwinds the execution stack, at each\n'
+ ' unwound level a traceback object is inserted in front of '
'the\n'
- ' search for an exception handler unwinds the execution stack, '
- 'at\n'
- ' each unwound level a traceback object is inserted in front '
- 'of\n'
- ' the current traceback. When an exception handler is '
- 'entered,\n'
- ' the stack trace is made available to the program. (See '
- 'section\n'
- ' The try statement.) It is accessible as the third item of '
+ ' current traceback. When an exception handler is entered, '
'the\n'
- ' tuple returned by "sys.exc_info()". When the program contains '
- 'no\n'
- ' suitable handler, the stack trace is written (nicely '
- 'formatted)\n'
- ' to the standard error stream; if the interpreter is '
- 'interactive,\n'
- ' it is also made available to the user as '
- '"sys.last_traceback".\n'
- '\n'
- ' Special read-only attributes: "tb_next" is the next level in '
+ ' stack trace is made available to the program. (See '
+ 'section\n'
+ ' The try statement.) It is accessible as the third item of '
'the\n'
- ' stack trace (towards the frame where the exception occurred), '
- 'or\n'
- ' "None" if there is no next level; "tb_frame" points to the\n'
- ' execution frame of the current level; "tb_lineno" gives the '
- 'line\n'
- ' number where the exception occurred; "tb_lasti" indicates '
+ ' tuple returned by "sys.exc_info()", and as the\n'
+ ' "__traceback__" attribute of the caught exception.\n'
+ '\n'
+ ' When the program contains no suitable handler, the stack\n'
+ ' trace is written (nicely formatted) to the standard error\n'
+ ' stream; if the interpreter is interactive, it is also '
+ 'made\n'
+ ' available to the user as "sys.last_traceback".\n'
+ '\n'
+ ' For explicitly created tracebacks, it is up to the creator '
+ 'of\n'
+ ' the traceback to determine how the "tb_next" attributes\n'
+ ' should be linked to form a full stack trace.\n'
+ '\n'
+ ' Special read-only attributes: "tb_frame" points to the\n'
+ ' execution frame of the current level; "tb_lineno" gives '
'the\n'
- ' precise instruction. The line number and last instruction '
+ ' line number where the exception occurred; "tb_lasti"\n'
+ ' indicates the precise instruction. The line number and '
+ 'last\n'
+ ' instruction in the traceback may differ from the line '
+ 'number\n'
+ ' of its frame object if the exception occurred in a "try"\n'
+ ' statement with no matching except clause or with a '
+ 'finally\n'
+ ' clause.\n'
+ '\n'
+ ' Special writable attribute: "tb_next" is the next level '
'in\n'
- ' the traceback may differ from the line number of its frame\n'
- ' object if the exception occurred in a "try" statement with '
- 'no\n'
- ' matching except clause or with a finally clause.\n'
+ ' the stack trace (towards the frame where the exception\n'
+ ' occurred), or "None" if there is no next level.\n'
+ '\n'
+ ' Changed in version 3.7: Traceback objects can now be '
+ 'explicitly\n'
+ ' instantiated from Python code, and the "tb_next" attribute '
+ 'of\n'
+ ' existing instances can be updated.\n'
'\n'
' Slice objects\n'
' Slice objects are used to represent slices for '
diff --git a/Misc/NEWS.d/3.7.0b2.rst b/Misc/NEWS.d/3.7.0b2.rst
new file mode 100644
index 000000000000..fa659d5dccbc
--- /dev/null
+++ b/Misc/NEWS.d/3.7.0b2.rst
@@ -0,0 +1,655 @@
+.. bpo: 28414
+.. date: 2017-08-06-14-43-45
+.. nonce: mzZ6vD
+.. release date: 2018-02-27
+.. section: Security
+
+The ssl module now allows users to perform their own IDN en/decoding when
+using SNI.
+
+..
+
+.. bpo: 32889
+.. date: 2018-02-20-21-53-48
+.. nonce: J6eWy5
+.. section: Core and Builtins
+
+Update Valgrind suppression list to account for the rename of
+``Py_ADDRESS_IN_RANG`` to ``address_in_range``.
+
+..
+
+.. bpo: 31356
+.. date: 2018-02-02-08-50-46
+.. nonce: MNwUOQ
+.. section: Core and Builtins
+
+Remove the new API added in bpo-31356 (gc.ensure_disabled() context
+manager).
+
+..
+
+.. bpo: 32305
+.. date: 2018-02-01-10-56-41
+.. nonce: dkU9Qa
+.. section: Core and Builtins
+
+For namespace packages, ensure that both ``__file__`` and
+``__spec__.origin`` are set to None.
+
+..
+
+.. bpo: 32303
+.. date: 2018-02-01-10-16-28
+.. nonce: VsvhSl
+.. section: Core and Builtins
+
+Make sure ``__spec__.loader`` matches ``__loader__`` for namespace packages.
+
+..
+
+.. bpo: 32711
+.. date: 2018-01-29-14-36-37
+.. nonce: 8hQFJP
+.. section: Core and Builtins
+
+Fix the warning messages for Python/ast_unparse.c. Patch by Stéphane Wirtel
+
+..
+
+.. bpo: 32583
+.. date: 2018-01-26-21-20-21
+.. nonce: Fh3fau
+.. section: Core and Builtins
+
+Fix possible crashing in builtin Unicode decoders caused by write out-of-
+bound errors when using customized decode error handlers.
+
+..
+
+.. bpo: 32960
+.. date: 2018-02-26-20-04-40
+.. nonce: 48r0Ml
+.. section: Library
+
+For dataclasses, disallow inheriting frozen from non-frozen classes, and
+also disallow inheriting non-frozen from frozen classes. This restriction
+will be relaxed at a future date.
+
+..
+
+.. bpo: 32713
+.. date: 2018-02-26-13-16-36
+.. nonce: 55yegW
+.. section: Library
+
+Fixed tarfile.itn handling of out-of-bounds float values. Patch by Joffrey
+Fuhrer.
+
+..
+
+.. bpo: 32951
+.. date: 2018-02-25-18-22-01
+.. nonce: gHrCXq
+.. section: Library
+
+Direct instantiation of SSLSocket and SSLObject objects is now prohibited.
+The constructors were never documented, tested, or designed as public
+constructors. Users were suppose to use ssl.wrap_socket() or SSLContext.
+
+..
+
+.. bpo: 32929
+.. date: 2018-02-25-13-47-48
+.. nonce: X2gTDH
+.. section: Library
+
+Remove the tri-state parameter "hash", and add the boolean "unsafe_hash". If
+unsafe_hash is True, add a __hash__ function, but if a __hash__ exists,
+raise TypeError. If unsafe_hash is False, add a __hash__ based on the
+values of eq= and frozen=. The unsafe_hash=False behavior is the same as
+the old hash=None behavior. unsafe_hash=False is the default, just as
+hash=None used to be.
+
+..
+
+.. bpo: 32947
+.. date: 2018-02-25-13-06-21
+.. nonce: mqStVW
+.. section: Library
+
+Add OP_ENABLE_MIDDLEBOX_COMPAT and test workaround for TLSv1.3 for future
+compatibility with OpenSSL 1.1.1.
+
+..
+
+.. bpo: 30622
+.. date: 2018-02-24-21-40-42
+.. nonce: dQjxSe
+.. section: Library
+
+The ssl module now detects missing NPN support in LibreSSL.
+
+..
+
+.. bpo: 32922
+.. date: 2018-02-23-19-12-04
+.. nonce: u-xe0B
+.. section: Library
+
+dbm.open() now encodes filename with the filesystem encoding rather than
+default encoding.
+
+..
+
+.. bpo: 32859
+.. date: 2018-02-19-17-46-31
+.. nonce: kAT-Xp
+.. section: Library
+
+In ``os.dup2``, don't check every call whether the ``dup3`` syscall exists
+or not.
+
+..
+
+.. bpo: 32556
+.. date: 2018-02-19-14-27-51
+.. nonce: CsRsgr
+.. section: Library
+
+nt._getfinalpathname, nt._getvolumepathname and nt._getdiskusage now
+correctly convert from bytes.
+
+..
+
+.. bpo: 25988
+.. date: 2018-02-18-13-04-59
+.. nonce: ACidKC
+.. section: Library
+
+Emit a :exc:`DeprecationWarning` when using or importing an ABC directly
+from :mod:`collections` rather than from :mod:`collections.abc`.
+
+..
+
+.. bpo: 21060
+.. date: 2018-02-17-19-20-19
+.. nonce: S1Z-x6
+.. section: Library
+
+Rewrite confusing message from setup.py upload from "No dist file created in
+earlier command" to the more helpful "Must create and upload files in one
+command".
+
+..
+
+.. bpo: 32852
+.. date: 2018-02-15-12-04-29
+.. nonce: HDqIxM
+.. section: Library
+
+Make sure sys.argv remains as a list when running trace.
+
+..
+
+.. bpo: 31333
+.. date: 2018-02-15-08-18-52
+.. nonce: 4fF-gM
+.. section: Library
+
+``_abc`` module is added. It is a speedup module with C implementations for
+various functions and methods in ``abc``. Creating an ABC subclass and
+calling ``isinstance`` or ``issubclass`` with an ABC subclass are up to 1.5x
+faster. In addition, this makes Python start-up up to 10% faster.
+
+Note that the new implementation hides internal registry and caches,
+previously accessible via private attributes ``_abc_registry``,
+``_abc_cache``, and ``_abc_negative_cache``. There are three debugging
+helper methods that can be used instead ``_dump_registry``,
+``_abc_registry_clear``, and ``_abc_caches_clear``.
+
+..
+
+.. bpo: 32841
+.. date: 2018-02-14-00-21-24
+.. nonce: bvHDOc
+.. section: Library
+
+Fixed `asyncio.Condition` issue which silently ignored cancellation after
+notifying and cancelling a conditional lock. Patch by Bar Harel.
+
+..
+
+.. bpo: 32819
+.. date: 2018-02-11-15-54-41
+.. nonce: ZTRX2Q
+.. section: Library
+
+ssl.match_hostname() has been simplified and no longer depends on re and
+ipaddress module for wildcard and IP addresses. Error reporting for invalid
+wildcards has been improved.
+
+..
+
+.. bpo: 32394
+.. date: 2018-02-10-13-51-56
+.. nonce: dFM9SI
+.. section: Library
+
+socket: Remove TCP_FASTOPEN,TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL flags on
+older version Windows during run-time.
+
+..
+
+.. bpo: 31787
+.. date: 2018-02-09-21-41-56
+.. nonce: owSZ2t
+.. section: Library
+
+Fixed refleaks of ``__init__()`` methods in various modules. (Contributed by
+Oren Milman)
+
+..
+
+.. bpo: 30157
+.. date: 2018-02-09-14-44-43
+.. nonce: lEiiAK
+.. section: Library
+
+Fixed guessing quote and delimiter in csv.Sniffer.sniff() when only the last
+field is quoted. Patch by Jake Davis.
+
+..
+
+.. bpo: 32792
+.. date: 2018-02-08-00-47-07
+.. nonce: NtyDb4
+.. section: Library
+
+collections.ChainMap() preserves the order of the underlying mappings.
+
+..
+
+.. bpo: 32775
+.. date: 2018-02-07-19-12-10
+.. nonce: -T77_c
+.. section: Library
+
+:func:`fnmatch.translate()` no longer produces patterns which contain set
+operations. Sets starting with '[' or containing '--', '&&', '~~' or '||'
+will be interpreted differently in regular expressions in future versions.
+Currently they emit warnings. fnmatch.translate() now avoids producing
+patterns containing such sets by accident.
+
+..
+
+.. bpo: 32622
+.. date: 2018-02-06-17-58-15
+.. nonce: AE0Jz7
+.. section: Library
+
+Implement native fast sendfile for Windows proactor event loop.
+
+..
+
+.. bpo: 32777
+.. date: 2018-02-05-21-28-28
+.. nonce: C-wIXF
+.. section: Library
+
+Fix a rare but potential pre-exec child process deadlock in subprocess on
+POSIX systems when marking file descriptors inheritable on exec in the child
+process. This bug appears to have been introduced in 3.4.
+
+..
+
+.. bpo: 32647
+.. date: 2018-02-05-13-31-42
+.. nonce: ktmfR_
+.. section: Library
+
+The ctypes module used to depend on indirect linking for dlopen. The shared
+extension is now explicitly linked against libdl on platforms with dl.
+
+..
+
+.. bpo: 32741
+.. date: 2018-02-01-17-54-08
+.. nonce: KUvOPL
+.. section: Library
+
+Implement ``asyncio.TimerHandle.when()`` method.
+
+..
+
+.. bpo: 32691
+.. date: 2018-02-01-15-53-35
+.. nonce: VLWVTq
+.. section: Library
+
+Use mod_spec.parent when running modules with pdb
+
+..
+
+.. bpo: 32734
+.. date: 2018-02-01-01-34-47
+.. nonce: gCV9AD
+.. section: Library
+
+Fixed ``asyncio.Lock()`` safety issue which allowed acquiring and locking
+the same lock multiple times, without it being free. Patch by Bar Harel.
+
+..
+
+.. bpo: 32727
+.. date: 2018-01-30-17-46-18
+.. nonce: aHVsRC
+.. section: Library
+
+Do not include name field in SMTP envelope from address. Patch by Stéphane
+Wirtel
+
+..
+
+.. bpo: 31453
+.. date: 2018-01-21-15-01-50
+.. nonce: cZiZBe
+.. section: Library
+
+Add TLSVersion constants and SSLContext.maximum_version / minimum_version
+attributes. The new API wraps OpenSSL 1.1
+https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html
+feature.
+
+..
+
+.. bpo: 24334
+.. date: 2018-01-20-23-17-25
+.. nonce: GZuQLv
+.. section: Library
+
+Internal implementation details of ssl module were cleaned up. The SSLSocket
+has one less layer of indirection. Owner and session information are now
+handled by the SSLSocket and SSLObject constructor. Channel binding
+implementation has been simplified.
+
+..
+
+.. bpo: 31848
+.. date: 2018-01-18-23-34-17
+.. nonce: M2cldy
+.. section: Library
+
+Fix the error handling in Aifc_read.initfp() when the SSND chunk is not
+found. Patch by Zackery Spytz.
+
+..
+
+.. bpo: 32585
+.. date: 2018-01-18-13-09-00
+.. nonce: qpeijr
+.. section: Library
+
+Add Ttk spinbox widget to tkinter.ttk. Patch by Alan D Moore.
+
+..
+
+.. bpo: 32221
+.. date: 2017-12-06-10-10-10
+.. nonce: ideco_
+.. section: Library
+
+Various functions returning tuple containig IPv6 addresses now omit
+``%scope`` part since the same information is already encoded in *scopeid*
+tuple item. Especially this speeds up :func:`socket.recvfrom` when it
+receives multicast packet since useless resolving of network interface name
+is omitted.
+
+..
+
+.. bpo: 30693
+.. date: 2017-11-27-15-09-49
+.. nonce: yC4mJ8
+.. section: Library
+
+The TarFile class now recurses directories in a reproducible way.
+
+..
+
+.. bpo: 30693
+.. date: 2017-11-27-15-09-49
+.. nonce: yC4mJ7
+.. section: Library
+
+The ZipFile class now recurses directories in a reproducible way.
+
+..
+
+.. bpo: 28124
+.. date: 2018-02-25-16-33-35
+.. nonce: _uzkgq
+.. section: Documentation
+
+The ssl module function ssl.wrap_socket() has been de-emphasized and
+deprecated in favor of the more secure and efficient
+SSLContext.wrap_socket() method.
+
+..
+
+.. bpo: 17232
+.. date: 2018-02-23-12-48-03
+.. nonce: tmuTKL
+.. section: Documentation
+
+Clarify docs for -O and -OO. Patch by Terry Reedy.
+
+..
+
+.. bpo: 32436
+.. date: 2018-02-14-11-10-41
+.. nonce: TTJ2jb
+.. section: Documentation
+
+Add documentation for the contextvars module (PEP 567).
+
+..
+
+.. bpo: 32800
+.. date: 2018-02-10-15-16-04
+.. nonce: FyrqCk
+.. section: Documentation
+
+Update link to w3c doc for xml default namespaces.
+
+..
+
+.. bpo: 11015
+.. date: 2018-02-10-12-48-38
+.. nonce: -gUf34
+.. section: Documentation
+
+Update :mod:`test.support` documentation.
+
+..
+
+.. bpo: 8722
+.. date: 2018-02-03-06-11-37
+.. nonce: MPyVyj
+.. section: Documentation
+
+Document :meth:`__getattr__` behavior when property :meth:`get` method
+raises :exc:`AttributeError`.
+
+..
+
+.. bpo: 32614
+.. date: 2018-02-02-07-41-57
+.. nonce: LSqzGw
+.. section: Documentation
+
+Modify RE examples in documentation to use raw strings to prevent
+:exc:`DeprecationWarning` and add text to REGEX HOWTO to highlight the
+deprecation.
+
+..
+
+.. bpo: 31972
+.. date: 2018-01-25-14-23-12
+.. nonce: w1m_8r
+.. section: Documentation
+
+Improve docstrings for `pathlib.PurePath` subclasses.
+
+..
+
+.. bpo: 31809
+.. date: 2017-10-18-18-07-45
+.. nonce: KlQrkE
+.. section: Tests
+
+Add tests to verify connection with secp ECDH curves.
+
+..
+
+.. bpo: 32898
+.. date: 2018-02-21-12-46-00
+.. nonce: M15bZh
+.. section: Build
+
+Fix the python debug build when using COUNT_ALLOCS.
+
+..
+
+.. bpo: 32901
+.. date: 2018-02-23-00-47-13
+.. nonce: mGKz5_
+.. section: Windows
+
+Update Tcl and Tk versions to 8.6.8
+
+..
+
+.. bpo: 31966
+.. date: 2018-02-19-13-54-42
+.. nonce: _Q3HPb
+.. section: Windows
+
+Fixed WindowsConsoleIO.write() for writing empty data.
+
+..
+
+.. bpo: 32409
+.. date: 2018-02-19-10-00-57
+.. nonce: nocuDg
+.. section: Windows
+
+Ensures activate.bat can handle Unicode contents.
+
+..
+
+.. bpo: 32457
+.. date: 2018-02-19-08-54-06
+.. nonce: vVP0Iz
+.. section: Windows
+
+Improves handling of denormalized executable path when launching Python.
+
+..
+
+.. bpo: 32370
+.. date: 2018-02-10-15-38-19
+.. nonce: kcKuct
+.. section: Windows
+
+Use the correct encoding for ipconfig output in the uuid module. Patch by
+Segev Finer.
+
+..
+
+.. bpo: 29248
+.. date: 2018-02-07-17-50-48
+.. nonce: Xzwj-6
+.. section: Windows
+
+Fix :func:`os.readlink` on Windows, which was mistakenly treating the
+``PrintNameOffset`` field of the reparse data buffer as a number of
+characters instead of bytes. Patch by Craig Holmquist and SSE4.
+
+..
+
+.. bpo: 32901
+.. date: 2018-02-27-17-33-15
+.. nonce: hQu0w3
+.. section: macOS
+
+Update macOS 10.9+ installer to Tcl/Tk 8.6.8.
+
+..
+
+.. bpo: 32916
+.. date: 2018-02-23-07-32-36
+.. nonce: 4MsQ5F
+.. section: IDLE
+
+Change ``str`` to ``code`` in pyparse.
+
+..
+
+.. bpo: 32905
+.. date: 2018-02-22-00-09-27
+.. nonce: VlXj0x
+.. section: IDLE
+
+Remove unused code in pyparse module.
+
+..
+
+.. bpo: 32874
+.. date: 2018-02-19-10-56-41
+.. nonce: 6pZ9Gv
+.. section: IDLE
+
+Add tests for pyparse.
+
+..
+
+.. bpo: 32837
+.. date: 2018-02-12-17-22-48
+.. nonce: -33QPl
+.. section: IDLE
+
+Using the system and place-dependent default encoding for open() is a bad
+idea for IDLE's system and location-independent files.
+
+..
+
+.. bpo: 32826
+.. date: 2018-02-12-11-05-22
+.. nonce: IxNZrk
+.. section: IDLE
+
+Add "encoding=utf-8" to open() in IDLE's test_help_about. GUI test
+test_file_buttons() only looks at initial ascii-only lines, but failed on
+systems where open() defaults to 'ascii' because readline() internally reads
+and decodes far enough ahead to encounter a non-ascii character in
+CREDITS.txt.
+
+..
+
+.. bpo: 32765
+.. date: 2018-02-04-17-52-54
+.. nonce: qm0eCu
+.. section: IDLE
+
+Update configdialog General tab docstring to add new widgets to the widget
+list.
+
+..
+
+.. bpo: 32222
+.. date: 2017-12-07-20-51-20
+.. nonce: hPBcGT
+.. section: Tools/Demos
+
+Fix pygettext not extracting docstrings for functions with type annotated
+arguments. Patch by Toby Harradine.
diff --git a/Misc/NEWS.d/next/Build/2018-02-21-12-46-00.bpo-32898.M15bZh.rst b/Misc/NEWS.d/next/Build/2018-02-21-12-46-00.bpo-32898.M15bZh.rst
deleted file mode 100644
index 4c75466bfd0f..000000000000
--- a/Misc/NEWS.d/next/Build/2018-02-21-12-46-00.bpo-32898.M15bZh.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix the python debug build when using COUNT_ALLOCS.
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
deleted file mode 100644
index 45f1d043f9d6..000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2018-01-26-21-20-21.bpo-32583.Fh3fau.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix possible crashing in builtin Unicode decoders caused by write
-out-of-bound errors when using customized decode error handlers.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst
deleted file mode 100644
index 4d55b894ce10..000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2018-01-29-14-36-37.bpo-32711.8hQFJP.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix the warning messages for Python/ast_unparse.c. Patch by Stéphane Wirtel
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-16-28.bpo-32303.VsvhSl.rst b/Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-16-28.bpo-32303.VsvhSl.rst
deleted file mode 100644
index b84448fb25a1..000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-16-28.bpo-32303.VsvhSl.rst
+++ /dev/null
@@ -1 +0,0 @@
-Make sure ``__spec__.loader`` matches ``__loader__`` for namespace packages.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-56-41.bpo-32305.dkU9Qa.rst b/Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-56-41.bpo-32305.dkU9Qa.rst
deleted file mode 100644
index 204d74a49754..000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2018-02-01-10-56-41.bpo-32305.dkU9Qa.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-For namespace packages, ensure that both ``__file__`` and
-``__spec__.origin`` are set to None.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-02-02-08-50-46.bpo-31356.MNwUOQ.rst b/Misc/NEWS.d/next/Core and Builtins/2018-02-02-08-50-46.bpo-31356.MNwUOQ.rst
deleted file mode 100644
index 5022a1370609..000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2018-02-02-08-50-46.bpo-31356.MNwUOQ.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Remove the new API added in bpo-31356 (gc.ensure_disabled() context
-manager).
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-02-20-21-53-48.bpo-32889.J6eWy5.rst b/Misc/NEWS.d/next/Core and Builtins/2018-02-20-21-53-48.bpo-32889.J6eWy5.rst
deleted file mode 100644
index 99128ccc1826..000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2018-02-20-21-53-48.bpo-32889.J6eWy5.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Update Valgrind suppression list to account for the rename of
-``Py_ADDRESS_IN_RANG`` to ``address_in_range``.
diff --git a/Misc/NEWS.d/next/Documentation/2018-01-25-14-23-12.bpo-31972.w1m_8r.rst b/Misc/NEWS.d/next/Documentation/2018-01-25-14-23-12.bpo-31972.w1m_8r.rst
deleted file mode 100644
index e0361df578b3..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-01-25-14-23-12.bpo-31972.w1m_8r.rst
+++ /dev/null
@@ -1 +0,0 @@
-Improve docstrings for `pathlib.PurePath` subclasses.
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-02-07-41-57.bpo-32614.LSqzGw.rst b/Misc/NEWS.d/next/Documentation/2018-02-02-07-41-57.bpo-32614.LSqzGw.rst
deleted file mode 100644
index 9e9f3e3a74df..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-02-07-41-57.bpo-32614.LSqzGw.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Modify RE examples in documentation to use raw strings to prevent
-:exc:`DeprecationWarning` and add text to REGEX HOWTO to highlight the
-deprecation.
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-03-06-11-37.bpo-8722.MPyVyj.rst b/Misc/NEWS.d/next/Documentation/2018-02-03-06-11-37.bpo-8722.MPyVyj.rst
deleted file mode 100644
index 36e6ff7db3ce..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-03-06-11-37.bpo-8722.MPyVyj.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Document :meth:`__getattr__` behavior when property :meth:`get` method
-raises :exc:`AttributeError`.
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-10-12-48-38.bpo-11015.-gUf34.rst b/Misc/NEWS.d/next/Documentation/2018-02-10-12-48-38.bpo-11015.-gUf34.rst
deleted file mode 100644
index 73612dab69e5..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-10-12-48-38.bpo-11015.-gUf34.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update :mod:`test.support` documentation.
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-10-15-16-04.bpo-32800.FyrqCk.rst b/Misc/NEWS.d/next/Documentation/2018-02-10-15-16-04.bpo-32800.FyrqCk.rst
deleted file mode 100644
index eac1107bba76..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-10-15-16-04.bpo-32800.FyrqCk.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update link to w3c doc for xml default namespaces.
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-14-11-10-41.bpo-32436.TTJ2jb.rst b/Misc/NEWS.d/next/Documentation/2018-02-14-11-10-41.bpo-32436.TTJ2jb.rst
deleted file mode 100644
index b764b45cd968..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-14-11-10-41.bpo-32436.TTJ2jb.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add documentation for the contextvars module (PEP 567).
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-23-12-48-03.bpo-17232.tmuTKL.rst b/Misc/NEWS.d/next/Documentation/2018-02-23-12-48-03.bpo-17232.tmuTKL.rst
deleted file mode 100644
index 5c14e91b3919..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-23-12-48-03.bpo-17232.tmuTKL.rst
+++ /dev/null
@@ -1 +0,0 @@
-Clarify docs for -O and -OO. Patch by Terry Reedy.
diff --git a/Misc/NEWS.d/next/Documentation/2018-02-25-16-33-35.bpo-28124._uzkgq.rst b/Misc/NEWS.d/next/Documentation/2018-02-25-16-33-35.bpo-28124._uzkgq.rst
deleted file mode 100644
index 4f4ca001981d..000000000000
--- a/Misc/NEWS.d/next/Documentation/2018-02-25-16-33-35.bpo-28124._uzkgq.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-The ssl module function ssl.wrap_socket() has been de-emphasized
-and deprecated in favor of the more secure and efficient
-SSLContext.wrap_socket() method.
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-04-17-52-54.bpo-32765.qm0eCu.rst b/Misc/NEWS.d/next/IDLE/2018-02-04-17-52-54.bpo-32765.qm0eCu.rst
deleted file mode 100644
index 1bd6b094ca5d..000000000000
--- a/Misc/NEWS.d/next/IDLE/2018-02-04-17-52-54.bpo-32765.qm0eCu.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update configdialog General tab docstring to add new widgets to the widget list.
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-12-11-05-22.bpo-32826.IxNZrk.rst b/Misc/NEWS.d/next/IDLE/2018-02-12-11-05-22.bpo-32826.IxNZrk.rst
deleted file mode 100644
index 4310ed2e721a..000000000000
--- a/Misc/NEWS.d/next/IDLE/2018-02-12-11-05-22.bpo-32826.IxNZrk.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Add "encoding=utf-8" to open() in IDLE's test_help_about.
-GUI test test_file_buttons() only looks at initial ascii-only lines,
-but failed on systems where open() defaults to 'ascii' because
-readline() internally reads and decodes far enough ahead to encounter
-a non-ascii character in CREDITS.txt.
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-12-17-22-48.bpo-32837.-33QPl.rst b/Misc/NEWS.d/next/IDLE/2018-02-12-17-22-48.bpo-32837.-33QPl.rst
deleted file mode 100644
index 258536a1cd0c..000000000000
--- a/Misc/NEWS.d/next/IDLE/2018-02-12-17-22-48.bpo-32837.-33QPl.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Using the system and place-dependent default encoding for open() is a bad
-idea for IDLE's system and location-independent files.
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-19-10-56-41.bpo-32874.6pZ9Gv.rst b/Misc/NEWS.d/next/IDLE/2018-02-19-10-56-41.bpo-32874.6pZ9Gv.rst
deleted file mode 100644
index 79655315fff4..000000000000
--- a/Misc/NEWS.d/next/IDLE/2018-02-19-10-56-41.bpo-32874.6pZ9Gv.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add tests for pyparse.
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-22-00-09-27.bpo-32905.VlXj0x.rst b/Misc/NEWS.d/next/IDLE/2018-02-22-00-09-27.bpo-32905.VlXj0x.rst
deleted file mode 100644
index c9bedd98f2e0..000000000000
--- a/Misc/NEWS.d/next/IDLE/2018-02-22-00-09-27.bpo-32905.VlXj0x.rst
+++ /dev/null
@@ -1 +0,0 @@
-Remove unused code in pyparse module.
diff --git a/Misc/NEWS.d/next/IDLE/2018-02-23-07-32-36.bpo-32916.4MsQ5F.rst b/Misc/NEWS.d/next/IDLE/2018-02-23-07-32-36.bpo-32916.4MsQ5F.rst
deleted file mode 100644
index 0832944f1621..000000000000
--- a/Misc/NEWS.d/next/IDLE/2018-02-23-07-32-36.bpo-32916.4MsQ5F.rst
+++ /dev/null
@@ -1 +0,0 @@
-Change ``str`` to ``code`` in pyparse.
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
deleted file mode 100644
index 9c895c53de12..000000000000
--- a/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ7.rst
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index a622e7ed6e5d..000000000000
--- a/Misc/NEWS.d/next/Library/2017-11-27-15-09-49.bpo-30693.yC4mJ8.rst
+++ /dev/null
@@ -1 +0,0 @@
-The TarFile class now recurses directories in a reproducible way.
diff --git a/Misc/NEWS.d/next/Library/2017-12-06-10-10-10.bpo-32221.ideco_.rst b/Misc/NEWS.d/next/Library/2017-12-06-10-10-10.bpo-32221.ideco_.rst
deleted file mode 100644
index a88dcf48e02b..000000000000
--- a/Misc/NEWS.d/next/Library/2017-12-06-10-10-10.bpo-32221.ideco_.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Various functions returning tuple containig IPv6 addresses now omit ``%scope``
-part since the same information is already encoded in *scopeid* tuple item.
-Especially this speeds up :func:`socket.recvfrom` when it receives multicast
-packet since useless resolving of network interface name is omitted.
diff --git a/Misc/NEWS.d/next/Library/2018-01-18-13-09-00.bpo-32585.qpeijr.rst b/Misc/NEWS.d/next/Library/2018-01-18-13-09-00.bpo-32585.qpeijr.rst
deleted file mode 100644
index c504e8b1e538..000000000000
--- a/Misc/NEWS.d/next/Library/2018-01-18-13-09-00.bpo-32585.qpeijr.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add Ttk spinbox widget to to tkinter.ttk. Patch by Alan D Moore.
diff --git a/Misc/NEWS.d/next/Library/2018-01-18-23-34-17.bpo-31848.M2cldy.rst b/Misc/NEWS.d/next/Library/2018-01-18-23-34-17.bpo-31848.M2cldy.rst
deleted file mode 100644
index c8e61acb0b06..000000000000
--- a/Misc/NEWS.d/next/Library/2018-01-18-23-34-17.bpo-31848.M2cldy.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix the error handling in Aifc_read.initfp() when the SSND chunk is not found.
-Patch by Zackery Spytz.
diff --git a/Misc/NEWS.d/next/Library/2018-01-20-23-17-25.bpo-24334.GZuQLv.rst b/Misc/NEWS.d/next/Library/2018-01-20-23-17-25.bpo-24334.GZuQLv.rst
deleted file mode 100644
index 2b4877fad7e1..000000000000
--- a/Misc/NEWS.d/next/Library/2018-01-20-23-17-25.bpo-24334.GZuQLv.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Internal implementation details of ssl module were cleaned up. The SSLSocket
-has one less layer of indirection. Owner and session information are now
-handled by the SSLSocket and SSLObject constructor. Channel binding
-implementation has been simplified.
diff --git a/Misc/NEWS.d/next/Library/2018-01-21-15-01-50.bpo-31453.cZiZBe.rst b/Misc/NEWS.d/next/Library/2018-01-21-15-01-50.bpo-31453.cZiZBe.rst
deleted file mode 100644
index 6d43dfd8207d..000000000000
--- a/Misc/NEWS.d/next/Library/2018-01-21-15-01-50.bpo-31453.cZiZBe.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Add TLSVersion constants and SSLContext.maximum_version / minimum_version
-attributes. The new API wraps OpenSSL 1.1
-https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html
-feature.
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
deleted file mode 100644
index 22c219636de2..000000000000
--- a/Misc/NEWS.d/next/Library/2018-01-30-17-46-18.bpo-32727.aHVsRC.rst
+++ /dev/null
@@ -1 +0,0 @@
-Do not include name field in SMTP envelope from address. Patch by Stéphane Wirtel
diff --git a/Misc/NEWS.d/next/Library/2018-02-01-01-34-47.bpo-32734.gCV9AD.rst b/Misc/NEWS.d/next/Library/2018-02-01-01-34-47.bpo-32734.gCV9AD.rst
deleted file mode 100644
index 14d4bbdade75..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-01-01-34-47.bpo-32734.gCV9AD.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed ``asyncio.Lock()`` safety issue which allowed acquiring and locking
-the same lock multiple times, without it being free. Patch by Bar Harel.
diff --git a/Misc/NEWS.d/next/Library/2018-02-01-15-53-35.bpo-32691.VLWVTq.rst b/Misc/NEWS.d/next/Library/2018-02-01-15-53-35.bpo-32691.VLWVTq.rst
deleted file mode 100644
index 93f898e9c689..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-01-15-53-35.bpo-32691.VLWVTq.rst
+++ /dev/null
@@ -1 +0,0 @@
-Use mod_spec.parent when running modules with pdb
diff --git a/Misc/NEWS.d/next/Library/2018-02-01-17-54-08.bpo-32741.KUvOPL.rst b/Misc/NEWS.d/next/Library/2018-02-01-17-54-08.bpo-32741.KUvOPL.rst
deleted file mode 100644
index 651e7666157a..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-01-17-54-08.bpo-32741.KUvOPL.rst
+++ /dev/null
@@ -1 +0,0 @@
-Implement ``asyncio.TimerHandle.when()`` method.
diff --git a/Misc/NEWS.d/next/Library/2018-02-05-13-31-42.bpo-32647.ktmfR_.rst b/Misc/NEWS.d/next/Library/2018-02-05-13-31-42.bpo-32647.ktmfR_.rst
deleted file mode 100644
index 04fc0247bcde..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-05-13-31-42.bpo-32647.ktmfR_.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-The ctypes module used to depend on indirect linking for dlopen. The shared
-extension is now explicitly linked against libdl on platforms with dl.
diff --git a/Misc/NEWS.d/next/Library/2018-02-05-21-28-28.bpo-32777.C-wIXF.rst b/Misc/NEWS.d/next/Library/2018-02-05-21-28-28.bpo-32777.C-wIXF.rst
deleted file mode 100644
index d5d7d7b27dc7..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-05-21-28-28.bpo-32777.C-wIXF.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a rare but potential pre-exec child process deadlock in subprocess on
-POSIX systems when marking file descriptors inheritable on exec in the child
-process. This bug appears to have been introduced in 3.4.
diff --git a/Misc/NEWS.d/next/Library/2018-02-06-17-58-15.bpo-32622.AE0Jz7.rst b/Misc/NEWS.d/next/Library/2018-02-06-17-58-15.bpo-32622.AE0Jz7.rst
deleted file mode 100644
index 456a6dc55959..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-06-17-58-15.bpo-32622.AE0Jz7.rst
+++ /dev/null
@@ -1 +0,0 @@
-Implement native fast sendfile for Windows proactor event loop.
diff --git a/Misc/NEWS.d/next/Library/2018-02-07-19-12-10.bpo-32775.-T77_c.rst b/Misc/NEWS.d/next/Library/2018-02-07-19-12-10.bpo-32775.-T77_c.rst
deleted file mode 100644
index ed563c17fdc8..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-07-19-12-10.bpo-32775.-T77_c.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-:func:`fnmatch.translate()` no longer produces patterns which contain set
-operations. Sets starting with '[' or containing '--', '&&', '~~' or '||'
-will be interpreted differently in regular expressions in future versions.
-Currently they emit warnings. fnmatch.translate() now avoids producing
-patterns containing such sets by accident.
diff --git a/Misc/NEWS.d/next/Library/2018-02-08-00-47-07.bpo-32792.NtyDb4.rst b/Misc/NEWS.d/next/Library/2018-02-08-00-47-07.bpo-32792.NtyDb4.rst
deleted file mode 100644
index 1f7df62cc3e1..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-08-00-47-07.bpo-32792.NtyDb4.rst
+++ /dev/null
@@ -1 +0,0 @@
-collections.ChainMap() preserves the order of the underlying mappings.
diff --git a/Misc/NEWS.d/next/Library/2018-02-09-14-44-43.bpo-30157.lEiiAK.rst b/Misc/NEWS.d/next/Library/2018-02-09-14-44-43.bpo-30157.lEiiAK.rst
deleted file mode 100644
index 9f651930ac2b..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-09-14-44-43.bpo-30157.lEiiAK.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed guessing quote and delimiter in csv.Sniffer.sniff() when only the last
-field is quoted. Patch by Jake Davis.
diff --git a/Misc/NEWS.d/next/Library/2018-02-09-21-41-56.bpo-31787.owSZ2t.rst b/Misc/NEWS.d/next/Library/2018-02-09-21-41-56.bpo-31787.owSZ2t.rst
deleted file mode 100644
index f0cde59d740f..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-09-21-41-56.bpo-31787.owSZ2t.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed refleaks of ``__init__()`` methods in various modules.
-(Contributed by Oren Milman)
diff --git a/Misc/NEWS.d/next/Library/2018-02-10-13-51-56.bpo-32394.dFM9SI.rst b/Misc/NEWS.d/next/Library/2018-02-10-13-51-56.bpo-32394.dFM9SI.rst
deleted file mode 100644
index ee5807619a93..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-10-13-51-56.bpo-32394.dFM9SI.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-socket: Remove TCP_FASTOPEN,TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL flags on
-older version Windows during run-time.
diff --git a/Misc/NEWS.d/next/Library/2018-02-11-15-54-41.bpo-32819.ZTRX2Q.rst b/Misc/NEWS.d/next/Library/2018-02-11-15-54-41.bpo-32819.ZTRX2Q.rst
deleted file mode 100644
index 7d57bf697826..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-11-15-54-41.bpo-32819.ZTRX2Q.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-ssl.match_hostname() has been simplified and no longer depends on re and
-ipaddress module for wildcard and IP addresses. Error reporting for invalid
-wildcards has been improved.
diff --git a/Misc/NEWS.d/next/Library/2018-02-14-00-21-24.bpo-32841.bvHDOc.rst b/Misc/NEWS.d/next/Library/2018-02-14-00-21-24.bpo-32841.bvHDOc.rst
deleted file mode 100644
index a6d45669d027..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-14-00-21-24.bpo-32841.bvHDOc.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed `asyncio.Condition` issue which silently ignored cancellation after
-notifying and cancelling a conditional lock. Patch by Bar Harel.
diff --git a/Misc/NEWS.d/next/Library/2018-02-15-08-18-52.bpo-31333.4fF-gM.rst b/Misc/NEWS.d/next/Library/2018-02-15-08-18-52.bpo-31333.4fF-gM.rst
deleted file mode 100644
index 63fc72a5c11b..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-15-08-18-52.bpo-31333.4fF-gM.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-``_abc`` module is added. It is a speedup module with C implementations for
-various functions and methods in ``abc``. Creating an ABC subclass and calling
-``isinstance`` or ``issubclass`` with an ABC subclass are up to 1.5x faster.
-In addition, this makes Python start-up up to 10% faster.
-
-Note that the new implementation hides internal registry and caches, previously
-accessible via private attributes ``_abc_registry``, ``_abc_cache``, and
-``_abc_negative_cache``. There are three debugging helper methods that can be
-used instead ``_dump_registry``, ``_abc_registry_clear``, and
-``_abc_caches_clear``.
diff --git a/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst b/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst
deleted file mode 100644
index 8eabbfaea222..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst
+++ /dev/null
@@ -1 +0,0 @@
-Make sure sys.argv remains as a list when running trace.
diff --git a/Misc/NEWS.d/next/Library/2018-02-17-19-20-19.bpo-21060.S1Z-x6.rst b/Misc/NEWS.d/next/Library/2018-02-17-19-20-19.bpo-21060.S1Z-x6.rst
deleted file mode 100644
index 4e0a11362086..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-17-19-20-19.bpo-21060.S1Z-x6.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Rewrite confusing message from setup.py upload from
-"No dist file created in earlier command" to the more helpful
-"Must create and upload files in one command".
diff --git a/Misc/NEWS.d/next/Library/2018-02-18-13-04-59.bpo-25988.ACidKC.rst b/Misc/NEWS.d/next/Library/2018-02-18-13-04-59.bpo-25988.ACidKC.rst
deleted file mode 100644
index 9730ab4a6101..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-18-13-04-59.bpo-25988.ACidKC.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Emit a :exc:`DeprecationWarning` when using or importing an ABC directly
-from :mod:`collections` rather than from :mod:`collections.abc`.
diff --git a/Misc/NEWS.d/next/Library/2018-02-19-14-27-51.bpo-32556.CsRsgr.rst b/Misc/NEWS.d/next/Library/2018-02-19-14-27-51.bpo-32556.CsRsgr.rst
deleted file mode 100644
index 1a475b308f5e..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-19-14-27-51.bpo-32556.CsRsgr.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-nt._getfinalpathname, nt._getvolumepathname and nt._getdiskusage now
-correctly convert from bytes.
diff --git a/Misc/NEWS.d/next/Library/2018-02-19-17-46-31.bpo-32859.kAT-Xp.rst b/Misc/NEWS.d/next/Library/2018-02-19-17-46-31.bpo-32859.kAT-Xp.rst
deleted file mode 100644
index 755bdc118610..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-19-17-46-31.bpo-32859.kAT-Xp.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-In ``os.dup2``, don't check every call whether the ``dup3`` syscall exists
-or not.
diff --git a/Misc/NEWS.d/next/Library/2018-02-23-19-12-04.bpo-32922.u-xe0B.rst b/Misc/NEWS.d/next/Library/2018-02-23-19-12-04.bpo-32922.u-xe0B.rst
deleted file mode 100644
index 412e588586c0..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-23-19-12-04.bpo-32922.u-xe0B.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-dbm.open() now encodes filename with the filesystem encoding rather than
-default encoding.
diff --git a/Misc/NEWS.d/next/Library/2018-02-24-21-40-42.bpo-30622.dQjxSe.rst b/Misc/NEWS.d/next/Library/2018-02-24-21-40-42.bpo-30622.dQjxSe.rst
deleted file mode 100644
index bcb659b24dd3..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-24-21-40-42.bpo-30622.dQjxSe.rst
+++ /dev/null
@@ -1 +0,0 @@
-The ssl module now detects missing NPN support in LibreSSL.
diff --git a/Misc/NEWS.d/next/Library/2018-02-25-13-06-21.bpo-32947.mqStVW.rst b/Misc/NEWS.d/next/Library/2018-02-25-13-06-21.bpo-32947.mqStVW.rst
deleted file mode 100644
index 28de360c3671..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-25-13-06-21.bpo-32947.mqStVW.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Add OP_ENABLE_MIDDLEBOX_COMPAT and test workaround for TLSv1.3 for future
-compatibility with OpenSSL 1.1.1.
diff --git a/Misc/NEWS.d/next/Library/2018-02-25-13-47-48.bpo-32929.X2gTDH.rst b/Misc/NEWS.d/next/Library/2018-02-25-13-47-48.bpo-32929.X2gTDH.rst
deleted file mode 100644
index b8a470cbf280..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-25-13-47-48.bpo-32929.X2gTDH.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Remove the tri-state parameter "hash", and add the boolean "unsafe_hash". If
-unsafe_hash is True, add a __hash__ function, but if a __hash__ exists,
-raise TypeError. If unsafe_hash is False, add a __hash__ based on the
-values of eq= and frozen=. The unsafe_hash=False behavior is the same as
-the old hash=None behavior. unsafe_hash=False is the default, just as
-hash=None used to be.
diff --git a/Misc/NEWS.d/next/Library/2018-02-25-18-22-01.bpo-32951.gHrCXq.rst b/Misc/NEWS.d/next/Library/2018-02-25-18-22-01.bpo-32951.gHrCXq.rst
deleted file mode 100644
index 9c038cf25979..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-25-18-22-01.bpo-32951.gHrCXq.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Direct instantiation of SSLSocket and SSLObject objects is now prohibited.
-The constructors were never documented, tested, or designed as public
-constructors. Users were suppose to use ssl.wrap_socket() or SSLContext.
diff --git a/Misc/NEWS.d/next/Library/2018-02-26-13-16-36.bpo-32713.55yegW.rst b/Misc/NEWS.d/next/Library/2018-02-26-13-16-36.bpo-32713.55yegW.rst
deleted file mode 100644
index bb5d64a351cb..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-26-13-16-36.bpo-32713.55yegW.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fixed tarfile.itn handling of out-of-bounds float values. Patch by Joffrey Fuhrer.
diff --git a/Misc/NEWS.d/next/Library/2018-02-26-20-04-40.bpo-32960.48r0Ml.rst b/Misc/NEWS.d/next/Library/2018-02-26-20-04-40.bpo-32960.48r0Ml.rst
deleted file mode 100644
index 4ad1fa17571d..000000000000
--- a/Misc/NEWS.d/next/Library/2018-02-26-20-04-40.bpo-32960.48r0Ml.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-For dataclasses, disallow inheriting frozen from non-frozen classes, and
-also disallow inheriting non-frozen from frozen classes. This restriction
-will be relaxed at a future date.
diff --git a/Misc/NEWS.d/next/Security/2017-08-06-14-43-45.bpo-28414.mzZ6vD.rst b/Misc/NEWS.d/next/Security/2017-08-06-14-43-45.bpo-28414.mzZ6vD.rst
deleted file mode 100644
index 06528c93ee19..000000000000
--- a/Misc/NEWS.d/next/Security/2017-08-06-14-43-45.bpo-28414.mzZ6vD.rst
+++ /dev/null
@@ -1 +0,0 @@
-The ssl module now allows users to perform their own IDN en/decoding when using SNI.
diff --git a/Misc/NEWS.d/next/Tests/2017-10-18-18-07-45.bpo-31809.KlQrkE.rst b/Misc/NEWS.d/next/Tests/2017-10-18-18-07-45.bpo-31809.KlQrkE.rst
deleted file mode 100644
index 8a48508b8c1f..000000000000
--- a/Misc/NEWS.d/next/Tests/2017-10-18-18-07-45.bpo-31809.KlQrkE.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add tests to verify connection with secp ECDH curves.
diff --git a/Misc/NEWS.d/next/Tools-Demos/2017-12-07-20-51-20.bpo-32222.hPBcGT.rst b/Misc/NEWS.d/next/Tools-Demos/2017-12-07-20-51-20.bpo-32222.hPBcGT.rst
deleted file mode 100644
index b0b4c5e9357c..000000000000
--- a/Misc/NEWS.d/next/Tools-Demos/2017-12-07-20-51-20.bpo-32222.hPBcGT.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix pygettext not extracting docstrings for functions with type annotated
-arguments.
-Patch by Toby Harradine.
diff --git a/Misc/NEWS.d/next/Windows/2018-02-07-17-50-48.bpo-29248.Xzwj-6.rst b/Misc/NEWS.d/next/Windows/2018-02-07-17-50-48.bpo-29248.Xzwj-6.rst
deleted file mode 100644
index 3030ef6958de..000000000000
--- a/Misc/NEWS.d/next/Windows/2018-02-07-17-50-48.bpo-29248.Xzwj-6.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :func:`os.readlink` on Windows, which was mistakenly treating the
-``PrintNameOffset`` field of the reparse data buffer as a number of
-characters instead of bytes. Patch by Craig Holmquist and SSE4.
diff --git a/Misc/NEWS.d/next/Windows/2018-02-10-15-38-19.bpo-32370.kcKuct.rst b/Misc/NEWS.d/next/Windows/2018-02-10-15-38-19.bpo-32370.kcKuct.rst
deleted file mode 100644
index 7f076d45bef9..000000000000
--- a/Misc/NEWS.d/next/Windows/2018-02-10-15-38-19.bpo-32370.kcKuct.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Use the correct encoding for ipconfig output in the uuid module.
-Patch by Segev Finer.
diff --git a/Misc/NEWS.d/next/Windows/2018-02-19-08-54-06.bpo-32457.vVP0Iz.rst b/Misc/NEWS.d/next/Windows/2018-02-19-08-54-06.bpo-32457.vVP0Iz.rst
deleted file mode 100644
index b55ec821e622..000000000000
--- a/Misc/NEWS.d/next/Windows/2018-02-19-08-54-06.bpo-32457.vVP0Iz.rst
+++ /dev/null
@@ -1 +0,0 @@
-Improves handling of denormalized executable path when launching Python.
diff --git a/Misc/NEWS.d/next/Windows/2018-02-19-10-00-57.bpo-32409.nocuDg.rst b/Misc/NEWS.d/next/Windows/2018-02-19-10-00-57.bpo-32409.nocuDg.rst
deleted file mode 100644
index 36251b0b4783..000000000000
--- a/Misc/NEWS.d/next/Windows/2018-02-19-10-00-57.bpo-32409.nocuDg.rst
+++ /dev/null
@@ -1 +0,0 @@
-Ensures activate.bat can handle Unicode contents.
diff --git a/Misc/NEWS.d/next/Windows/2018-02-19-13-54-42.bpo-31966._Q3HPb.rst b/Misc/NEWS.d/next/Windows/2018-02-19-13-54-42.bpo-31966._Q3HPb.rst
deleted file mode 100644
index 042a4d835abf..000000000000
--- a/Misc/NEWS.d/next/Windows/2018-02-19-13-54-42.bpo-31966._Q3HPb.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fixed WindowsConsoleIO.write() for writing empty data.
diff --git a/Misc/NEWS.d/next/Windows/2018-02-23-00-47-13.bpo-32901.mGKz5_.rst b/Misc/NEWS.d/next/Windows/2018-02-23-00-47-13.bpo-32901.mGKz5_.rst
deleted file mode 100644
index af0ca65e3c82..000000000000
--- a/Misc/NEWS.d/next/Windows/2018-02-23-00-47-13.bpo-32901.mGKz5_.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update Tcl and Tk versions to 8.6.8
diff --git a/Misc/NEWS.d/next/macOS/2018-02-27-17-33-15.bpo-32901.hQu0w3.rst b/Misc/NEWS.d/next/macOS/2018-02-27-17-33-15.bpo-32901.hQu0w3.rst
deleted file mode 100644
index 73e69a9b7119..000000000000
--- a/Misc/NEWS.d/next/macOS/2018-02-27-17-33-15.bpo-32901.hQu0w3.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS 10.9+ installer to Tcl/Tk 8.6.8.
diff --git a/README.rst b/README.rst
index c82fef4a41f6..5d47d11ed101 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 2
+===================================
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
:alt: CPython build status on Travis CI
1
0
bpo-30928: Update idlelib/NEWS.txt, possibly for 3.7.0b2 (GH-5932)
by Miss Islington (bot) 28 Feb '18
by Miss Islington (bot) 28 Feb '18
28 Feb '18
https://github.com/python/cpython/commit/8c65360dd0c1ea5b5d2e60a0694daf3f9d…
commit: 8c65360dd0c1ea5b5d2e60a0694daf3f9df8f56b
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-02-27T16:31:25-08:00
summary:
bpo-30928: Update idlelib/NEWS.txt, possibly for 3.7.0b2 (GH-5932)
(cherry picked from commit 0954c9e9c8fbea452f56120df592f2061d3209c7)
Co-authored-by: Terry Jan Reedy <tjreedy(a)udel.edu>
files:
M Lib/idlelib/NEWS.txt
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index d82fde26f28f..1ef8a617c4ad 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,22 @@ Released on 2017-03-26?
======================================
+bpo-32916: Change 'str' to 'code' in idlelib.pyparse and users.
+
+bpo-32905: Remove unused code in pyparse module.
+
+bpo-32874: IDLE - add pyparse tests with 97% coverage.
+
+bpo-32837: IDLE - require encoding argument for textview.view_file.
+Using the system and place-dependent default encoding for open()
+is a bad idea for IDLE's system and location-independent files.
+
+bpo-32826: Add "encoding=utf-8" to open() in IDLE's test_help_about.
+GUI test test_file_buttons() only looks at initial ascii-only lines,
+but failed on systems where open() defaults to 'ascii' because
+readline() internally reads and decodes far enough ahead to encounter
+a non-ascii character in CREDITS.txt.
+
bpo-32765: Update configdialog General tab create page docstring.
Add new widgets to the widget list.
1
0