Python-checkins
Threads by month
- ----- 2024 -----
- 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
April 2021
- 1 participants
- 580 discussions
bpo-43705: Document that SyntaxError's offsets are 1-indexed (GH-25153)
by miss-islington 02 Apr '21
by miss-islington 02 Apr '21
02 Apr '21
https://github.com/python/cpython/commit/06653f8d15a8a84ee0f43f739704a9a63c…
commit: 06653f8d15a8a84ee0f43f739704a9a63c27de54
branch: 3.8
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: miss-islington <31488909+miss-islington(a)users.noreply.github.com>
date: 2021-04-02T15:26:17-07:00
summary:
bpo-43705: Document that SyntaxError's offsets are 1-indexed (GH-25153)
Changed the inline mentions of the attributes into a proper attribute list like `SystemExit` has.
Automerge-Triggered-By: GH:gvanrossum
(cherry picked from commit b2a91e0c9ee18b50cc86b21211c2258520a9f5d0)
Co-authored-by: Ammar Askar <ammar(a)ammaraskar.com>
files:
M Doc/library/exceptions.rst
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 52a505e0a0ff8..519862cc09d70 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -397,9 +397,25 @@ The following exceptions are the exceptions that are usually raised.
or :func:`eval`, or when reading the initial script or standard input
(also interactively).
- Instances of this class have attributes :attr:`filename`, :attr:`lineno`,
- :attr:`offset` and :attr:`text` for easier access to the details. :func:`str`
- of the exception instance returns only the message.
+ The :func:`str` of the exception instance returns only the error message.
+
+ .. attribute:: filename
+
+ The name of the file the syntax error occurred in.
+
+ .. attribute:: lineno
+
+ Which line number in the file the error occurred in. This is
+ 1-indexed: the first line in the file has a ``lineno`` of 1.
+
+ .. attribute:: offset
+
+ The column in the line where the error occurred. This is
+ 1-indexed: the first character in the line has an ``offset`` of 1.
+
+ .. attribute:: text
+
+ The source code text involved in the error.
.. exception:: IndentationError
1
0
bpo-43705: Document that SyntaxError's offsets are 1-indexed (GH-25153)
by miss-islington 02 Apr '21
by miss-islington 02 Apr '21
02 Apr '21
https://github.com/python/cpython/commit/b2a91e0c9ee18b50cc86b21211c2258520…
commit: b2a91e0c9ee18b50cc86b21211c2258520a9f5d0
branch: master
author: Ammar Askar <ammar(a)ammaraskar.com>
committer: miss-islington <31488909+miss-islington(a)users.noreply.github.com>
date: 2021-04-02T14:25:31-07:00
summary:
bpo-43705: Document that SyntaxError's offsets are 1-indexed (GH-25153)
Changed the inline mentions of the attributes into a proper attribute list like `SystemExit` has.
Automerge-Triggered-By: GH:gvanrossum
files:
M Doc/library/exceptions.rst
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 40ccde72d07cc..4dea6701a6bfd 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -402,9 +402,25 @@ The following exceptions are the exceptions that are usually raised.
or :func:`eval`, or when reading the initial script or standard input
(also interactively).
- Instances of this class have attributes :attr:`filename`, :attr:`lineno`,
- :attr:`offset` and :attr:`text` for easier access to the details. :func:`str`
- of the exception instance returns only the message.
+ The :func:`str` of the exception instance returns only the error message.
+
+ .. attribute:: filename
+
+ The name of the file the syntax error occurred in.
+
+ .. attribute:: lineno
+
+ Which line number in the file the error occurred in. This is
+ 1-indexed: the first line in the file has a ``lineno`` of 1.
+
+ .. attribute:: offset
+
+ The column in the line where the error occurred. This is
+ 1-indexed: the first character in the line has an ``offset`` of 1.
+
+ .. attribute:: text
+
+ The source code text involved in the error.
.. exception:: IndentationError
1
0
02 Apr '21
https://github.com/python/cpython/commit/f97dc800689ba98783dac8dc51f87f7c6f…
commit: f97dc800689ba98783dac8dc51f87f7c6f413ac6
branch: master
author: Brett Cannon <brett(a)python.org>
committer: brettcannon <brett(a)python.org>
date: 2021-04-02T12:35:32-07:00
summary:
bpo-43672: raise ImportWarning when calling find_loader() (GH-25119)
files:
A Misc/NEWS.d/next/Core and Builtins/2021-03-31-09-12-54.bpo-43672.jTT5uG.rst
M Doc/reference/import.rst
M Doc/whatsnew/3.10.rst
M Lib/importlib/_bootstrap_external.py
M Lib/test/test_importlib/extension/test_loader.py
M Lib/test/test_importlib/import_/test_path.py
M Lib/test/test_importlib/test_abc.py
M Lib/test/test_importlib/test_main.py
M Lib/test/test_importlib/test_metadata_api.py
M Lib/test/test_importlib/test_path.py
M Lib/test/test_importlib/test_reader.py
M Lib/test/test_importlib/test_util.py
M Python/importlib_external.h
diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst
index 5d2169b4cba60..2ef5b901b930b 100644
--- a/Doc/reference/import.rst
+++ b/Doc/reference/import.rst
@@ -904,7 +904,8 @@ a list containing the portion.
``find_loader()`` in preference to ``find_module()``.
.. versionchanged:: 3.10
- Calls to :meth:`~importlib.abc.PathEntryFinder.find_module` by the import
+ Calls to :meth:`~importlib.abc.PathEntryFinder.find_module` and
+ :meth:`~importlib.abc.PathEntryFinder.find_loader` by the import
system will raise :exc:`ImportWarning`.
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index eb42480756241..d20fdac71b302 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -1050,7 +1050,13 @@ Deprecated
:meth:`importlib.abc.PathEntryFinder.find_spec`
are preferred, respectively. You can use
:func:`importlib.util.spec_from_loader` to help in porting.
- (Contributed by Brett Cannon in :issue:`42134`.)
+ (Contributed by Brett Cannon in :issue:`42134`.)
+
+* The use of :meth:`importlib.abc.PathEntryFinder.find_loader` by the import
+ system now triggers an :exc:`ImportWarning` as
+ :meth:`importlib.abc.PathEntryFinder.find_spec` is preferred. You can use
+ :func:`importlib.util.spec_from_loader` to help in porting.
+ (Contributed by Brett Cannon in :issue:`43672`.)
* The import system now uses the ``__spec__`` attribute on modules before
falling back on :meth:`~importlib.abc.Loader.module_repr` for a module's
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 6c3e0317b7d9f..358c650916b0b 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -1323,10 +1323,13 @@ def _legacy_get_spec(cls, fullname, finder):
# This would be a good place for a DeprecationWarning if
# we ended up going that route.
if hasattr(finder, 'find_loader'):
+ msg = (f"{_bootstrap._object_name(finder)}.find_spec() not found; "
+ "falling back to find_loader()")
+ _warnings.warn(msg, ImportWarning)
loader, portions = finder.find_loader(fullname)
else:
msg = (f"{_bootstrap._object_name(finder)}.find_spec() not found; "
- "falling back to find_module()")
+ "falling back to find_module()")
_warnings.warn(msg, ImportWarning)
loader = finder.find_module(fullname)
portions = []
diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py
index 22cf2dac5f868..8fd556dbed57a 100644
--- a/Lib/test/test_importlib/extension/test_loader.py
+++ b/Lib/test/test_importlib/extension/test_loader.py
@@ -89,8 +89,7 @@ def test_is_package(self):
) = util.test_both(LoaderTests, machinery=machinery)
class MultiPhaseExtensionModuleTests(abc.LoaderTests):
- """Test loading extension modules with multi-phase initialization (PEP 489)
- """
+ # Test loading extension modules with multi-phase initialization (PEP 489).
def setUp(self):
self.name = '_testmultiphase'
@@ -101,13 +100,13 @@ def setUp(self):
self.name, self.spec.origin)
def load_module(self):
- '''Load the module from the test extension'''
+ # Load the module from the test extension.
with warnings.catch_warnings():
warnings.simplefilter("ignore", DeprecationWarning)
return self.loader.load_module(self.name)
def load_module_by_name(self, fullname):
- '''Load a module from the test extension by name'''
+ # Load a module from the test extension by name.
origin = self.spec.origin
loader = self.machinery.ExtensionFileLoader(fullname, origin)
spec = importlib.util.spec_from_loader(fullname, loader)
@@ -125,7 +124,7 @@ def load_module_by_name(self, fullname):
test_state_after_failure = None
def test_module(self):
- '''Test loading an extension module'''
+ # Test loading an extension module.
with util.uncache(self.name):
module = self.load_module()
for attr, value in [('__name__', self.name),
@@ -139,7 +138,7 @@ def test_module(self):
self.machinery.ExtensionFileLoader)
def test_functionality(self):
- '''Test basic functionality of stuff defined in an extension module'''
+ # Test basic functionality of stuff defined in an extension module.
with util.uncache(self.name):
module = self.load_module()
self.assertIsInstance(module, types.ModuleType)
@@ -159,7 +158,7 @@ def test_functionality(self):
self.assertEqual(module.str_const, 'something different')
def test_reload(self):
- '''Test that reload didn't re-set the module's attributes'''
+ # Test that reload didn't re-set the module's attributes.
with util.uncache(self.name):
module = self.load_module()
ex_class = module.Example
@@ -167,7 +166,7 @@ def test_reload(self):
self.assertIs(ex_class, module.Example)
def test_try_registration(self):
- '''Assert that the PyState_{Find,Add,Remove}Module C API doesn't work'''
+ # Assert that the PyState_{Find,Add,Remove}Module C API doesn't work.
module = self.load_module()
with self.subTest('PyState_FindModule'):
self.assertEqual(module.call_state_registration_func(0), None)
@@ -179,14 +178,14 @@ def test_try_registration(self):
module.call_state_registration_func(2)
def test_load_submodule(self):
- '''Test loading a simulated submodule'''
+ # Test loading a simulated submodule.
module = self.load_module_by_name('pkg.' + self.name)
self.assertIsInstance(module, types.ModuleType)
self.assertEqual(module.__name__, 'pkg.' + self.name)
self.assertEqual(module.str_const, 'something different')
def test_load_short_name(self):
- '''Test loading module with a one-character name'''
+ # Test loading module with a one-character name.
module = self.load_module_by_name('x')
self.assertIsInstance(module, types.ModuleType)
self.assertEqual(module.__name__, 'x')
@@ -194,27 +193,27 @@ def test_load_short_name(self):
self.assertNotIn('x', sys.modules)
def test_load_twice(self):
- '''Test that 2 loads result in 2 module objects'''
+ # Test that 2 loads result in 2 module objects.
module1 = self.load_module_by_name(self.name)
module2 = self.load_module_by_name(self.name)
self.assertIsNot(module1, module2)
def test_unloadable(self):
- '''Test nonexistent module'''
+ # Test nonexistent module.
name = 'asdfjkl;'
with self.assertRaises(ImportError) as cm:
self.load_module_by_name(name)
self.assertEqual(cm.exception.name, name)
def test_unloadable_nonascii(self):
- '''Test behavior with nonexistent module with non-ASCII name'''
+ # Test behavior with nonexistent module with non-ASCII name.
name = 'fo\xf3'
with self.assertRaises(ImportError) as cm:
self.load_module_by_name(name)
self.assertEqual(cm.exception.name, name)
def test_nonmodule(self):
- '''Test returning a non-module object from create works'''
+ # Test returning a non-module object from create works.
name = self.name + '_nonmodule'
mod = self.load_module_by_name(name)
self.assertNotEqual(type(mod), type(unittest))
@@ -222,7 +221,7 @@ def test_nonmodule(self):
# issue 27782
def test_nonmodule_with_methods(self):
- '''Test creating a non-module object with methods defined'''
+ # Test creating a non-module object with methods defined.
name = self.name + '_nonmodule_with_methods'
mod = self.load_module_by_name(name)
self.assertNotEqual(type(mod), type(unittest))
@@ -230,14 +229,14 @@ def test_nonmodule_with_methods(self):
self.assertEqual(mod.bar(10, 1), 9)
def test_null_slots(self):
- '''Test that NULL slots aren't a problem'''
+ # Test that NULL slots aren't a problem.
name = self.name + '_null_slots'
module = self.load_module_by_name(name)
self.assertIsInstance(module, types.ModuleType)
self.assertEqual(module.__name__, name)
def test_bad_modules(self):
- '''Test SystemError is raised for misbehaving extensions'''
+ # Test SystemError is raised for misbehaving extensions.
for name_base in [
'bad_slot_large',
'bad_slot_negative',
@@ -261,9 +260,9 @@ def test_bad_modules(self):
self.load_module_by_name(name)
def test_nonascii(self):
- '''Test that modules with non-ASCII names can be loaded'''
+ # Test that modules with non-ASCII names can be loaded.
# punycode behaves slightly differently in some-ASCII and no-ASCII
- # cases, so test both
+ # cases, so test both.
cases = [
(self.name + '_zkou\u0161ka_na\u010dten\xed', 'Czech'),
('\uff3f\u30a4\u30f3\u30dd\u30fc\u30c8\u30c6\u30b9\u30c8',
diff --git a/Lib/test/test_importlib/import_/test_path.py b/Lib/test/test_importlib/import_/test_path.py
index c51aee22bb8dc..2ba7030d14d8c 100644
--- a/Lib/test/test_importlib/import_/test_path.py
+++ b/Lib/test/test_importlib/import_/test_path.py
@@ -143,12 +143,16 @@ def find_loader(self, fullname):
return self.loader, self.portions
path = 'testing path'
with util.import_state(path_importer_cache={path: TestFinder()}):
- self.assertIsNone(
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", ImportWarning)
+ self.assertIsNone(
self.machinery.PathFinder.find_spec('whatever', [path]))
success_finder = TestFinder()
success_finder.loader = __loader__
with util.import_state(path_importer_cache={path: success_finder}):
- spec = self.machinery.PathFinder.find_spec('whatever', [path])
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", ImportWarning)
+ spec = self.machinery.PathFinder.find_spec('whatever', [path])
self.assertEqual(spec.loader, __loader__)
def test_finder_with_find_spec(self):
diff --git a/Lib/test/test_importlib/test_abc.py b/Lib/test/test_importlib/test_abc.py
index 6333ce8c48b0b..98f5835eafca5 100644
--- a/Lib/test/test_importlib/test_abc.py
+++ b/Lib/test/test_importlib/test_abc.py
@@ -221,13 +221,13 @@ def test_load_module(self):
def test_module_repr(self):
mod = types.ModuleType('blah')
with warnings.catch_warnings():
- warnings.simplefilter("ignore")
+ warnings.simplefilter("ignore", DeprecationWarning)
with self.assertRaises(NotImplementedError):
self.ins.module_repr(mod)
- original_repr = repr(mod)
- mod.__loader__ = self.ins
- # Should still return a proper repr.
- self.assertTrue(repr(mod))
+ original_repr = repr(mod)
+ mod.__loader__ = self.ins
+ # Should still return a proper repr.
+ self.assertTrue(repr(mod))
(Frozen_LDefaultTests,
diff --git a/Lib/test/test_importlib/test_main.py b/Lib/test/test_importlib/test_main.py
index 02e8a573437a5..db97e53922cf8 100644
--- a/Lib/test/test_importlib/test_main.py
+++ b/Lib/test/test_importlib/test_main.py
@@ -36,12 +36,10 @@ def test_for_name_does_not_exist(self):
Distribution.from_name('does-not-exist')
def test_package_not_found_mentions_metadata(self):
- """
- When a package is not found, that could indicate that the
- packgae is not installed or that it is installed without
- metadata. Ensure the exception mentions metadata to help
- guide users toward the cause. See #124.
- """
+ # When a package is not found, that could indicate that the
+ # packgae is not installed or that it is installed without
+ # metadata. Ensure the exception mentions metadata to help
+ # guide users toward the cause. See #124.
with self.assertRaises(PackageNotFoundError) as ctx:
Distribution.from_name('does-not-exist')
@@ -90,10 +88,8 @@ def pkg_with_dashes(site_dir):
return 'my-pkg'
def test_dashes_in_dist_name_found_as_underscores(self):
- """
- For a package with a dash in the name, the dist-info metadata
- uses underscores in the name. Ensure the metadata loads.
- """
+ # For a package with a dash in the name, the dist-info metadata
+ # uses underscores in the name. Ensure the metadata loads.
pkg_name = self.pkg_with_dashes(self.site_dir)
assert version(pkg_name) == '1.0'
@@ -111,9 +107,7 @@ def pkg_with_mixed_case(site_dir):
return 'CherryPy'
def test_dist_name_found_as_any_case(self):
- """
- Ensure the metadata loads when queried with any case.
- """
+ # Ensure the metadata loads when queried with any case.
pkg_name = self.pkg_with_mixed_case(self.site_dir)
assert version(pkg_name) == '1.0'
assert version(pkg_name.lower()) == '1.0'
@@ -241,13 +235,11 @@ def test_repr(self):
assert "'name'" in repr(self.ep)
def test_hashable(self):
- """EntryPoints should be hashable"""
+ # EntryPoints should be hashable.
hash(self.ep)
def test_json_dump(self):
- """
- json should not expect to be able to dump an EntryPoint
- """
+ # json should not expect to be able to dump an EntryPoint.
with self.assertRaises(Exception):
with warnings.catch_warnings(record=True):
json.dumps(self.ep)
@@ -259,9 +251,7 @@ def test_attr(self):
assert self.ep.attr is None
def test_sortable(self):
- """
- EntryPoint objects are sortable, but result is undefined.
- """
+ # EntryPoint objects are sortable, but result is undefined.
sorted(
[
EntryPoint('b', 'val', 'group'),
@@ -274,10 +264,8 @@ class FileSystem(
fixtures.OnSysPath, fixtures.SiteDir, fixtures.FileBuilder, unittest.TestCase
):
def test_unicode_dir_on_sys_path(self):
- """
- Ensure a Unicode subdirectory of a directory on sys.path
- does not crash.
- """
+ # Ensure a Unicode subdirectory of a directory on sys.path
+ # does not crash.
fixtures.build_files(
{self.unicode_filename(): {}},
prefix=self.site_dir,
diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py
index a0f9d511f8433..b54c3bd098d43 100644
--- a/Lib/test/test_importlib/test_metadata_api.py
+++ b/Lib/test/test_importlib/test_metadata_api.py
@@ -81,10 +81,8 @@ def test_entry_points_distribution(self):
self.assertEqual(ep.dist.version, "1.0.0")
def test_entry_points_unique_packages(self):
- """
- Entry points should only be exposed for the first package
- on sys.path with a given name.
- """
+ # Entry points should only be exposed for the first package
+ # on sys.path with a given name.
alt_site_dir = self.fixtures.enter_context(fixtures.tempdir())
self.fixtures.enter_context(self.add_sys_path(alt_site_dir))
alt_pkg = {
@@ -116,11 +114,9 @@ def test_entry_points_missing_group(self):
assert entry_points(group='missing') == ()
def test_entry_points_dict_construction(self):
- """
- Prior versions of entry_points() returned simple lists and
- allowed casting those lists into maps by name using ``dict()``.
- Capture this now deprecated use-case.
- """
+ # Prior versions of entry_points() returned simple lists and
+ # allowed casting those lists into maps by name using ``dict()``.
+ # Capture this now deprecated use-case.
with warnings.catch_warnings(record=True) as caught:
warnings.filterwarnings("default", category=DeprecationWarning)
eps = dict(entry_points(group='entries'))
@@ -134,11 +130,9 @@ def test_entry_points_dict_construction(self):
assert "Construction of dict of EntryPoints is deprecated" in str(expected)
def test_entry_points_groups_getitem(self):
- """
- Prior versions of entry_points() returned a dict. Ensure
- that callers using '.__getitem__()' are supported but warned to
- migrate.
- """
+ # Prior versions of entry_points() returned a dict. Ensure
+ # that callers using '.__getitem__()' are supported but warned to
+ # migrate.
with warnings.catch_warnings(record=True):
entry_points()['entries'] == entry_points(group='entries')
@@ -146,11 +140,9 @@ def test_entry_points_groups_getitem(self):
entry_points()['missing']
def test_entry_points_groups_get(self):
- """
- Prior versions of entry_points() returned a dict. Ensure
- that callers using '.get()' are supported but warned to
- migrate.
- """
+ # Prior versions of entry_points() returned a dict. Ensure
+ # that callers using '.get()' are supported but warned to
+ # migrate.
with warnings.catch_warnings(record=True):
entry_points().get('missing', 'default') == 'default'
entry_points().get('entries', 'default') == entry_points()['entries']
@@ -259,7 +251,7 @@ def test_find_distributions_specified_path(self):
assert any(dist.metadata['Name'] == 'distinfo-pkg' for dist in dists)
def test_distribution_at_pathlib(self):
- """Demonstrate how to load metadata direct from a directory."""
+ # Demonstrate how to load metadata direct from a directory.
dist_info_path = self.site_dir / 'distinfo_pkg-1.0.0.dist-info'
dist = Distribution.at(dist_info_path)
assert dist.version == '1.0.0'
diff --git a/Lib/test/test_importlib/test_path.py b/Lib/test/test_importlib/test_path.py
index 2110770e2ac09..d6ed09a9e0d0f 100644
--- a/Lib/test/test_importlib/test_path.py
+++ b/Lib/test/test_importlib/test_path.py
@@ -29,11 +29,9 @@ class PathDiskTests(PathTests, unittest.TestCase):
data = data01
def test_natural_path(self):
- """
- Guarantee the internal implementation detail that
- file-system-backed resources do not get the tempdir
- treatment.
- """
+ # Guarantee the internal implementation detail that
+ # file-system-backed resources do not get the tempdir
+ # treatment.
with resources.path(self.data, 'utf-8.file') as path:
assert 'data' in str(path)
diff --git a/Lib/test/test_importlib/test_reader.py b/Lib/test/test_importlib/test_reader.py
index 905d4fcdece74..b0bf49b8ba7f2 100644
--- a/Lib/test/test_importlib/test_reader.py
+++ b/Lib/test/test_importlib/test_reader.py
@@ -60,7 +60,6 @@ def test_open_file(self):
path.open()
def test_join_path(self):
- print('test_join_path')
prefix = os.path.abspath(os.path.join(__file__, '..'))
data01 = os.path.join(prefix, 'data01')
path = MultiplexedPath(self.folder, data01)
diff --git a/Lib/test/test_importlib/test_util.py b/Lib/test/test_importlib/test_util.py
index 17de46666acba..104452267c067 100644
--- a/Lib/test/test_importlib/test_util.py
+++ b/Lib/test/test_importlib/test_util.py
@@ -845,22 +845,20 @@ class MagicNumberTests(unittest.TestCase):
'only applies to candidate or final python release levels'
)
def test_magic_number(self):
- """
- Each python minor release should generally have a MAGIC_NUMBER
- that does not change once the release reaches candidate status.
-
- Once a release reaches candidate status, the value of the constant
- EXPECTED_MAGIC_NUMBER in this test should be changed.
- This test will then check that the actual MAGIC_NUMBER matches
- the expected value for the release.
-
- In exceptional cases, it may be required to change the MAGIC_NUMBER
- for a maintenance release. In this case the change should be
- discussed in python-dev. If a change is required, community
- stakeholders such as OS package maintainers must be notified
- in advance. Such exceptional releases will then require an
- adjustment to this test case.
- """
+ # Each python minor release should generally have a MAGIC_NUMBER
+ # that does not change once the release reaches candidate status.
+
+ # Once a release reaches candidate status, the value of the constant
+ # EXPECTED_MAGIC_NUMBER in this test should be changed.
+ # This test will then check that the actual MAGIC_NUMBER matches
+ # the expected value for the release.
+
+ # In exceptional cases, it may be required to change the MAGIC_NUMBER
+ # for a maintenance release. In this case the change should be
+ # discussed in python-dev. If a change is required, community
+ # stakeholders such as OS package maintainers must be notified
+ # in advance. Such exceptional releases will then require an
+ # adjustment to this test case.
EXPECTED_MAGIC_NUMBER = 3413
actual = int.from_bytes(importlib.util.MAGIC_NUMBER[:2], 'little')
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-31-09-12-54.bpo-43672.jTT5uG.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-31-09-12-54.bpo-43672.jTT5uG.rst
new file mode 100644
index 0000000000000..3bb1a66d0f7fd
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-03-31-09-12-54.bpo-43672.jTT5uG.rst
@@ -0,0 +1 @@
+Raise ImportWarning when calling find_loader().
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 0fac913f4cfea..465ec0cd6dd0e 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -2156,529 +2156,534 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
105,109,112,111,114,116,101,114,95,99,97,99,104,101,99,3,
0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,
- 0,0,0,67,0,0,0,115,110,0,0,0,116,0,124,2,
- 100,1,131,2,114,13,124,2,160,1,124,1,161,1,92,2,
- 125,3,125,4,110,21,116,2,160,3,124,2,161,1,155,0,
- 100,2,157,2,125,5,116,4,160,5,124,5,116,6,161,2,
- 1,0,124,2,160,7,124,1,161,1,125,3,103,0,125,4,
- 124,3,100,0,117,1,114,44,116,2,160,8,124,1,124,3,
- 161,2,83,0,116,2,160,9,124,1,100,0,161,2,125,6,
- 124,4,124,6,95,10,124,6,83,0,41,3,78,114,148,0,
- 0,0,122,53,46,102,105,110,100,95,115,112,101,99,40,41,
- 32,110,111,116,32,102,111,117,110,100,59,32,102,97,108,108,
- 105,110,103,32,98,97,99,107,32,116,111,32,102,105,110,100,
- 95,109,111,100,117,108,101,40,41,41,11,114,140,0,0,0,
- 114,148,0,0,0,114,146,0,0,0,90,12,95,111,98,106,
- 101,99,116,95,110,97,109,101,114,88,0,0,0,114,89,0,
- 0,0,114,149,0,0,0,114,217,0,0,0,114,212,0,0,
- 0,114,194,0,0,0,114,189,0,0,0,41,7,114,209,0,
- 0,0,114,150,0,0,0,114,68,1,0,0,114,151,0,0,
- 0,114,152,0,0,0,114,153,0,0,0,114,198,0,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
- 16,95,108,101,103,97,99,121,95,103,101,116,95,115,112,101,
- 99,41,5,0,0,115,24,0,0,0,10,4,16,1,16,2,
- 12,2,10,1,4,1,8,1,12,1,12,1,6,1,4,1,
- 255,128,122,27,80,97,116,104,70,105,110,100,101,114,46,95,
- 108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,78,
- 99,4,0,0,0,0,0,0,0,0,0,0,0,9,0,0,
- 0,5,0,0,0,67,0,0,0,115,166,0,0,0,103,0,
- 125,4,124,2,68,0,93,67,125,5,116,0,124,5,116,1,
- 116,2,102,2,131,2,115,14,113,4,124,0,160,3,124,5,
- 161,1,125,6,124,6,100,1,117,1,114,71,116,4,124,6,
- 100,2,131,2,114,35,124,6,160,5,124,1,124,3,161,2,
- 125,7,110,6,124,0,160,6,124,1,124,6,161,2,125,7,
- 124,7,100,1,117,0,114,46,113,4,124,7,106,7,100,1,
- 117,1,114,55,124,7,2,0,1,0,83,0,124,7,106,8,
- 125,8,124,8,100,1,117,0,114,66,116,9,100,3,131,1,
- 130,1,124,4,160,10,124,8,161,1,1,0,113,4,116,11,
- 160,12,124,1,100,1,161,2,125,7,124,4,124,7,95,8,
- 124,7,83,0,41,4,122,63,70,105,110,100,32,116,104,101,
- 32,108,111,97,100,101,114,32,111,114,32,110,97,109,101,115,
- 112,97,99,101,95,112,97,116,104,32,102,111,114,32,116,104,
- 105,115,32,109,111,100,117,108,101,47,112,97,99,107,97,103,
- 101,32,110,97,109,101,46,78,114,214,0,0,0,122,19,115,
- 112,101,99,32,109,105,115,115,105,110,103,32,108,111,97,100,
- 101,114,41,13,114,172,0,0,0,114,97,0,0,0,218,5,
- 98,121,116,101,115,114,73,1,0,0,114,140,0,0,0,114,
- 214,0,0,0,114,74,1,0,0,114,151,0,0,0,114,189,
- 0,0,0,114,129,0,0,0,114,178,0,0,0,114,146,0,
- 0,0,114,194,0,0,0,41,9,114,209,0,0,0,114,150,
- 0,0,0,114,58,0,0,0,114,213,0,0,0,218,14,110,
- 97,109,101,115,112,97,99,101,95,112,97,116,104,90,5,101,
- 110,116,114,121,114,68,1,0,0,114,198,0,0,0,114,152,
+ 0,0,0,67,0,0,0,115,138,0,0,0,116,0,124,2,
+ 100,1,131,2,114,27,116,1,160,2,124,2,161,1,155,0,
+ 100,2,157,2,125,3,116,3,160,4,124,3,116,5,161,2,
+ 1,0,124,2,160,6,124,1,161,1,92,2,125,4,125,5,
+ 110,21,116,1,160,2,124,2,161,1,155,0,100,3,157,2,
+ 125,3,116,3,160,4,124,3,116,5,161,2,1,0,124,2,
+ 160,7,124,1,161,1,125,4,103,0,125,5,124,4,100,0,
+ 117,1,114,58,116,1,160,8,124,1,124,4,161,2,83,0,
+ 116,1,160,9,124,1,100,0,161,2,125,6,124,5,124,6,
+ 95,10,124,6,83,0,41,4,78,114,148,0,0,0,122,53,
+ 46,102,105,110,100,95,115,112,101,99,40,41,32,110,111,116,
+ 32,102,111,117,110,100,59,32,102,97,108,108,105,110,103,32,
+ 98,97,99,107,32,116,111,32,102,105,110,100,95,108,111,97,
+ 100,101,114,40,41,122,53,46,102,105,110,100,95,115,112,101,
+ 99,40,41,32,110,111,116,32,102,111,117,110,100,59,32,102,
+ 97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,102,
+ 105,110,100,95,109,111,100,117,108,101,40,41,41,11,114,140,
+ 0,0,0,114,146,0,0,0,90,12,95,111,98,106,101,99,
+ 116,95,110,97,109,101,114,88,0,0,0,114,89,0,0,0,
+ 114,149,0,0,0,114,148,0,0,0,114,217,0,0,0,114,
+ 212,0,0,0,114,194,0,0,0,114,189,0,0,0,41,7,
+ 114,209,0,0,0,114,150,0,0,0,114,68,1,0,0,114,
+ 153,0,0,0,114,151,0,0,0,114,152,0,0,0,114,198,
0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,9,95,103,101,116,95,115,112,101,99,59,5,0,
- 0,115,44,0,0,0,4,5,8,1,14,1,2,1,10,1,
- 8,1,10,1,14,1,12,2,8,1,2,1,10,1,8,1,
- 6,1,8,1,8,1,10,5,2,128,12,2,6,1,4,1,
- 255,128,122,20,80,97,116,104,70,105,110,100,101,114,46,95,
- 103,101,116,95,115,112,101,99,99,4,0,0,0,0,0,0,
- 0,0,0,0,0,6,0,0,0,5,0,0,0,67,0,0,
- 0,115,94,0,0,0,124,2,100,1,117,0,114,7,116,0,
- 106,1,125,2,124,0,160,2,124,1,124,2,124,3,161,3,
- 125,4,124,4,100,1,117,0,114,20,100,1,83,0,124,4,
- 106,3,100,1,117,0,114,45,124,4,106,4,125,5,124,5,
- 114,43,100,1,124,4,95,5,116,6,124,1,124,5,124,0,
- 106,2,131,3,124,4,95,4,124,4,83,0,100,1,83,0,
- 124,4,83,0,41,2,122,141,84,114,121,32,116,111,32,102,
- 105,110,100,32,97,32,115,112,101,99,32,102,111,114,32,39,
- 102,117,108,108,110,97,109,101,39,32,111,110,32,115,121,115,
- 46,112,97,116,104,32,111,114,32,39,112,97,116,104,39,46,
- 10,10,32,32,32,32,32,32,32,32,84,104,101,32,115,101,
- 97,114,99,104,32,105,115,32,98,97,115,101,100,32,111,110,
- 32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,
- 97,110,100,32,115,121,115,46,112,97,116,104,95,105,109,112,
- 111,114,116,101,114,95,99,97,99,104,101,46,10,32,32,32,
- 32,32,32,32,32,78,41,7,114,16,0,0,0,114,58,0,
- 0,0,114,77,1,0,0,114,151,0,0,0,114,189,0,0,
- 0,114,192,0,0,0,114,33,1,0,0,41,6,114,209,0,
- 0,0,114,150,0,0,0,114,58,0,0,0,114,213,0,0,
- 0,114,198,0,0,0,114,76,1,0,0,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,214,0,0,0,91,
- 5,0,0,115,28,0,0,0,8,6,6,1,14,1,8,1,
- 4,1,10,1,6,1,4,1,6,3,16,1,4,1,4,2,
- 4,2,255,128,122,20,80,97,116,104,70,105,110,100,101,114,
- 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
- 0,0,0,115,30,0,0,0,124,0,160,0,124,1,124,2,
- 161,2,125,3,124,3,100,1,117,0,114,12,100,1,83,0,
- 124,3,106,1,83,0,41,2,122,170,102,105,110,100,32,116,
- 104,101,32,109,111,100,117,108,101,32,111,110,32,115,121,115,
- 46,112,97,116,104,32,111,114,32,39,112,97,116,104,39,32,
- 98,97,115,101,100,32,111,110,32,115,121,115,46,112,97,116,
- 104,95,104,111,111,107,115,32,97,110,100,10,32,32,32,32,
- 32,32,32,32,115,121,115,46,112,97,116,104,95,105,109,112,
- 111,114,116,101,114,95,99,97,99,104,101,46,10,10,32,32,
- 32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,
- 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,
- 32,32,85,115,101,32,102,105,110,100,95,115,112,101,99,40,
- 41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,
- 32,32,32,32,78,114,215,0,0,0,114,216,0,0,0,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,217,
- 0,0,0,115,5,0,0,115,10,0,0,0,12,8,8,1,
- 4,1,6,1,255,128,122,22,80,97,116,104,70,105,110,100,
- 101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,0,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
- 0,0,0,79,0,0,0,115,28,0,0,0,100,1,100,2,
- 108,0,109,1,125,2,1,0,124,2,106,2,124,0,105,0,
- 124,1,164,1,142,1,83,0,41,4,97,32,1,0,0,10,
- 32,32,32,32,32,32,32,32,70,105,110,100,32,100,105,115,
- 116,114,105,98,117,116,105,111,110,115,46,10,10,32,32,32,
- 32,32,32,32,32,82,101,116,117,114,110,32,97,110,32,105,
- 116,101,114,97,98,108,101,32,111,102,32,97,108,108,32,68,
- 105,115,116,114,105,98,117,116,105,111,110,32,105,110,115,116,
- 97,110,99,101,115,32,99,97,112,97,98,108,101,32,111,102,
- 10,32,32,32,32,32,32,32,32,108,111,97,100,105,110,103,
- 32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,
- 114,32,112,97,99,107,97,103,101,115,32,109,97,116,99,104,
- 105,110,103,32,96,96,99,111,110,116,101,120,116,46,110,97,
- 109,101,96,96,10,32,32,32,32,32,32,32,32,40,111,114,
- 32,97,108,108,32,110,97,109,101,115,32,105,102,32,96,96,
- 78,111,110,101,96,96,32,105,110,100,105,99,97,116,101,100,
- 41,32,97,108,111,110,103,32,116,104,101,32,112,97,116,104,
- 115,32,105,110,32,116,104,101,32,108,105,115,116,10,32,32,
- 32,32,32,32,32,32,111,102,32,100,105,114,101,99,116,111,
- 114,105,101,115,32,96,96,99,111,110,116,101,120,116,46,112,
- 97,116,104,96,96,46,10,32,32,32,32,32,32,32,32,114,
- 0,0,0,0,41,1,218,18,77,101,116,97,100,97,116,97,
- 80,97,116,104,70,105,110,100,101,114,78,41,3,90,18,105,
- 109,112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,
- 97,114,78,1,0,0,218,18,102,105,110,100,95,100,105,115,
- 116,114,105,98,117,116,105,111,110,115,41,3,114,131,0,0,
- 0,114,132,0,0,0,114,78,1,0,0,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,79,1,0,0,128,
- 5,0,0,115,6,0,0,0,12,10,16,1,255,128,122,29,
- 80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,
- 100,105,115,116,114,105,98,117,116,105,111,110,115,41,1,78,
- 41,2,78,78,41,1,78,41,14,114,137,0,0,0,114,136,
- 0,0,0,114,138,0,0,0,114,139,0,0,0,114,220,0,
- 0,0,114,64,1,0,0,114,70,1,0,0,114,221,0,0,
- 0,114,73,1,0,0,114,74,1,0,0,114,77,1,0,0,
- 114,214,0,0,0,114,217,0,0,0,114,79,1,0,0,114,
- 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,114,63,1,0,0,248,4,0,0,115,38,0,0,
- 0,8,0,4,2,2,2,10,1,2,9,10,1,2,12,10,
- 1,2,21,10,1,2,17,12,1,2,31,12,1,2,23,12,
- 1,2,12,14,1,255,128,114,63,1,0,0,99,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,64,0,0,0,115,90,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,
- 100,5,132,0,90,5,101,6,90,7,100,6,100,7,132,0,
- 90,8,100,8,100,9,132,0,90,9,100,19,100,11,100,12,
- 132,1,90,10,100,13,100,14,132,0,90,11,101,12,100,15,
- 100,16,132,0,131,1,90,13,100,17,100,18,132,0,90,14,
- 100,10,83,0,41,20,218,10,70,105,108,101,70,105,110,100,
- 101,114,122,172,70,105,108,101,45,98,97,115,101,100,32,102,
- 105,110,100,101,114,46,10,10,32,32,32,32,73,110,116,101,
- 114,97,99,116,105,111,110,115,32,119,105,116,104,32,116,104,
- 101,32,102,105,108,101,32,115,121,115,116,101,109,32,97,114,
- 101,32,99,97,99,104,101,100,32,102,111,114,32,112,101,114,
- 102,111,114,109,97,110,99,101,44,32,98,101,105,110,103,10,
- 32,32,32,32,114,101,102,114,101,115,104,101,100,32,119,104,
- 101,110,32,116,104,101,32,100,105,114,101,99,116,111,114,121,
- 32,116,104,101,32,102,105,110,100,101,114,32,105,115,32,104,
- 97,110,100,108,105,110,103,32,104,97,115,32,98,101,101,110,
- 32,109,111,100,105,102,105,101,100,46,10,10,32,32,32,32,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
- 0,6,0,0,0,7,0,0,0,115,84,0,0,0,103,0,
- 125,3,124,2,68,0,93,16,92,2,137,0,125,4,124,3,
- 160,0,135,0,102,1,100,1,100,2,132,8,124,4,68,0,
- 131,1,161,1,1,0,113,4,124,3,124,0,95,1,124,1,
- 112,27,100,3,124,0,95,2,100,4,124,0,95,3,116,4,
- 131,0,124,0,95,5,116,4,131,0,124,0,95,6,100,5,
- 83,0,41,6,122,154,73,110,105,116,105,97,108,105,122,101,
- 32,119,105,116,104,32,116,104,101,32,112,97,116,104,32,116,
- 111,32,115,101,97,114,99,104,32,111,110,32,97,110,100,32,
- 97,32,118,97,114,105,97,98,108,101,32,110,117,109,98,101,
- 114,32,111,102,10,32,32,32,32,32,32,32,32,50,45,116,
- 117,112,108,101,115,32,99,111,110,116,97,105,110,105,110,103,
- 32,116,104,101,32,108,111,97,100,101,114,32,97,110,100,32,
- 116,104,101,32,102,105,108,101,32,115,117,102,102,105,120,101,
- 115,32,116,104,101,32,108,111,97,100,101,114,10,32,32,32,
- 32,32,32,32,32,114,101,99,111,103,110,105,122,101,115,46,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,3,0,0,0,51,0,0,0,115,22,0,0,0,124,0,
- 93,7,125,1,124,1,136,0,102,2,86,0,1,0,113,1,
- 100,0,83,0,114,121,0,0,0,114,7,0,0,0,114,29,
- 1,0,0,169,1,114,151,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,9,0,0,0,157,5,0,0,114,14,0,
- 0,0,122,38,70,105,108,101,70,105,110,100,101,114,46,95,
- 95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,62,
- 46,60,103,101,110,101,120,112,114,62,114,86,0,0,0,114,
- 116,0,0,0,78,41,7,114,178,0,0,0,218,8,95,108,
- 111,97,100,101,114,115,114,58,0,0,0,218,11,95,112,97,
- 116,104,95,109,116,105,109,101,218,3,115,101,116,218,11,95,
- 112,97,116,104,95,99,97,99,104,101,218,19,95,114,101,108,
- 97,120,101,100,95,112,97,116,104,95,99,97,99,104,101,41,
- 5,114,130,0,0,0,114,58,0,0,0,218,14,108,111,97,
- 100,101,114,95,100,101,116,97,105,108,115,90,7,108,111,97,
- 100,101,114,115,114,200,0,0,0,114,7,0,0,0,114,81,
- 1,0,0,114,8,0,0,0,114,223,0,0,0,151,5,0,
- 0,115,18,0,0,0,4,4,12,1,26,1,6,1,10,2,
- 6,1,8,1,12,1,255,128,122,19,70,105,108,101,70,105,
- 110,100,101,114,46,95,95,105,110,105,116,95,95,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,
- 0,0,67,0,0,0,115,10,0,0,0,100,1,124,0,95,
- 0,100,2,83,0,41,3,122,31,73,110,118,97,108,105,100,
- 97,116,101,32,116,104,101,32,100,105,114,101,99,116,111,114,
- 121,32,109,116,105,109,101,46,114,116,0,0,0,78,41,1,
- 114,83,1,0,0,114,8,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,64,1,0,0,165,5,
- 0,0,114,69,0,0,0,122,28,70,105,108,101,70,105,110,
- 100,101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,
- 97,99,104,101,115,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,42,
- 0,0,0,124,0,160,0,124,1,161,1,125,2,124,2,100,
- 1,117,0,114,13,100,1,103,0,102,2,83,0,124,2,106,
- 1,124,2,106,2,112,19,103,0,102,2,83,0,41,2,122,
- 197,84,114,121,32,116,111,32,102,105,110,100,32,97,32,108,
- 111,97,100,101,114,32,102,111,114,32,116,104,101,32,115,112,
- 101,99,105,102,105,101,100,32,109,111,100,117,108,101,44,32,
- 111,114,32,116,104,101,32,110,97,109,101,115,112,97,99,101,
- 10,32,32,32,32,32,32,32,32,112,97,99,107,97,103,101,
- 32,112,111,114,116,105,111,110,115,46,32,82,101,116,117,114,
- 110,115,32,40,108,111,97,100,101,114,44,32,108,105,115,116,
- 45,111,102,45,112,111,114,116,105,111,110,115,41,46,10,10,
- 32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,
- 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
- 100,46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,
- 99,40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,
- 32,32,32,32,32,32,78,41,3,114,214,0,0,0,114,151,
- 0,0,0,114,189,0,0,0,41,3,114,130,0,0,0,114,
- 150,0,0,0,114,198,0,0,0,114,7,0,0,0,114,7,
- 0,0,0,114,8,0,0,0,114,148,0,0,0,171,5,0,
- 0,115,10,0,0,0,10,7,8,1,8,1,16,1,255,128,
- 122,22,70,105,108,101,70,105,110,100,101,114,46,102,105,110,
- 100,95,108,111,97,100,101,114,99,6,0,0,0,0,0,0,
- 0,0,0,0,0,7,0,0,0,6,0,0,0,67,0,0,
- 0,115,26,0,0,0,124,1,124,2,124,3,131,2,125,6,
- 116,0,124,2,124,3,124,6,124,4,100,1,141,4,83,0,
- 41,2,78,114,188,0,0,0,41,1,114,201,0,0,0,41,
- 7,114,130,0,0,0,114,199,0,0,0,114,150,0,0,0,
- 114,58,0,0,0,90,4,115,109,115,108,114,213,0,0,0,
- 114,151,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,77,1,0,0,183,5,0,0,115,10,0,
- 0,0,10,1,8,1,2,1,6,255,255,128,122,20,70,105,
- 108,101,70,105,110,100,101,114,46,95,103,101,116,95,115,112,
- 101,99,78,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 14,0,0,0,8,0,0,0,67,0,0,0,115,92,1,0,
- 0,100,1,125,3,124,1,160,0,100,2,161,1,100,3,25,
- 0,125,4,122,12,116,1,124,0,106,2,112,17,116,3,160,
- 4,161,0,131,1,106,5,125,5,87,0,110,9,4,0,116,
- 6,121,173,1,0,1,0,1,0,100,4,125,5,89,0,124,
- 5,124,0,106,7,107,3,114,43,124,0,160,8,161,0,1,
- 0,124,5,124,0,95,7,116,9,131,0,114,54,124,0,106,
- 10,125,6,124,4,160,11,161,0,125,7,110,5,124,0,106,
- 12,125,6,124,4,125,7,124,7,124,6,118,0,114,106,116,
- 13,124,0,106,2,124,4,131,2,125,8,124,0,106,14,68,
- 0,93,29,92,2,125,9,125,10,100,5,124,9,23,0,125,
- 11,116,13,124,8,124,11,131,2,125,12,116,15,124,12,131,
- 1,114,101,124,0,160,16,124,10,124,1,124,12,124,8,103,
- 1,124,2,161,5,2,0,1,0,83,0,113,72,116,17,124,
- 8,131,1,125,3,124,0,106,14,68,0,93,41,92,2,125,
- 9,125,10,116,13,124,0,106,2,124,4,124,9,23,0,131,
- 2,125,12,116,18,106,19,100,6,124,12,100,3,100,7,141,
- 3,1,0,124,7,124,9,23,0,124,6,118,0,114,150,116,
- 15,124,12,131,1,114,150,124,0,160,16,124,10,124,1,124,
- 12,100,8,124,2,161,5,2,0,1,0,83,0,113,109,124,
- 3,114,171,116,18,160,19,100,9,124,8,161,2,1,0,116,
- 18,160,20,124,1,100,8,161,2,125,13,124,8,103,1,124,
- 13,95,21,124,13,83,0,100,8,83,0,119,0,41,10,122,
- 111,84,114,121,32,116,111,32,102,105,110,100,32,97,32,115,
- 112,101,99,32,102,111,114,32,116,104,101,32,115,112,101,99,
- 105,102,105,101,100,32,109,111,100,117,108,101,46,10,10,32,
- 32,32,32,32,32,32,32,82,101,116,117,114,110,115,32,116,
- 104,101,32,109,97,116,99,104,105,110,103,32,115,112,101,99,
- 44,32,111,114,32,78,111,110,101,32,105,102,32,110,111,116,
- 32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,
- 70,114,86,0,0,0,114,45,0,0,0,114,116,0,0,0,
- 114,223,0,0,0,122,9,116,114,121,105,110,103,32,123,125,
- 41,1,90,9,118,101,114,98,111,115,105,116,121,78,122,25,
- 112,111,115,115,105,98,108,101,32,110,97,109,101,115,112,97,
- 99,101,32,102,111,114,32,123,125,41,22,114,55,0,0,0,
- 114,63,0,0,0,114,58,0,0,0,114,19,0,0,0,114,
- 70,0,0,0,114,22,1,0,0,114,64,0,0,0,114,83,
- 1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,101,
- 114,22,0,0,0,114,86,1,0,0,114,117,0,0,0,114,
- 85,1,0,0,114,54,0,0,0,114,82,1,0,0,114,68,
- 0,0,0,114,77,1,0,0,114,71,0,0,0,114,146,0,
- 0,0,114,160,0,0,0,114,194,0,0,0,114,189,0,0,
- 0,41,14,114,130,0,0,0,114,150,0,0,0,114,213,0,
- 0,0,90,12,105,115,95,110,97,109,101,115,112,97,99,101,
- 90,11,116,97,105,108,95,109,111,100,117,108,101,114,180,0,
- 0,0,90,5,99,97,99,104,101,90,12,99,97,99,104,101,
- 95,109,111,100,117,108,101,90,9,98,97,115,101,95,112,97,
- 116,104,114,30,1,0,0,114,199,0,0,0,90,13,105,110,
- 105,116,95,102,105,108,101,110,97,109,101,90,9,102,117,108,
- 108,95,112,97,116,104,114,198,0,0,0,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,214,0,0,0,188,
- 5,0,0,115,80,0,0,0,4,5,14,1,2,1,24,1,
- 12,1,6,1,10,1,8,1,6,1,6,2,6,1,10,1,
- 6,2,4,1,8,2,12,1,14,1,8,1,10,1,8,1,
- 24,1,2,255,8,5,14,2,16,1,16,1,12,1,8,1,
- 10,1,4,1,8,255,2,128,4,2,12,1,12,1,8,1,
- 4,1,4,1,2,219,255,128,122,20,70,105,108,101,70,105,
- 110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,
- 0,0,0,67,0,0,0,115,190,0,0,0,124,0,106,0,
- 125,1,122,11,116,1,160,2,124,1,112,11,116,1,160,3,
- 161,0,161,1,125,2,87,0,110,12,4,0,116,4,116,5,
- 116,6,102,3,121,94,1,0,1,0,1,0,103,0,125,2,
- 89,0,116,7,106,8,160,9,100,1,161,1,115,39,116,10,
- 124,2,131,1,124,0,95,11,110,37,116,10,131,0,125,3,
- 124,2,68,0,93,28,125,4,124,4,160,12,100,2,161,1,
- 92,3,125,5,125,6,125,7,124,6,114,65,100,3,160,13,
- 124,5,124,7,160,14,161,0,161,2,125,8,110,2,124,5,
- 125,8,124,3,160,15,124,8,161,1,1,0,113,44,124,3,
- 124,0,95,11,116,7,106,8,160,9,116,16,161,1,114,92,
- 100,4,100,5,132,0,124,2,68,0,131,1,124,0,95,17,
- 100,6,83,0,100,6,83,0,119,0,41,7,122,68,70,105,
- 108,108,32,116,104,101,32,99,97,99,104,101,32,111,102,32,
- 112,111,116,101,110,116,105,97,108,32,109,111,100,117,108,101,
- 115,32,97,110,100,32,112,97,99,107,97,103,101,115,32,102,
- 111,114,32,116,104,105,115,32,100,105,114,101,99,116,111,114,
- 121,46,114,15,0,0,0,114,86,0,0,0,114,76,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,4,0,0,0,83,0,0,0,115,20,0,0,0,104,
- 0,124,0,93,6,125,1,124,1,160,0,161,0,146,2,113,
- 2,83,0,114,7,0,0,0,41,1,114,117,0,0,0,41,
- 2,114,5,0,0,0,90,2,102,110,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,13,0,0,0,9,6,
- 0,0,115,4,0,0,0,20,0,255,128,122,41,70,105,108,
- 101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,
- 99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,101,
- 116,99,111,109,112,62,78,41,18,114,58,0,0,0,114,19,
- 0,0,0,90,7,108,105,115,116,100,105,114,114,70,0,0,
- 0,114,71,1,0,0,218,15,80,101,114,109,105,115,115,105,
- 111,110,69,114,114,111,114,218,18,78,111,116,65,68,105,114,
- 101,99,116,111,114,121,69,114,114,111,114,114,16,0,0,0,
- 114,26,0,0,0,114,27,0,0,0,114,84,1,0,0,114,
- 85,1,0,0,114,112,0,0,0,114,77,0,0,0,114,117,
- 0,0,0,218,3,97,100,100,114,28,0,0,0,114,86,1,
- 0,0,41,9,114,130,0,0,0,114,58,0,0,0,90,8,
- 99,111,110,116,101,110,116,115,90,21,108,111,119,101,114,95,
- 115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,
- 56,1,0,0,114,128,0,0,0,114,40,1,0,0,114,30,
- 1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,88,1,0,
- 0,236,5,0,0,115,40,0,0,0,6,2,2,1,22,1,
- 18,1,6,3,12,3,12,1,6,7,8,1,16,1,4,1,
- 18,1,4,2,12,1,6,1,12,1,20,1,4,255,2,233,
- 255,128,122,22,70,105,108,101,70,105,110,100,101,114,46,95,
- 102,105,108,108,95,99,97,99,104,101,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,7,
- 0,0,0,115,18,0,0,0,135,0,135,1,102,2,100,1,
- 100,2,132,8,125,2,124,2,83,0,41,4,97,20,1,0,
- 0,65,32,99,108,97,115,115,32,109,101,116,104,111,100,32,
- 119,104,105,99,104,32,114,101,116,117,114,110,115,32,97,32,
- 99,108,111,115,117,114,101,32,116,111,32,117,115,101,32,111,
- 110,32,115,121,115,46,112,97,116,104,95,104,111,111,107,10,
- 32,32,32,32,32,32,32,32,119,104,105,99,104,32,119,105,
- 108,108,32,114,101,116,117,114,110,32,97,110,32,105,110,115,
- 116,97,110,99,101,32,117,115,105,110,103,32,116,104,101,32,
- 115,112,101,99,105,102,105,101,100,32,108,111,97,100,101,114,
- 115,32,97,110,100,32,116,104,101,32,112,97,116,104,10,32,
- 32,32,32,32,32,32,32,99,97,108,108,101,100,32,111,110,
- 32,116,104,101,32,99,108,111,115,117,114,101,46,10,10,32,
- 32,32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,
- 116,104,32,99,97,108,108,101,100,32,111,110,32,116,104,101,
- 32,99,108,111,115,117,114,101,32,105,115,32,110,111,116,32,
- 97,32,100,105,114,101,99,116,111,114,121,44,32,73,109,112,
- 111,114,116,69,114,114,111,114,32,105,115,10,32,32,32,32,
- 32,32,32,32,114,97,105,115,101,100,46,10,10,32,32,32,
- 32,32,32,32,32,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,4,0,0,0,19,0,0,0,115,36,
- 0,0,0,116,0,124,0,131,1,115,10,116,1,100,1,124,
- 0,100,2,141,2,130,1,136,0,124,0,103,1,136,1,162,
- 1,82,0,142,0,83,0,41,4,122,45,80,97,116,104,32,
- 104,111,111,107,32,102,111,114,32,105,109,112,111,114,116,108,
- 105,98,46,109,97,99,104,105,110,101,114,121,46,70,105,108,
- 101,70,105,110,100,101,114,46,122,30,111,110,108,121,32,100,
- 105,114,101,99,116,111,114,105,101,115,32,97,114,101,32,115,
- 117,112,112,111,114,116,101,100,114,62,0,0,0,78,41,2,
- 114,71,0,0,0,114,129,0,0,0,114,62,0,0,0,169,
- 2,114,209,0,0,0,114,87,1,0,0,114,7,0,0,0,
- 114,8,0,0,0,218,24,112,97,116,104,95,104,111,111,107,
- 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,21,
- 6,0,0,115,8,0,0,0,8,2,12,1,16,1,255,128,
- 122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,116,
- 104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,46,
- 112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,105,
- 108,101,70,105,110,100,101,114,78,114,7,0,0,0,41,3,
- 114,209,0,0,0,114,87,1,0,0,114,93,1,0,0,114,
- 7,0,0,0,114,92,1,0,0,114,8,0,0,0,218,9,
- 112,97,116,104,95,104,111,111,107,11,6,0,0,115,6,0,
- 0,0,14,10,4,6,255,128,122,20,70,105,108,101,70,105,
- 110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
- 0,0,0,67,0,0,0,114,53,1,0,0,41,2,78,122,
- 16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,125,
- 41,41,2,114,77,0,0,0,114,58,0,0,0,114,8,1,
+ 0,0,218,16,95,108,101,103,97,99,121,95,103,101,116,95,
+ 115,112,101,99,41,5,0,0,115,28,0,0,0,10,4,16,
+ 1,12,2,16,1,16,2,12,2,10,1,4,1,8,1,12,
+ 1,12,1,6,1,4,1,255,128,122,27,80,97,116,104,70,
+ 105,110,100,101,114,46,95,108,101,103,97,99,121,95,103,101,
+ 116,95,115,112,101,99,78,99,4,0,0,0,0,0,0,0,
+ 0,0,0,0,9,0,0,0,5,0,0,0,67,0,0,0,
+ 115,166,0,0,0,103,0,125,4,124,2,68,0,93,67,125,
+ 5,116,0,124,5,116,1,116,2,102,2,131,2,115,14,113,
+ 4,124,0,160,3,124,5,161,1,125,6,124,6,100,1,117,
+ 1,114,71,116,4,124,6,100,2,131,2,114,35,124,6,160,
+ 5,124,1,124,3,161,2,125,7,110,6,124,0,160,6,124,
+ 1,124,6,161,2,125,7,124,7,100,1,117,0,114,46,113,
+ 4,124,7,106,7,100,1,117,1,114,55,124,7,2,0,1,
+ 0,83,0,124,7,106,8,125,8,124,8,100,1,117,0,114,
+ 66,116,9,100,3,131,1,130,1,124,4,160,10,124,8,161,
+ 1,1,0,113,4,116,11,160,12,124,1,100,1,161,2,125,
+ 7,124,4,124,7,95,8,124,7,83,0,41,4,122,63,70,
+ 105,110,100,32,116,104,101,32,108,111,97,100,101,114,32,111,
+ 114,32,110,97,109,101,115,112,97,99,101,95,112,97,116,104,
+ 32,102,111,114,32,116,104,105,115,32,109,111,100,117,108,101,
+ 47,112,97,99,107,97,103,101,32,110,97,109,101,46,78,114,
+ 214,0,0,0,122,19,115,112,101,99,32,109,105,115,115,105,
+ 110,103,32,108,111,97,100,101,114,41,13,114,172,0,0,0,
+ 114,97,0,0,0,218,5,98,121,116,101,115,114,73,1,0,
+ 0,114,140,0,0,0,114,214,0,0,0,114,74,1,0,0,
+ 114,151,0,0,0,114,189,0,0,0,114,129,0,0,0,114,
+ 178,0,0,0,114,146,0,0,0,114,194,0,0,0,41,9,
+ 114,209,0,0,0,114,150,0,0,0,114,58,0,0,0,114,
+ 213,0,0,0,218,14,110,97,109,101,115,112,97,99,101,95,
+ 112,97,116,104,90,5,101,110,116,114,121,114,68,1,0,0,
+ 114,198,0,0,0,114,152,0,0,0,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,218,9,95,103,101,116,95,
+ 115,112,101,99,62,5,0,0,115,44,0,0,0,4,5,8,
+ 1,14,1,2,1,10,1,8,1,10,1,14,1,12,2,8,
+ 1,2,1,10,1,8,1,6,1,8,1,8,1,10,5,2,
+ 128,12,2,6,1,4,1,255,128,122,20,80,97,116,104,70,
+ 105,110,100,101,114,46,95,103,101,116,95,115,112,101,99,99,
+ 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
+ 5,0,0,0,67,0,0,0,115,94,0,0,0,124,2,100,
+ 1,117,0,114,7,116,0,106,1,125,2,124,0,160,2,124,
+ 1,124,2,124,3,161,3,125,4,124,4,100,1,117,0,114,
+ 20,100,1,83,0,124,4,106,3,100,1,117,0,114,45,124,
+ 4,106,4,125,5,124,5,114,43,100,1,124,4,95,5,116,
+ 6,124,1,124,5,124,0,106,2,131,3,124,4,95,4,124,
+ 4,83,0,100,1,83,0,124,4,83,0,41,2,122,141,84,
+ 114,121,32,116,111,32,102,105,110,100,32,97,32,115,112,101,
+ 99,32,102,111,114,32,39,102,117,108,108,110,97,109,101,39,
+ 32,111,110,32,115,121,115,46,112,97,116,104,32,111,114,32,
+ 39,112,97,116,104,39,46,10,10,32,32,32,32,32,32,32,
+ 32,84,104,101,32,115,101,97,114,99,104,32,105,115,32,98,
+ 97,115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,
+ 95,104,111,111,107,115,32,97,110,100,32,115,121,115,46,112,
+ 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,
+ 104,101,46,10,32,32,32,32,32,32,32,32,78,41,7,114,
+ 16,0,0,0,114,58,0,0,0,114,77,1,0,0,114,151,
+ 0,0,0,114,189,0,0,0,114,192,0,0,0,114,33,1,
+ 0,0,41,6,114,209,0,0,0,114,150,0,0,0,114,58,
+ 0,0,0,114,213,0,0,0,114,198,0,0,0,114,76,1,
0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,114,54,1,0,0,29,6,0,0,114,47,1,0,0,122,
- 19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,101,
- 112,114,95,95,41,1,78,41,15,114,137,0,0,0,114,136,
- 0,0,0,114,138,0,0,0,114,139,0,0,0,114,223,0,
- 0,0,114,64,1,0,0,114,154,0,0,0,114,217,0,0,
- 0,114,148,0,0,0,114,77,1,0,0,114,214,0,0,0,
- 114,88,1,0,0,114,221,0,0,0,114,94,1,0,0,114,
- 54,1,0,0,114,7,0,0,0,114,7,0,0,0,114,7,
- 0,0,0,114,8,0,0,0,114,80,1,0,0,142,5,0,
- 0,115,26,0,0,0,8,0,4,2,8,7,8,14,4,4,
- 8,2,8,12,10,5,8,48,2,31,10,1,12,17,255,128,
- 114,80,1,0,0,99,4,0,0,0,0,0,0,0,0,0,
- 0,0,6,0,0,0,8,0,0,0,67,0,0,0,115,144,
- 0,0,0,124,0,160,0,100,1,161,1,125,4,124,0,160,
- 0,100,2,161,1,125,5,124,4,115,33,124,5,114,18,124,
- 5,106,1,125,4,110,15,124,2,124,3,107,2,114,28,116,
- 2,124,1,124,2,131,2,125,4,110,5,116,3,124,1,124,
- 2,131,2,125,4,124,5,115,42,116,4,124,1,124,2,124,
- 4,100,3,141,3,125,5,122,19,124,5,124,0,100,2,60,
- 0,124,4,124,0,100,1,60,0,124,2,124,0,100,4,60,
- 0,124,3,124,0,100,5,60,0,87,0,100,0,83,0,4,
- 0,116,5,121,71,1,0,1,0,1,0,89,0,100,0,83,
- 0,119,0,41,6,78,218,10,95,95,108,111,97,100,101,114,
- 95,95,218,8,95,95,115,112,101,99,95,95,114,81,1,0,
- 0,90,8,95,95,102,105,108,101,95,95,90,10,95,95,99,
- 97,99,104,101,100,95,95,41,6,218,3,103,101,116,114,151,
- 0,0,0,114,27,1,0,0,114,21,1,0,0,114,201,0,
- 0,0,218,9,69,120,99,101,112,116,105,111,110,41,6,90,
- 2,110,115,114,128,0,0,0,90,8,112,97,116,104,110,97,
- 109,101,90,9,99,112,97,116,104,110,97,109,101,114,151,0,
- 0,0,114,198,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,218,14,95,102,105,120,95,117,112,95,
- 109,111,100,117,108,101,35,6,0,0,115,38,0,0,0,10,
- 2,10,1,4,1,4,1,8,1,8,1,12,1,10,2,4,
- 1,14,1,2,1,8,1,8,1,8,1,14,1,12,1,6,
- 2,2,254,255,128,114,99,1,0,0,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
- 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0,
- 102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6,
- 102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,2,
- 122,95,82,101,116,117,114,110,115,32,97,32,108,105,115,116,
- 32,111,102,32,102,105,108,101,45,98,97,115,101,100,32,109,
- 111,100,117,108,101,32,108,111,97,100,101,114,115,46,10,10,
- 32,32,32,32,69,97,99,104,32,105,116,101,109,32,105,115,
- 32,97,32,116,117,112,108,101,32,40,108,111,97,100,101,114,
- 44,32,115,117,102,102,105,120,101,115,41,46,10,32,32,32,
- 32,78,41,7,114,17,1,0,0,114,174,0,0,0,218,18,
- 101,120,116,101,110,115,105,111,110,95,115,117,102,102,105,120,
- 101,115,114,21,1,0,0,114,113,0,0,0,114,27,1,0,
- 0,114,101,0,0,0,41,3,90,10,101,120,116,101,110,115,
- 105,111,110,115,90,6,115,111,117,114,99,101,90,8,98,121,
- 116,101,99,111,100,101,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,114,195,0,0,0,58,6,0,0,115,10,
- 0,0,0,12,5,8,1,8,1,10,1,255,128,114,195,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
- 0,0,0,1,0,0,0,67,0,0,0,115,8,0,0,0,
- 124,0,97,0,100,0,83,0,114,121,0,0,0,41,1,114,
- 146,0,0,0,41,1,218,17,95,98,111,111,116,115,116,114,
- 97,112,95,109,111,100,117,108,101,114,7,0,0,0,114,7,
- 0,0,0,114,8,0,0,0,218,21,95,115,101,116,95,98,
- 111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,69,
- 6,0,0,115,4,0,0,0,8,2,255,128,114,102,1,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,4,0,0,0,67,0,0,0,115,50,0,0,0,116,
- 0,124,0,131,1,1,0,116,1,131,0,125,1,116,2,106,
- 3,160,4,116,5,106,6,124,1,142,0,103,1,161,1,1,
- 0,116,2,106,7,160,8,116,9,161,1,1,0,100,1,83,
- 0,41,2,122,41,73,110,115,116,97,108,108,32,116,104,101,
- 32,112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,
- 114,116,32,99,111,109,112,111,110,101,110,116,115,46,78,41,
- 10,114,102,1,0,0,114,195,0,0,0,114,16,0,0,0,
- 114,69,1,0,0,114,178,0,0,0,114,80,1,0,0,114,
- 94,1,0,0,218,9,109,101,116,97,95,112,97,116,104,114,
- 197,0,0,0,114,63,1,0,0,41,2,114,101,1,0,0,
- 90,17,115,117,112,112,111,114,116,101,100,95,108,111,97,100,
- 101,114,115,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,8,95,105,110,115,116,97,108,108,74,6,0,0,
- 115,10,0,0,0,8,2,6,1,20,1,16,1,255,128,114,
- 104,1,0,0,41,1,114,75,0,0,0,41,1,78,41,3,
- 78,78,78,41,2,114,0,0,0,0,114,0,0,0,0,41,
- 1,84,41,1,78,41,1,78,41,83,114,139,0,0,0,114,
- 146,0,0,0,114,174,0,0,0,114,79,0,0,0,114,16,
- 0,0,0,114,88,0,0,0,114,171,0,0,0,114,26,0,
- 0,0,114,218,0,0,0,90,2,110,116,114,19,0,0,0,
- 114,203,0,0,0,90,5,112,111,115,105,120,114,48,0,0,
- 0,218,3,97,108,108,114,51,0,0,0,114,52,0,0,0,
- 114,73,0,0,0,114,29,0,0,0,90,37,95,67,65,83,
- 69,95,73,78,83,69,78,83,73,84,73,86,69,95,80,76,
- 65,84,70,79,82,77,83,95,66,89,84,69,83,95,75,69,
- 89,114,28,0,0,0,114,30,0,0,0,114,22,0,0,0,
- 114,37,0,0,0,114,43,0,0,0,114,46,0,0,0,114,
- 54,0,0,0,114,61,0,0,0,114,63,0,0,0,114,67,
- 0,0,0,114,68,0,0,0,114,71,0,0,0,114,74,0,
- 0,0,114,84,0,0,0,218,4,116,121,112,101,218,8,95,
- 95,99,111,100,101,95,95,114,173,0,0,0,114,35,0,0,
- 0,114,159,0,0,0,114,34,0,0,0,114,40,0,0,0,
- 114,251,0,0,0,114,104,0,0,0,114,100,0,0,0,114,
- 113,0,0,0,114,197,0,0,0,114,100,1,0,0,114,219,
- 0,0,0,114,101,0,0,0,90,23,68,69,66,85,71,95,
- 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
- 83,90,27,79,80,84,73,77,73,90,69,68,95,66,89,84,
- 69,67,79,68,69,95,83,85,70,70,73,88,69,83,114,109,
- 0,0,0,114,114,0,0,0,114,120,0,0,0,114,124,0,
- 0,0,114,126,0,0,0,114,147,0,0,0,114,154,0,0,
- 0,114,163,0,0,0,114,167,0,0,0,114,169,0,0,0,
- 114,176,0,0,0,114,181,0,0,0,114,182,0,0,0,114,
- 187,0,0,0,218,6,111,98,106,101,99,116,114,196,0,0,
- 0,114,201,0,0,0,114,202,0,0,0,114,222,0,0,0,
- 114,236,0,0,0,114,254,0,0,0,114,21,1,0,0,114,
- 27,1,0,0,114,17,1,0,0,114,33,1,0,0,114,59,
- 1,0,0,114,63,1,0,0,114,80,1,0,0,114,99,1,
- 0,0,114,195,0,0,0,114,102,1,0,0,114,104,1,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,218,8,60,109,111,100,117,108,101,62,1,
- 0,0,0,115,172,0,0,0,4,0,4,22,8,3,8,1,
- 8,1,8,1,8,1,10,3,4,1,8,1,10,1,8,2,
- 4,3,10,1,6,2,22,2,8,1,10,1,14,1,4,4,
- 4,1,2,1,2,1,4,255,8,4,6,16,8,3,8,5,
- 8,5,8,6,8,6,8,12,8,10,8,9,8,5,8,7,
- 10,9,10,22,0,127,16,26,12,1,4,2,4,1,6,2,
- 4,1,10,1,8,2,6,2,8,2,16,2,8,71,8,40,
- 8,19,8,12,8,12,8,31,8,17,8,33,8,28,10,24,
- 10,13,10,10,8,11,6,14,4,3,2,1,12,255,14,68,
- 14,64,16,30,0,127,14,17,18,50,18,45,18,25,14,53,
- 14,63,14,49,0,127,14,23,0,127,10,22,8,23,8,11,
- 12,5,255,128,
+ 0,114,214,0,0,0,94,5,0,0,115,28,0,0,0,8,
+ 6,6,1,14,1,8,1,4,1,10,1,6,1,4,1,6,
+ 3,16,1,4,1,4,2,4,2,255,128,122,20,80,97,116,
+ 104,70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,
+ 99,99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,4,0,0,0,67,0,0,0,115,30,0,0,0,124,
+ 0,160,0,124,1,124,2,161,2,125,3,124,3,100,1,117,
+ 0,114,12,100,1,83,0,124,3,106,1,83,0,41,2,122,
+ 170,102,105,110,100,32,116,104,101,32,109,111,100,117,108,101,
+ 32,111,110,32,115,121,115,46,112,97,116,104,32,111,114,32,
+ 39,112,97,116,104,39,32,98,97,115,101,100,32,111,110,32,
+ 115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,97,
+ 110,100,10,32,32,32,32,32,32,32,32,115,121,115,46,112,
+ 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,
+ 104,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
+ 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+ 101,99,97,116,101,100,46,32,32,85,115,101,32,102,105,110,
+ 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,
+ 46,10,10,32,32,32,32,32,32,32,32,78,114,215,0,0,
+ 0,114,216,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,217,0,0,0,118,5,0,0,115,10,
+ 0,0,0,12,8,8,1,4,1,6,1,255,128,122,22,80,
+ 97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,109,
+ 111,100,117,108,101,99,0,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,4,0,0,0,79,0,0,0,115,28,
+ 0,0,0,100,1,100,2,108,0,109,1,125,2,1,0,124,
+ 2,106,2,124,0,105,0,124,1,164,1,142,1,83,0,41,
+ 4,97,32,1,0,0,10,32,32,32,32,32,32,32,32,70,
+ 105,110,100,32,100,105,115,116,114,105,98,117,116,105,111,110,
+ 115,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117,
+ 114,110,32,97,110,32,105,116,101,114,97,98,108,101,32,111,
+ 102,32,97,108,108,32,68,105,115,116,114,105,98,117,116,105,
+ 111,110,32,105,110,115,116,97,110,99,101,115,32,99,97,112,
+ 97,98,108,101,32,111,102,10,32,32,32,32,32,32,32,32,
+ 108,111,97,100,105,110,103,32,116,104,101,32,109,101,116,97,
+ 100,97,116,97,32,102,111,114,32,112,97,99,107,97,103,101,
+ 115,32,109,97,116,99,104,105,110,103,32,96,96,99,111,110,
+ 116,101,120,116,46,110,97,109,101,96,96,10,32,32,32,32,
+ 32,32,32,32,40,111,114,32,97,108,108,32,110,97,109,101,
+ 115,32,105,102,32,96,96,78,111,110,101,96,96,32,105,110,
+ 100,105,99,97,116,101,100,41,32,97,108,111,110,103,32,116,
+ 104,101,32,112,97,116,104,115,32,105,110,32,116,104,101,32,
+ 108,105,115,116,10,32,32,32,32,32,32,32,32,111,102,32,
+ 100,105,114,101,99,116,111,114,105,101,115,32,96,96,99,111,
+ 110,116,101,120,116,46,112,97,116,104,96,96,46,10,32,32,
+ 32,32,32,32,32,32,114,0,0,0,0,41,1,218,18,77,
+ 101,116,97,100,97,116,97,80,97,116,104,70,105,110,100,101,
+ 114,78,41,3,90,18,105,109,112,111,114,116,108,105,98,46,
+ 109,101,116,97,100,97,116,97,114,78,1,0,0,218,18,102,
+ 105,110,100,95,100,105,115,116,114,105,98,117,116,105,111,110,
+ 115,41,3,114,131,0,0,0,114,132,0,0,0,114,78,1,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,114,79,1,0,0,131,5,0,0,115,6,0,0,0,12,
+ 10,16,1,255,128,122,29,80,97,116,104,70,105,110,100,101,
+ 114,46,102,105,110,100,95,100,105,115,116,114,105,98,117,116,
+ 105,111,110,115,41,1,78,41,2,78,78,41,1,78,41,14,
+ 114,137,0,0,0,114,136,0,0,0,114,138,0,0,0,114,
+ 139,0,0,0,114,220,0,0,0,114,64,1,0,0,114,70,
+ 1,0,0,114,221,0,0,0,114,73,1,0,0,114,74,1,
+ 0,0,114,77,1,0,0,114,214,0,0,0,114,217,0,0,
+ 0,114,79,1,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,114,63,1,0,0,248,
+ 4,0,0,115,38,0,0,0,8,0,4,2,2,2,10,1,
+ 2,9,10,1,2,12,10,1,2,21,10,1,2,20,12,1,
+ 2,31,12,1,2,23,12,1,2,12,14,1,255,128,114,63,
+ 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,64,0,0,0,115,90,0,0,
+ 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,
+ 3,132,0,90,4,100,4,100,5,132,0,90,5,101,6,90,
+ 7,100,6,100,7,132,0,90,8,100,8,100,9,132,0,90,
+ 9,100,19,100,11,100,12,132,1,90,10,100,13,100,14,132,
+ 0,90,11,101,12,100,15,100,16,132,0,131,1,90,13,100,
+ 17,100,18,132,0,90,14,100,10,83,0,41,20,218,10,70,
+ 105,108,101,70,105,110,100,101,114,122,172,70,105,108,101,45,
+ 98,97,115,101,100,32,102,105,110,100,101,114,46,10,10,32,
+ 32,32,32,73,110,116,101,114,97,99,116,105,111,110,115,32,
+ 119,105,116,104,32,116,104,101,32,102,105,108,101,32,115,121,
+ 115,116,101,109,32,97,114,101,32,99,97,99,104,101,100,32,
+ 102,111,114,32,112,101,114,102,111,114,109,97,110,99,101,44,
+ 32,98,101,105,110,103,10,32,32,32,32,114,101,102,114,101,
+ 115,104,101,100,32,119,104,101,110,32,116,104,101,32,100,105,
+ 114,101,99,116,111,114,121,32,116,104,101,32,102,105,110,100,
+ 101,114,32,105,115,32,104,97,110,100,108,105,110,103,32,104,
+ 97,115,32,98,101,101,110,32,109,111,100,105,102,105,101,100,
+ 46,10,10,32,32,32,32,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,
+ 115,84,0,0,0,103,0,125,3,124,2,68,0,93,16,92,
+ 2,137,0,125,4,124,3,160,0,135,0,102,1,100,1,100,
+ 2,132,8,124,4,68,0,131,1,161,1,1,0,113,4,124,
+ 3,124,0,95,1,124,1,112,27,100,3,124,0,95,2,100,
+ 4,124,0,95,3,116,4,131,0,124,0,95,5,116,4,131,
+ 0,124,0,95,6,100,5,83,0,41,6,122,154,73,110,105,
+ 116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,101,
+ 32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,32,
+ 111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,108,
+ 101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,32,
+ 32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,110,
+ 116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,100,
+ 101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,32,
+ 115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,97,
+ 100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,111,
+ 103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,3,0,0,0,51,0,0,0,
+ 115,22,0,0,0,124,0,93,7,125,1,124,1,136,0,102,
+ 2,86,0,1,0,113,1,100,0,83,0,114,121,0,0,0,
+ 114,7,0,0,0,114,29,1,0,0,169,1,114,151,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,9,0,0,0,
+ 160,5,0,0,114,14,0,0,0,122,38,70,105,108,101,70,
+ 105,110,100,101,114,46,95,95,105,110,105,116,95,95,46,60,
+ 108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,
+ 62,114,86,0,0,0,114,116,0,0,0,78,41,7,114,178,
+ 0,0,0,218,8,95,108,111,97,100,101,114,115,114,58,0,
+ 0,0,218,11,95,112,97,116,104,95,109,116,105,109,101,218,
+ 3,115,101,116,218,11,95,112,97,116,104,95,99,97,99,104,
+ 101,218,19,95,114,101,108,97,120,101,100,95,112,97,116,104,
+ 95,99,97,99,104,101,41,5,114,130,0,0,0,114,58,0,
+ 0,0,218,14,108,111,97,100,101,114,95,100,101,116,97,105,
+ 108,115,90,7,108,111,97,100,101,114,115,114,200,0,0,0,
+ 114,7,0,0,0,114,81,1,0,0,114,8,0,0,0,114,
+ 223,0,0,0,154,5,0,0,115,18,0,0,0,4,4,12,
+ 1,26,1,6,1,10,2,6,1,8,1,12,1,255,128,122,
+ 19,70,105,108,101,70,105,110,100,101,114,46,95,95,105,110,
+ 105,116,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,2,0,0,0,67,0,0,0,115,10,0,
+ 0,0,100,1,124,0,95,0,100,2,83,0,41,3,122,31,
+ 73,110,118,97,108,105,100,97,116,101,32,116,104,101,32,100,
+ 105,114,101,99,116,111,114,121,32,109,116,105,109,101,46,114,
+ 116,0,0,0,78,41,1,114,83,1,0,0,114,8,1,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 114,64,1,0,0,168,5,0,0,114,69,0,0,0,122,28,
+ 70,105,108,101,70,105,110,100,101,114,46,105,110,118,97,108,
+ 105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
+ 0,67,0,0,0,115,42,0,0,0,124,0,160,0,124,1,
+ 161,1,125,2,124,2,100,1,117,0,114,13,100,1,103,0,
+ 102,2,83,0,124,2,106,1,124,2,106,2,112,19,103,0,
+ 102,2,83,0,41,2,122,197,84,114,121,32,116,111,32,102,
+ 105,110,100,32,97,32,108,111,97,100,101,114,32,102,111,114,
+ 32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,
+ 111,100,117,108,101,44,32,111,114,32,116,104,101,32,110,97,
+ 109,101,115,112,97,99,101,10,32,32,32,32,32,32,32,32,
+ 112,97,99,107,97,103,101,32,112,111,114,116,105,111,110,115,
+ 46,32,82,101,116,117,114,110,115,32,40,108,111,97,100,101,
+ 114,44,32,108,105,115,116,45,111,102,45,112,111,114,116,105,
+ 111,110,115,41,46,10,10,32,32,32,32,32,32,32,32,84,
+ 104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
+ 112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,102,
+ 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,
+ 97,100,46,10,10,32,32,32,32,32,32,32,32,78,41,3,
+ 114,214,0,0,0,114,151,0,0,0,114,189,0,0,0,41,
+ 3,114,130,0,0,0,114,150,0,0,0,114,198,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
+ 148,0,0,0,174,5,0,0,115,10,0,0,0,10,7,8,
+ 1,8,1,16,1,255,128,122,22,70,105,108,101,70,105,110,
+ 100,101,114,46,102,105,110,100,95,108,111,97,100,101,114,99,
+ 6,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,
+ 6,0,0,0,67,0,0,0,115,26,0,0,0,124,1,124,
+ 2,124,3,131,2,125,6,116,0,124,2,124,3,124,6,124,
+ 4,100,1,141,4,83,0,41,2,78,114,188,0,0,0,41,
+ 1,114,201,0,0,0,41,7,114,130,0,0,0,114,199,0,
+ 0,0,114,150,0,0,0,114,58,0,0,0,90,4,115,109,
+ 115,108,114,213,0,0,0,114,151,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,77,1,0,0,
+ 186,5,0,0,115,10,0,0,0,10,1,8,1,2,1,6,
+ 255,255,128,122,20,70,105,108,101,70,105,110,100,101,114,46,
+ 95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,0,
+ 0,0,0,0,0,0,0,14,0,0,0,8,0,0,0,67,
+ 0,0,0,115,92,1,0,0,100,1,125,3,124,1,160,0,
+ 100,2,161,1,100,3,25,0,125,4,122,12,116,1,124,0,
+ 106,2,112,17,116,3,160,4,161,0,131,1,106,5,125,5,
+ 87,0,110,9,4,0,116,6,121,173,1,0,1,0,1,0,
+ 100,4,125,5,89,0,124,5,124,0,106,7,107,3,114,43,
+ 124,0,160,8,161,0,1,0,124,5,124,0,95,7,116,9,
+ 131,0,114,54,124,0,106,10,125,6,124,4,160,11,161,0,
+ 125,7,110,5,124,0,106,12,125,6,124,4,125,7,124,7,
+ 124,6,118,0,114,106,116,13,124,0,106,2,124,4,131,2,
+ 125,8,124,0,106,14,68,0,93,29,92,2,125,9,125,10,
+ 100,5,124,9,23,0,125,11,116,13,124,8,124,11,131,2,
+ 125,12,116,15,124,12,131,1,114,101,124,0,160,16,124,10,
+ 124,1,124,12,124,8,103,1,124,2,161,5,2,0,1,0,
+ 83,0,113,72,116,17,124,8,131,1,125,3,124,0,106,14,
+ 68,0,93,41,92,2,125,9,125,10,116,13,124,0,106,2,
+ 124,4,124,9,23,0,131,2,125,12,116,18,106,19,100,6,
+ 124,12,100,3,100,7,141,3,1,0,124,7,124,9,23,0,
+ 124,6,118,0,114,150,116,15,124,12,131,1,114,150,124,0,
+ 160,16,124,10,124,1,124,12,100,8,124,2,161,5,2,0,
+ 1,0,83,0,113,109,124,3,114,171,116,18,160,19,100,9,
+ 124,8,161,2,1,0,116,18,160,20,124,1,100,8,161,2,
+ 125,13,124,8,103,1,124,13,95,21,124,13,83,0,100,8,
+ 83,0,119,0,41,10,122,111,84,114,121,32,116,111,32,102,
+ 105,110,100,32,97,32,115,112,101,99,32,102,111,114,32,116,
+ 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,
+ 117,108,101,46,10,10,32,32,32,32,32,32,32,32,82,101,
+ 116,117,114,110,115,32,116,104,101,32,109,97,116,99,104,105,
+ 110,103,32,115,112,101,99,44,32,111,114,32,78,111,110,101,
+ 32,105,102,32,110,111,116,32,102,111,117,110,100,46,10,32,
+ 32,32,32,32,32,32,32,70,114,86,0,0,0,114,45,0,
+ 0,0,114,116,0,0,0,114,223,0,0,0,122,9,116,114,
+ 121,105,110,103,32,123,125,41,1,90,9,118,101,114,98,111,
+ 115,105,116,121,78,122,25,112,111,115,115,105,98,108,101,32,
+ 110,97,109,101,115,112,97,99,101,32,102,111,114,32,123,125,
+ 41,22,114,55,0,0,0,114,63,0,0,0,114,58,0,0,
+ 0,114,19,0,0,0,114,70,0,0,0,114,22,1,0,0,
+ 114,64,0,0,0,114,83,1,0,0,218,11,95,102,105,108,
+ 108,95,99,97,99,104,101,114,22,0,0,0,114,86,1,0,
+ 0,114,117,0,0,0,114,85,1,0,0,114,54,0,0,0,
+ 114,82,1,0,0,114,68,0,0,0,114,77,1,0,0,114,
+ 71,0,0,0,114,146,0,0,0,114,160,0,0,0,114,194,
+ 0,0,0,114,189,0,0,0,41,14,114,130,0,0,0,114,
+ 150,0,0,0,114,213,0,0,0,90,12,105,115,95,110,97,
+ 109,101,115,112,97,99,101,90,11,116,97,105,108,95,109,111,
+ 100,117,108,101,114,180,0,0,0,90,5,99,97,99,104,101,
+ 90,12,99,97,99,104,101,95,109,111,100,117,108,101,90,9,
+ 98,97,115,101,95,112,97,116,104,114,30,1,0,0,114,199,
+ 0,0,0,90,13,105,110,105,116,95,102,105,108,101,110,97,
+ 109,101,90,9,102,117,108,108,95,112,97,116,104,114,198,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,114,214,0,0,0,191,5,0,0,115,80,0,0,0,4,
+ 5,14,1,2,1,24,1,12,1,6,1,10,1,8,1,6,
+ 1,6,2,6,1,10,1,6,2,4,1,8,2,12,1,14,
+ 1,8,1,10,1,8,1,24,1,2,255,8,5,14,2,16,
+ 1,16,1,12,1,8,1,10,1,4,1,8,255,2,128,4,
+ 2,12,1,12,1,8,1,4,1,4,1,2,219,255,128,122,
+ 20,70,105,108,101,70,105,110,100,101,114,46,102,105,110,100,
+ 95,115,112,101,99,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,9,0,0,0,10,0,0,0,67,0,0,0,115,190,
+ 0,0,0,124,0,106,0,125,1,122,11,116,1,160,2,124,
+ 1,112,11,116,1,160,3,161,0,161,1,125,2,87,0,110,
+ 12,4,0,116,4,116,5,116,6,102,3,121,94,1,0,1,
+ 0,1,0,103,0,125,2,89,0,116,7,106,8,160,9,100,
+ 1,161,1,115,39,116,10,124,2,131,1,124,0,95,11,110,
+ 37,116,10,131,0,125,3,124,2,68,0,93,28,125,4,124,
+ 4,160,12,100,2,161,1,92,3,125,5,125,6,125,7,124,
+ 6,114,65,100,3,160,13,124,5,124,7,160,14,161,0,161,
+ 2,125,8,110,2,124,5,125,8,124,3,160,15,124,8,161,
+ 1,1,0,113,44,124,3,124,0,95,11,116,7,106,8,160,
+ 9,116,16,161,1,114,92,100,4,100,5,132,0,124,2,68,
+ 0,131,1,124,0,95,17,100,6,83,0,100,6,83,0,119,
+ 0,41,7,122,68,70,105,108,108,32,116,104,101,32,99,97,
+ 99,104,101,32,111,102,32,112,111,116,101,110,116,105,97,108,
+ 32,109,111,100,117,108,101,115,32,97,110,100,32,112,97,99,
+ 107,97,103,101,115,32,102,111,114,32,116,104,105,115,32,100,
+ 105,114,101,99,116,111,114,121,46,114,15,0,0,0,114,86,
+ 0,0,0,114,76,0,0,0,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,83,0,0,
+ 0,115,20,0,0,0,104,0,124,0,93,6,125,1,124,1,
+ 160,0,161,0,146,2,113,2,83,0,114,7,0,0,0,41,
+ 1,114,117,0,0,0,41,2,114,5,0,0,0,90,2,102,
+ 110,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 114,13,0,0,0,12,6,0,0,115,4,0,0,0,20,0,
+ 255,128,122,41,70,105,108,101,70,105,110,100,101,114,46,95,
+ 102,105,108,108,95,99,97,99,104,101,46,60,108,111,99,97,
+ 108,115,62,46,60,115,101,116,99,111,109,112,62,78,41,18,
+ 114,58,0,0,0,114,19,0,0,0,90,7,108,105,115,116,
+ 100,105,114,114,70,0,0,0,114,71,1,0,0,218,15,80,
+ 101,114,109,105,115,115,105,111,110,69,114,114,111,114,218,18,
+ 78,111,116,65,68,105,114,101,99,116,111,114,121,69,114,114,
+ 111,114,114,16,0,0,0,114,26,0,0,0,114,27,0,0,
+ 0,114,84,1,0,0,114,85,1,0,0,114,112,0,0,0,
+ 114,77,0,0,0,114,117,0,0,0,218,3,97,100,100,114,
+ 28,0,0,0,114,86,1,0,0,41,9,114,130,0,0,0,
+ 114,58,0,0,0,90,8,99,111,110,116,101,110,116,115,90,
+ 21,108,111,119,101,114,95,115,117,102,102,105,120,95,99,111,
+ 110,116,101,110,116,115,114,56,1,0,0,114,128,0,0,0,
+ 114,40,1,0,0,114,30,1,0,0,90,8,110,101,119,95,
+ 110,97,109,101,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,88,1,0,0,239,5,0,0,115,40,0,0,
+ 0,6,2,2,1,22,1,18,1,6,3,12,3,12,1,6,
+ 7,8,1,16,1,4,1,18,1,4,2,12,1,6,1,12,
+ 1,20,1,4,255,2,233,255,128,122,22,70,105,108,101,70,
+ 105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,104,
+ 101,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,3,0,0,0,7,0,0,0,115,18,0,0,0,135,
+ 0,135,1,102,2,100,1,100,2,132,8,125,2,124,2,83,
+ 0,41,4,97,20,1,0,0,65,32,99,108,97,115,115,32,
+ 109,101,116,104,111,100,32,119,104,105,99,104,32,114,101,116,
+ 117,114,110,115,32,97,32,99,108,111,115,117,114,101,32,116,
+ 111,32,117,115,101,32,111,110,32,115,121,115,46,112,97,116,
+ 104,95,104,111,111,107,10,32,32,32,32,32,32,32,32,119,
+ 104,105,99,104,32,119,105,108,108,32,114,101,116,117,114,110,
+ 32,97,110,32,105,110,115,116,97,110,99,101,32,117,115,105,
+ 110,103,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
+ 32,108,111,97,100,101,114,115,32,97,110,100,32,116,104,101,
+ 32,112,97,116,104,10,32,32,32,32,32,32,32,32,99,97,
+ 108,108,101,100,32,111,110,32,116,104,101,32,99,108,111,115,
+ 117,114,101,46,10,10,32,32,32,32,32,32,32,32,73,102,
+ 32,116,104,101,32,112,97,116,104,32,99,97,108,108,101,100,
+ 32,111,110,32,116,104,101,32,99,108,111,115,117,114,101,32,
+ 105,115,32,110,111,116,32,97,32,100,105,114,101,99,116,111,
+ 114,121,44,32,73,109,112,111,114,116,69,114,114,111,114,32,
+ 105,115,10,32,32,32,32,32,32,32,32,114,97,105,115,101,
+ 100,46,10,10,32,32,32,32,32,32,32,32,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,
+ 0,19,0,0,0,115,36,0,0,0,116,0,124,0,131,1,
+ 115,10,116,1,100,1,124,0,100,2,141,2,130,1,136,0,
+ 124,0,103,1,136,1,162,1,82,0,142,0,83,0,41,4,
+ 122,45,80,97,116,104,32,104,111,111,107,32,102,111,114,32,
+ 105,109,112,111,114,116,108,105,98,46,109,97,99,104,105,110,
+ 101,114,121,46,70,105,108,101,70,105,110,100,101,114,46,122,
+ 30,111,110,108,121,32,100,105,114,101,99,116,111,114,105,101,
+ 115,32,97,114,101,32,115,117,112,112,111,114,116,101,100,114,
+ 62,0,0,0,78,41,2,114,71,0,0,0,114,129,0,0,
+ 0,114,62,0,0,0,169,2,114,209,0,0,0,114,87,1,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,24,112,97,
+ 116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,
+ 70,105,110,100,101,114,24,6,0,0,115,8,0,0,0,8,
+ 2,12,1,16,1,255,128,122,54,70,105,108,101,70,105,110,
+ 100,101,114,46,112,97,116,104,95,104,111,111,107,46,60,108,
+ 111,99,97,108,115,62,46,112,97,116,104,95,104,111,111,107,
+ 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,78,
+ 114,7,0,0,0,41,3,114,209,0,0,0,114,87,1,0,
+ 0,114,93,1,0,0,114,7,0,0,0,114,92,1,0,0,
+ 114,8,0,0,0,218,9,112,97,116,104,95,104,111,111,107,
+ 14,6,0,0,115,6,0,0,0,14,10,4,6,255,128,122,
+ 20,70,105,108,101,70,105,110,100,101,114,46,112,97,116,104,
+ 95,104,111,111,107,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,53,
+ 1,0,0,41,2,78,122,16,70,105,108,101,70,105,110,100,
+ 101,114,40,123,33,114,125,41,41,2,114,77,0,0,0,114,
+ 58,0,0,0,114,8,1,0,0,114,7,0,0,0,114,7,
+ 0,0,0,114,8,0,0,0,114,54,1,0,0,32,6,0,
+ 0,114,47,1,0,0,122,19,70,105,108,101,70,105,110,100,
+ 101,114,46,95,95,114,101,112,114,95,95,41,1,78,41,15,
+ 114,137,0,0,0,114,136,0,0,0,114,138,0,0,0,114,
+ 139,0,0,0,114,223,0,0,0,114,64,1,0,0,114,154,
+ 0,0,0,114,217,0,0,0,114,148,0,0,0,114,77,1,
+ 0,0,114,214,0,0,0,114,88,1,0,0,114,221,0,0,
+ 0,114,94,1,0,0,114,54,1,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
+ 80,1,0,0,145,5,0,0,115,26,0,0,0,8,0,4,
+ 2,8,7,8,14,4,4,8,2,8,12,10,5,8,48,2,
+ 31,10,1,12,17,255,128,114,80,1,0,0,99,4,0,0,
+ 0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,0,
+ 0,67,0,0,0,115,144,0,0,0,124,0,160,0,100,1,
+ 161,1,125,4,124,0,160,0,100,2,161,1,125,5,124,4,
+ 115,33,124,5,114,18,124,5,106,1,125,4,110,15,124,2,
+ 124,3,107,2,114,28,116,2,124,1,124,2,131,2,125,4,
+ 110,5,116,3,124,1,124,2,131,2,125,4,124,5,115,42,
+ 116,4,124,1,124,2,124,4,100,3,141,3,125,5,122,19,
+ 124,5,124,0,100,2,60,0,124,4,124,0,100,1,60,0,
+ 124,2,124,0,100,4,60,0,124,3,124,0,100,5,60,0,
+ 87,0,100,0,83,0,4,0,116,5,121,71,1,0,1,0,
+ 1,0,89,0,100,0,83,0,119,0,41,6,78,218,10,95,
+ 95,108,111,97,100,101,114,95,95,218,8,95,95,115,112,101,
+ 99,95,95,114,81,1,0,0,90,8,95,95,102,105,108,101,
+ 95,95,90,10,95,95,99,97,99,104,101,100,95,95,41,6,
+ 218,3,103,101,116,114,151,0,0,0,114,27,1,0,0,114,
+ 21,1,0,0,114,201,0,0,0,218,9,69,120,99,101,112,
+ 116,105,111,110,41,6,90,2,110,115,114,128,0,0,0,90,
+ 8,112,97,116,104,110,97,109,101,90,9,99,112,97,116,104,
+ 110,97,109,101,114,151,0,0,0,114,198,0,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,218,14,95,
+ 102,105,120,95,117,112,95,109,111,100,117,108,101,38,6,0,
+ 0,115,38,0,0,0,10,2,10,1,4,1,4,1,8,1,
+ 8,1,12,1,10,2,4,1,14,1,2,1,8,1,8,1,
+ 8,1,14,1,12,1,6,2,2,254,255,128,114,99,1,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116,
+ 0,116,1,160,2,161,0,102,2,125,0,116,3,116,4,102,
+ 2,125,1,116,5,116,6,102,2,125,2,124,0,124,1,124,
+ 2,103,3,83,0,41,2,122,95,82,101,116,117,114,110,115,
+ 32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,45,
+ 98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,97,
+ 100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,32,
+ 105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,32,
+ 40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,101,
+ 115,41,46,10,32,32,32,32,78,41,7,114,17,1,0,0,
+ 114,174,0,0,0,218,18,101,120,116,101,110,115,105,111,110,
+ 95,115,117,102,102,105,120,101,115,114,21,1,0,0,114,113,
+ 0,0,0,114,27,1,0,0,114,101,0,0,0,41,3,90,
+ 10,101,120,116,101,110,115,105,111,110,115,90,6,115,111,117,
+ 114,99,101,90,8,98,121,116,101,99,111,100,101,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,114,195,0,0,
+ 0,61,6,0,0,115,10,0,0,0,12,5,8,1,8,1,
+ 10,1,255,128,114,195,0,0,0,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,1,0,0,0,67,0,
+ 0,0,115,8,0,0,0,124,0,97,0,100,0,83,0,114,
+ 121,0,0,0,41,1,114,146,0,0,0,41,1,218,17,95,
+ 98,111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 21,95,115,101,116,95,98,111,111,116,115,116,114,97,112,95,
+ 109,111,100,117,108,101,72,6,0,0,115,4,0,0,0,8,
+ 2,255,128,114,102,1,0,0,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,
+ 0,115,50,0,0,0,116,0,124,0,131,1,1,0,116,1,
+ 131,0,125,1,116,2,106,3,160,4,116,5,106,6,124,1,
+ 142,0,103,1,161,1,1,0,116,2,106,7,160,8,116,9,
+ 161,1,1,0,100,1,83,0,41,2,122,41,73,110,115,116,
+ 97,108,108,32,116,104,101,32,112,97,116,104,45,98,97,115,
+ 101,100,32,105,109,112,111,114,116,32,99,111,109,112,111,110,
+ 101,110,116,115,46,78,41,10,114,102,1,0,0,114,195,0,
+ 0,0,114,16,0,0,0,114,69,1,0,0,114,178,0,0,
+ 0,114,80,1,0,0,114,94,1,0,0,218,9,109,101,116,
+ 97,95,112,97,116,104,114,197,0,0,0,114,63,1,0,0,
+ 41,2,114,101,1,0,0,90,17,115,117,112,112,111,114,116,
+ 101,100,95,108,111,97,100,101,114,115,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,218,8,95,105,110,115,116,
+ 97,108,108,77,6,0,0,115,10,0,0,0,8,2,6,1,
+ 20,1,16,1,255,128,114,104,1,0,0,41,1,114,75,0,
+ 0,0,41,1,78,41,3,78,78,78,41,2,114,0,0,0,
+ 0,114,0,0,0,0,41,1,84,41,1,78,41,1,78,41,
+ 83,114,139,0,0,0,114,146,0,0,0,114,174,0,0,0,
+ 114,79,0,0,0,114,16,0,0,0,114,88,0,0,0,114,
+ 171,0,0,0,114,26,0,0,0,114,218,0,0,0,90,2,
+ 110,116,114,19,0,0,0,114,203,0,0,0,90,5,112,111,
+ 115,105,120,114,48,0,0,0,218,3,97,108,108,114,51,0,
+ 0,0,114,52,0,0,0,114,73,0,0,0,114,29,0,0,
+ 0,90,37,95,67,65,83,69,95,73,78,83,69,78,83,73,
+ 84,73,86,69,95,80,76,65,84,70,79,82,77,83,95,66,
+ 89,84,69,83,95,75,69,89,114,28,0,0,0,114,30,0,
+ 0,0,114,22,0,0,0,114,37,0,0,0,114,43,0,0,
+ 0,114,46,0,0,0,114,54,0,0,0,114,61,0,0,0,
+ 114,63,0,0,0,114,67,0,0,0,114,68,0,0,0,114,
+ 71,0,0,0,114,74,0,0,0,114,84,0,0,0,218,4,
+ 116,121,112,101,218,8,95,95,99,111,100,101,95,95,114,173,
+ 0,0,0,114,35,0,0,0,114,159,0,0,0,114,34,0,
+ 0,0,114,40,0,0,0,114,251,0,0,0,114,104,0,0,
+ 0,114,100,0,0,0,114,113,0,0,0,114,197,0,0,0,
+ 114,100,1,0,0,114,219,0,0,0,114,101,0,0,0,90,
+ 23,68,69,66,85,71,95,66,89,84,69,67,79,68,69,95,
+ 83,85,70,70,73,88,69,83,90,27,79,80,84,73,77,73,
+ 90,69,68,95,66,89,84,69,67,79,68,69,95,83,85,70,
+ 70,73,88,69,83,114,109,0,0,0,114,114,0,0,0,114,
+ 120,0,0,0,114,124,0,0,0,114,126,0,0,0,114,147,
+ 0,0,0,114,154,0,0,0,114,163,0,0,0,114,167,0,
+ 0,0,114,169,0,0,0,114,176,0,0,0,114,181,0,0,
+ 0,114,182,0,0,0,114,187,0,0,0,218,6,111,98,106,
+ 101,99,116,114,196,0,0,0,114,201,0,0,0,114,202,0,
+ 0,0,114,222,0,0,0,114,236,0,0,0,114,254,0,0,
+ 0,114,21,1,0,0,114,27,1,0,0,114,17,1,0,0,
+ 114,33,1,0,0,114,59,1,0,0,114,63,1,0,0,114,
+ 80,1,0,0,114,99,1,0,0,114,195,0,0,0,114,102,
+ 1,0,0,114,104,1,0,0,114,7,0,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,8,60,109,
+ 111,100,117,108,101,62,1,0,0,0,115,172,0,0,0,4,
+ 0,4,22,8,3,8,1,8,1,8,1,8,1,10,3,4,
+ 1,8,1,10,1,8,2,4,3,10,1,6,2,22,2,8,
+ 1,10,1,14,1,4,4,4,1,2,1,2,1,4,255,8,
+ 4,6,16,8,3,8,5,8,5,8,6,8,6,8,12,8,
+ 10,8,9,8,5,8,7,10,9,10,22,0,127,16,26,12,
+ 1,4,2,4,1,6,2,4,1,10,1,8,2,6,2,8,
+ 2,16,2,8,71,8,40,8,19,8,12,8,12,8,31,8,
+ 17,8,33,8,28,10,24,10,13,10,10,8,11,6,14,4,
+ 3,2,1,12,255,14,68,14,64,16,30,0,127,14,17,18,
+ 50,18,45,18,25,14,53,14,63,14,49,0,127,14,26,0,
+ 127,10,22,8,23,8,11,12,5,255,128,
};
1
0
https://github.com/python/cpython/commit/e723086bc33c19c6c52046d515eb3c2aab…
commit: e723086bc33c19c6c52046d515eb3c2aab1b8f97
branch: 3.9
author: Łukasz Langa <lukasz(a)langa.pl>
committer: ambv <lukasz(a)langa.pl>
date: 2021-04-02T11:51:53+02:00
summary:
Python 3.9.3
files:
A Misc/NEWS.d/3.9.3.rst
D Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst
D Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst
D Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-16-17-12-54.bpo-43517.zAo6Ws.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-19-22-49-40.bpo-43555.ZmhYSA.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst
D Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst
D Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst
D Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst
D Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst
D Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst
D Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst
D Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst
D Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst
D Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst
D Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
D Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst
D Misc/NEWS.d/next/Library/2021-03-07-11-23-20.bpo-43332.weatsh.rst
D Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst
D Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst
D Misc/NEWS.d/next/Library/2021-03-16-16-05-02.bpo-43521.mRT6fh.rst
D Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst
D Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst
D Misc/NEWS.d/next/Library/2021-03-28-23-50-20.bpo-43433.so9j5G.rst
D Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst
D Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst
D Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst
D Misc/NEWS.d/next/Tests/2021-02-21-11-11-53.bpo-43288.LfTvL-.rst
D Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst
D Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst
D Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.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 92d004e3858ef..093ea5daa8802 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -18,12 +18,12 @@
/*--start constants--*/
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 9
-#define PY_MICRO_VERSION 2
+#define PY_MICRO_VERSION 3
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.9.2+"
+#define PY_VERSION "3.9.3"
/*--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 ae896c2e5afd6..eb5b8936c06ad 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Fri Feb 19 13:29:38 2021
+# Autogenerated by Sphinx on Fri Apr 2 11:48:03 2021
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -5019,9 +5019,11 @@
'"Formatter",\n'
'subclasses can define their own format string syntax). The '
'syntax is\n'
- 'related to that of formatted string literals, but there '
- 'are\n'
- 'differences.\n'
+ 'related to that of formatted string literals, but it is '
+ 'less\n'
+ 'sophisticated and, in particular, does not support '
+ 'arbitrary\n'
+ 'expressions.\n'
'\n'
'Format strings contain “replacement fields” surrounded by '
'curly braces\n'
diff --git a/Misc/NEWS.d/3.9.3.rst b/Misc/NEWS.d/3.9.3.rst
new file mode 100644
index 0000000000000..f76685c8202d9
--- /dev/null
+++ b/Misc/NEWS.d/3.9.3.rst
@@ -0,0 +1,346 @@
+.. bpo: 42988
+.. date: 2021-03-24-14-16-56
+.. nonce: P2aNco
+.. release date: 2021-04-02
+.. section: Security
+
+CVE-2021-3426: Remove the ``getfile`` feature of the :mod:`pydoc` module
+which could be abused to read arbitrary files on the disk (directory
+traversal vulnerability). Moreover, even source code of Python modules can
+contain sensitive data like passwords. Vulnerability reported by David
+Schwörer.
+
+..
+
+.. bpo: 43285
+.. date: 2021-03-13-03-48-14
+.. nonce: g-Hah3
+.. section: Security
+
+:mod:`ftplib` no longer trusts the IP address value returned from the server
+in response to the PASV command by default. This prevents a malicious FTP
+server from using the response to probe IPv4 address and port combinations
+on the client network.
+
+Code that requires the former vulnerable behavior may set a
+``trust_server_pasv_ipv4_address`` attribute on their :class:`ftplib.FTP`
+instances to ``True`` to re-enable it.
+
+..
+
+.. bpo: 43439
+.. date: 2021-03-08-23-06-07
+.. nonce: 5U3lXm
+.. section: Security
+
+Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and
+:func:`gc.get_referents`. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 43660
+.. date: 2021-03-29-19-50-34
+.. nonce: scTgag
+.. section: Core and Builtins
+
+Fix crash that happens when replacing ``sys.stderr`` with a callable that
+can remove the object while an exception is being printed. Patch by Pablo
+Galindo.
+
+..
+
+.. bpo: 43555
+.. date: 2021-03-19-22-49-40
+.. nonce: ZmhYSA
+.. section: Core and Builtins
+
+Report the column offset for :exc:`SyntaxError` for invalid line
+continuation characters. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 43517
+.. date: 2021-03-16-17-12-54
+.. nonce: zAo6Ws
+.. section: Core and Builtins
+
+Fix misdetection of circular imports when using ``from pkg.mod import
+attr``, which caused false positives in non-trivial multi-threaded code.
+
+..
+
+.. bpo: 35883
+.. date: 2021-03-13-13-57-21
+.. nonce: UyGpdG
+.. section: Core and Builtins
+
+Python no longer fails at startup with a fatal error if a command line
+argument contains an invalid Unicode character. The
+:c:func:`Py_DecodeLocale` function now escapes byte sequences which would be
+decoded as Unicode characters outside the [U+0000; U+10ffff] range.
+
+..
+
+.. bpo: 43406
+.. date: 2021-03-04-22-53-10
+.. nonce: Na_VpA
+.. section: Core and Builtins
+
+Fix a possible race condition where ``PyErr_CheckSignals`` tries to execute
+a non-Python signal handler.
+
+..
+
+.. bpo: 42500
+.. date: 2020-11-30-14-27-29
+.. nonce: excVKU
+.. section: Core and Builtins
+
+Improve handling of exceptions near recursion limit. Converts a number of
+Fatal Errors in RecursionErrors.
+
+..
+
+.. bpo: 43433
+.. date: 2021-03-28-23-50-20
+.. nonce: so9j5G
+.. section: Library
+
+:class:`xmlrpc.client.ServerProxy` no longer ignores query and fragment in
+the URL of the server.
+
+..
+
+.. bpo: 35930
+.. date: 2021-03-23-17-18-56
+.. nonce: RZ51pM
+.. section: Library
+
+Raising an exception raised in a "future" instance will create reference
+cycles.
+
+..
+
+.. bpo: 43577
+.. date: 2021-03-21-10-13-17
+.. nonce: m7JnAV
+.. section: Library
+
+Fix deadlock when using :class:`ssl.SSLContext` debug callback with
+:meth:`ssl.SSLContext.sni_callback`.
+
+..
+
+.. bpo: 43521
+.. date: 2021-03-16-16-05-02
+.. nonce: mRT6fh
+.. section: Library
+
+``ast.unparse`` can now render NaNs and empty sets.
+
+..
+
+.. bpo: 43423
+.. date: 2021-03-11-15-44-18
+.. nonce: rRomRD
+.. section: Library
+
+:func:`subprocess.communicate` no longer raises an IndexError when there is
+an empty stdout or stderr IO buffer during a timeout on Windows.
+
+..
+
+.. bpo: 27820
+.. date: 2021-03-10-14-07-44
+.. nonce: Wwdy-r
+.. section: Library
+
+Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with
+initial_response_ok=False will fail.
+
+The cause is that SMTP.auth_login _always_ returns a password if provided
+with a challenge string, thus non-compliant with the standard for AUTH
+LOGIN.
+
+Also fixes bug with the test for smtpd.
+
+..
+
+.. bpo: 43332
+.. date: 2021-03-07-11-23-20
+.. nonce: weatsh
+.. section: Library
+
+Improves the networking efficiency of :mod:`http.client` when using a proxy
+via :meth:`~HTTPConnection.set_tunnel`. Fewer small send calls are made
+during connection setup.
+
+..
+
+.. bpo: 43399
+.. date: 2021-03-04-17-53-46
+.. nonce: Wn95u-
+.. section: Library
+
+Fix ``ElementTree.extend`` not working on iterators when using the Python
+implementation
+
+..
+
+.. bpo: 43316
+.. date: 2021-02-25-09-44-36
+.. nonce: k9Gyqn
+.. section: Library
+
+The ``python -m gzip`` command line application now properly fails when
+detecting an unsupported extension. It exits with a non-zero exit code and
+prints an error message to stderr.
+
+..
+
+.. bpo: 43260
+.. date: 2021-02-20-12-15-29
+.. nonce: 6znAas
+.. section: Library
+
+Fix TextIOWrapper can not flush internal buffer forever after very large
+text is written.
+
+..
+
+.. bpo: 42782
+.. date: 2020-12-29-13-46-57
+.. nonce: 3r0HFY
+.. section: Library
+
+Fail fast in :func:`shutil.move()` to avoid creating destination directories
+on failure.
+
+..
+
+.. bpo: 37193
+.. date: 2020-06-12-21-23-20
+.. nonce: wJximU
+.. section: Library
+
+Fixed memory leak in ``socketserver.ThreadingMixIn`` introduced in Python
+3.7.
+
+..
+
+.. bpo: 43199
+.. date: 2021-03-13-18-43-54
+.. nonce: ZWA6KX
+.. section: Documentation
+
+Answer "Why is there no goto?" in the Design and History FAQ.
+
+..
+
+.. bpo: 43407
+.. date: 2021-03-04-22-53-03
+.. nonce: x570l5
+.. section: Documentation
+
+Clarified that a result from :func:`time.monotonic`,
+:func:`time.perf_counter`, :func:`time.process_time`, or
+:func:`time.thread_time` can be compared with the result from any following
+call to the same function - not just the next immediate call.
+
+..
+
+.. bpo: 27646
+.. date: 2021-02-20-00-09-13
+.. nonce: HRsmo-
+.. section: Documentation
+
+Clarify that 'yield from <expr>' works with any iterable, not just
+iterators.
+
+..
+
+.. bpo: 36346
+.. date: 2020-06-15-10-45-45
+.. nonce: H0sS_i
+.. section: Documentation
+
+Update some deprecated unicode APIs which are documented as "will be removed
+in 4.0" to "3.12". See :pep:`623` for detail.
+
+..
+
+.. bpo: 37945
+.. date: 2021-03-31-11-38-42
+.. nonce: HTUYhv
+.. section: Tests
+
+Fix test_getsetlocale_issue1813() of test_locale: skip the test if
+``setlocale()`` fails. Patch by Victor Stinner.
+
+..
+
+.. bpo: 41561
+.. date: 2021-03-18-10-34-42
+.. nonce: pDg4w-
+.. section: Tests
+
+Add workaround for Ubuntu's custom OpenSSL security level policy.
+
+..
+
+.. bpo: 43288
+.. date: 2021-02-21-11-11-53
+.. nonce: LfTvL-
+.. section: Tests
+
+Fix test_importlib to correctly skip Unicode file tests if the fileystem
+does not support them.
+
+..
+
+.. bpo: 43631
+.. date: 2021-03-26-09-16-34
+.. nonce: msJyPi
+.. section: Build
+
+Update macOS, Windows, and CI to OpenSSL 1.1.1k.
+
+..
+
+.. bpo: 43617
+.. date: 2021-03-24-16-55-55
+.. nonce: d69KAv
+.. section: Build
+
+Improve configure.ac: Check for presence of autoconf-archive package and
+remove our copies of M4 macros.
+
+..
+
+.. bpo: 41837
+.. date: 2021-02-28-22-49-46
+.. nonce: 9fqyXC
+.. section: macOS
+
+Update macOS installer build to use OpenSSL 1.1.1j.
+
+..
+
+.. bpo: 42225
+.. date: 2021-03-29-16-22-27
+.. nonce: iIeiLg
+.. section: IDLE
+
+Document that IDLE can fail on Unix either from misconfigured IP masquerage
+rules or failure displaying complex colored (non-ascii) characters.
+
+..
+
+.. bpo: 43283
+.. date: 2021-02-21-16-30-10
+.. nonce: DLBwYn
+.. section: IDLE
+
+Document why printing to IDLE's Shell is often slower than printing to a
+system terminal and that it can be made faster by pre-formatting a single
+string before printing.
diff --git a/Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst b/Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst
deleted file mode 100644
index 26783963c8679..0000000000000
--- a/Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Improve configure.ac: Check for presence of autoconf-archive package and
-remove our copies of M4 macros.
diff --git a/Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst b/Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst
deleted file mode 100644
index 4de4905a6bb08..0000000000000
--- a/Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS, Windows, and CI to OpenSSL 1.1.1k.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst b/Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst
deleted file mode 100644
index 2462a8e1fabef..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Improve handling of exceptions near recursion limit. Converts a number of
-Fatal Errors in RecursionErrors.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst
deleted file mode 100644
index c18a55ef32306..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a possible race condition where ``PyErr_CheckSignals`` tries to execute a
-non-Python signal handler.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst
deleted file mode 100644
index 46742429db64b..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Python no longer fails at startup with a fatal error if a command line
-argument contains an invalid Unicode character. The
-:c:func:`Py_DecodeLocale` function now escapes byte sequences which would be
-decoded as Unicode characters outside the [U+0000; U+10ffff] range.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-16-17-12-54.bpo-43517.zAo6Ws.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-16-17-12-54.bpo-43517.zAo6Ws.rst
deleted file mode 100644
index 0f9926b93f654..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-16-17-12-54.bpo-43517.zAo6Ws.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix misdetection of circular imports when using ``from pkg.mod import
-attr``, which caused false positives in non-trivial multi-threaded code.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-19-22-49-40.bpo-43555.ZmhYSA.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-19-22-49-40.bpo-43555.ZmhYSA.rst
deleted file mode 100644
index 55a2fe22aa8ab..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-19-22-49-40.bpo-43555.ZmhYSA.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Report the column offset for :exc:`SyntaxError` for invalid line
-continuation characters. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst
deleted file mode 100644
index 98419501d9e7b..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix crash that happens when replacing ``sys.stderr`` with a callable that
-can remove the object while an exception is being printed. Patch by Pablo
-Galindo.
diff --git a/Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst b/Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst
deleted file mode 100644
index b737e125f8371..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Update some deprecated unicode APIs which are documented as "will be removed
-in 4.0" to "3.12". See :pep:`623` for detail.
diff --git a/Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst b/Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst
deleted file mode 100644
index 8ba398adf6182..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Clarify that 'yield from <expr>' works with any iterable, not just
-iterators.
diff --git a/Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst b/Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst
deleted file mode 100644
index 615e3d016307c..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Clarified that a result from :func:`time.monotonic`,
-:func:`time.perf_counter`, :func:`time.process_time`, or
-:func:`time.thread_time` can be compared with the result from any following
-call to the same function - not just the next immediate call.
diff --git a/Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst b/Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst
deleted file mode 100644
index d1b454fabd7f8..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst
+++ /dev/null
@@ -1 +0,0 @@
-Answer "Why is there no goto?" in the Design and History FAQ.
diff --git a/Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst b/Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst
deleted file mode 100644
index 7a627af412a8e..0000000000000
--- a/Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Document why printing to IDLE's Shell is often slower than printing to a
-system terminal and that it can be made faster by pre-formatting a single
-string before printing.
diff --git a/Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst b/Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst
deleted file mode 100644
index 59fb08bdf9ebe..0000000000000
--- a/Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Document that IDLE can fail on Unix either from misconfigured IP masquerage
-rules or failure displaying complex colored (non-ascii) characters.
diff --git a/Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst b/Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst
deleted file mode 100644
index fbf56d3194cd2..0000000000000
--- a/Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed memory leak in ``socketserver.ThreadingMixIn`` introduced in Python
-3.7.
diff --git a/Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst b/Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst
deleted file mode 100644
index 065df9bf0cf42..0000000000000
--- a/Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fail fast in :func:`shutil.move()` to avoid creating destination directories on
-failure.
diff --git a/Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst b/Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst
deleted file mode 100644
index f3c21d1c63f72..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix TextIOWrapper can not flush internal buffer forever after very large
-text is written.
diff --git a/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst b/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
deleted file mode 100644
index 1f0d3c499c16f..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-The ``python -m gzip`` command line application now properly fails when
-detecting an unsupported extension. It exits with a non-zero exit code and
-prints an error message to stderr.
diff --git a/Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst b/Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst
deleted file mode 100644
index 0b8dffb2312e4..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ``ElementTree.extend`` not working on iterators when using the
-Python implementation
diff --git a/Misc/NEWS.d/next/Library/2021-03-07-11-23-20.bpo-43332.weatsh.rst b/Misc/NEWS.d/next/Library/2021-03-07-11-23-20.bpo-43332.weatsh.rst
deleted file mode 100644
index c40be95c194db..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-07-11-23-20.bpo-43332.weatsh.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Improves the networking efficiency of :mod:`http.client` when using a proxy
-via :meth:`~HTTPConnection.set_tunnel`. Fewer small send calls are made
-during connection setup.
diff --git a/Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst b/Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst
deleted file mode 100644
index 7f1014d723b6a..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with
-initial_response_ok=False will fail.
-
-The cause is that SMTP.auth_login _always_ returns a password if provided
-with a challenge string, thus non-compliant with the standard for AUTH
-LOGIN.
-
-Also fixes bug with the test for smtpd.
diff --git a/Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst b/Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst
deleted file mode 100644
index 290d7fbd91800..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-:func:`subprocess.communicate` no longer raises an IndexError when there is an
-empty stdout or stderr IO buffer during a timeout on Windows.
diff --git a/Misc/NEWS.d/next/Library/2021-03-16-16-05-02.bpo-43521.mRT6fh.rst b/Misc/NEWS.d/next/Library/2021-03-16-16-05-02.bpo-43521.mRT6fh.rst
deleted file mode 100644
index e6895674437a5..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-16-16-05-02.bpo-43521.mRT6fh.rst
+++ /dev/null
@@ -1 +0,0 @@
-``ast.unparse`` can now render NaNs and empty sets.
diff --git a/Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst b/Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst
deleted file mode 100644
index a7db48bc626fc..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix deadlock when using :class:`ssl.SSLContext` debug callback with :meth:`ssl.SSLContext.sni_callback`.
diff --git a/Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst b/Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst
deleted file mode 100644
index 71c6012f52b8f..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Raising an exception raised in a "future" instance will create reference
-cycles.
diff --git a/Misc/NEWS.d/next/Library/2021-03-28-23-50-20.bpo-43433.so9j5G.rst b/Misc/NEWS.d/next/Library/2021-03-28-23-50-20.bpo-43433.so9j5G.rst
deleted file mode 100644
index 2f67e316a5efc..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-28-23-50-20.bpo-43433.so9j5G.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-:class:`xmlrpc.client.ServerProxy` no longer ignores query and fragment in
-the URL of the server.
diff --git a/Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst b/Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst
deleted file mode 100644
index 518650303683d..0000000000000
--- a/Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and
-:func:`gc.get_referents`. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst b/Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst
deleted file mode 100644
index 8312b7e885441..0000000000000
--- a/Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-:mod:`ftplib` no longer trusts the IP address value returned from the server
-in response to the PASV command by default. This prevents a malicious FTP
-server from using the response to probe IPv4 address and port combinations
-on the client network.
-
-Code that requires the former vulnerable behavior may set a
-``trust_server_pasv_ipv4_address`` attribute on their
-:class:`ftplib.FTP` instances to ``True`` to re-enable it.
diff --git a/Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst b/Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst
deleted file mode 100644
index 4b42dd05305a8..0000000000000
--- a/Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-CVE-2021-3426: Remove the ``getfile`` feature of the :mod:`pydoc` module which
-could be abused to read arbitrary files on the disk (directory traversal
-vulnerability). Moreover, even source code of Python modules can contain
-sensitive data like passwords. Vulnerability reported by David Schwörer.
diff --git a/Misc/NEWS.d/next/Tests/2021-02-21-11-11-53.bpo-43288.LfTvL-.rst b/Misc/NEWS.d/next/Tests/2021-02-21-11-11-53.bpo-43288.LfTvL-.rst
deleted file mode 100644
index 8463540ae8a14..0000000000000
--- a/Misc/NEWS.d/next/Tests/2021-02-21-11-11-53.bpo-43288.LfTvL-.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix test_importlib to correctly skip Unicode file tests if the fileystem
-does not support them.
diff --git a/Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst b/Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst
deleted file mode 100644
index 214350729bff6..0000000000000
--- a/Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add workaround for Ubuntu's custom OpenSSL security level policy.
diff --git a/Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst b/Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst
deleted file mode 100644
index e1c95f63bf7c7..0000000000000
--- a/Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix test_getsetlocale_issue1813() of test_locale: skip the test if
-``setlocale()`` fails. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.rst b/Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.rst
deleted file mode 100644
index 5d32d87a5a97d..0000000000000
--- a/Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS installer build to use OpenSSL 1.1.1j.
diff --git a/README.rst b/README.rst
index cf73e70038c4f..ae7f264ef4f5f 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,4 @@
-This is Python version 3.9.2
+This is Python version 3.9.3
============================
.. image:: https://travis-ci.org/python/cpython.svg?branch=3.9
1
0
https://github.com/python/cpython/commit/a44771f9212381b90c539882448258c430…
commit: a44771f9212381b90c539882448258c4300b2fe5
branch: 3.8
author: Łukasz Langa <lukasz(a)langa.pl>
committer: ambv <lukasz(a)langa.pl>
date: 2021-04-02T19:37:42+02:00
summary:
Post 3.8.9
files:
M Include/patchlevel.h
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index 38ffec2854ac4..e074b01dca771 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -23,7 +23,7 @@
#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.8.9"
+#define PY_VERSION "3.8.9+"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
1
0
https://github.com/python/cpython/commit/a743f8192b3b322b2c23b13926f1c7f288…
commit: a743f8192b3b322b2c23b13926f1c7f288cb2206
branch: 3.8
author: Łukasz Langa <lukasz(a)langa.pl>
committer: ambv <lukasz(a)langa.pl>
date: 2021-04-02T12:32:10+02:00
summary:
Python 3.8.9
files:
A Misc/NEWS.d/3.8.9.rst
D Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst
D Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst
D Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst
D Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst
D Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst
D Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst
D Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst
D Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst
D Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst
D Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst
D Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst
D Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst
D Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
D Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst
D Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst
D Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst
D Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst
D Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst
D Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst
D Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst
D Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst
D Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst
D Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst
D Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.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 e96ee8266fbce..38ffec2854ac4 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -18,12 +18,12 @@
/*--start constants--*/
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 8
-#define PY_MICRO_VERSION 8
+#define PY_MICRO_VERSION 9
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.8.8+"
+#define PY_VERSION "3.8.9"
/*--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 475c256be57a2..2a16970b87129 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Fri Feb 19 11:26:48 2021
+# Autogenerated by Sphinx on Fri Apr 2 12:30:35 2021
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -5003,9 +5003,11 @@
'"Formatter",\n'
'subclasses can define their own format string syntax). The '
'syntax is\n'
- 'related to that of formatted string literals, but there '
- 'are\n'
- 'differences.\n'
+ 'related to that of formatted string literals, but it is '
+ 'less\n'
+ 'sophisticated and, in particular, does not support '
+ 'arbitrary\n'
+ 'expressions.\n'
'\n'
'Format strings contain “replacement fields” surrounded by '
'curly braces\n'
diff --git a/Misc/NEWS.d/3.8.9.rst b/Misc/NEWS.d/3.8.9.rst
new file mode 100644
index 0000000000000..10d498cb41d4b
--- /dev/null
+++ b/Misc/NEWS.d/3.8.9.rst
@@ -0,0 +1,276 @@
+.. bpo: 42988
+.. date: 2021-03-24-14-16-56
+.. nonce: P2aNco
+.. release date: 2021-04-02
+.. section: Security
+
+CVE-2021-3426: Remove the ``getfile`` feature of the :mod:`pydoc` module
+which could be abused to read arbitrary files on the disk (directory
+traversal vulnerability). Moreover, even source code of Python modules can
+contain sensitive data like passwords. Vulnerability reported by David
+Schwörer.
+
+..
+
+.. bpo: 43285
+.. date: 2021-03-13-03-48-14
+.. nonce: g-Hah3
+.. section: Security
+
+:mod:`ftplib` no longer trusts the IP address value returned from the server
+in response to the PASV command by default. This prevents a malicious FTP
+server from using the response to probe IPv4 address and port combinations
+on the client network.
+
+Code that requires the former vulnerable behavior may set a
+``trust_server_pasv_ipv4_address`` attribute on their :class:`ftplib.FTP`
+instances to ``True`` to re-enable it.
+
+..
+
+.. bpo: 43439
+.. date: 2021-03-08-23-06-07
+.. nonce: 5U3lXm
+.. section: Security
+
+Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and
+:func:`gc.get_referents`. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 43660
+.. date: 2021-03-29-19-50-34
+.. nonce: scTgag
+.. section: Core and Builtins
+
+Fix crash that happens when replacing ``sys.stderr`` with a callable that
+can remove the object while an exception is being printed. Patch by Pablo
+Galindo.
+
+..
+
+.. bpo: 35883
+.. date: 2021-03-13-13-57-21
+.. nonce: UyGpdG
+.. section: Core and Builtins
+
+Python no longer fails at startup with a fatal error if a command line
+argument contains an invalid Unicode character. The
+:c:func:`Py_DecodeLocale` function now escapes byte sequences which would be
+decoded as Unicode characters outside the [U+0000; U+10ffff] range.
+
+..
+
+.. bpo: 43406
+.. date: 2021-03-04-22-53-10
+.. nonce: Na_VpA
+.. section: Core and Builtins
+
+Fix a possible race condition where ``PyErr_CheckSignals`` tries to execute
+a non-Python signal handler.
+
+..
+
+.. bpo: 35930
+.. date: 2021-03-23-17-18-56
+.. nonce: RZ51pM
+.. section: Library
+
+Raising an exception raised in a "future" instance will create reference
+cycles.
+
+..
+
+.. bpo: 43577
+.. date: 2021-03-21-10-13-17
+.. nonce: m7JnAV
+.. section: Library
+
+Fix deadlock when using :class:`ssl.SSLContext` debug callback with
+:meth:`ssl.SSLContext.sni_callback`.
+
+..
+
+.. bpo: 43423
+.. date: 2021-03-11-15-44-18
+.. nonce: rRomRD
+.. section: Library
+
+:func:`subprocess.communicate` no longer raises an IndexError when there is
+an empty stdout or stderr IO buffer during a timeout on Windows.
+
+..
+
+.. bpo: 27820
+.. date: 2021-03-10-14-07-44
+.. nonce: Wwdy-r
+.. section: Library
+
+Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with
+initial_response_ok=False will fail.
+
+The cause is that SMTP.auth_login _always_ returns a password if provided
+with a challenge string, thus non-compliant with the standard for AUTH
+LOGIN.
+
+Also fixes bug with the test for smtpd.
+
+..
+
+.. bpo: 43399
+.. date: 2021-03-04-17-53-46
+.. nonce: Wn95u-
+.. section: Library
+
+Fix ``ElementTree.extend`` not working on iterators when using the Python
+implementation
+
+..
+
+.. bpo: 43316
+.. date: 2021-02-25-09-44-36
+.. nonce: k9Gyqn
+.. section: Library
+
+The ``python -m gzip`` command line application now properly fails when
+detecting an unsupported extension. It exits with a non-zero exit code and
+prints an error message to stderr.
+
+..
+
+.. bpo: 43260
+.. date: 2021-02-20-12-15-29
+.. nonce: 6znAas
+.. section: Library
+
+Fix TextIOWrapper can not flush internal buffer forever after very large
+text is written.
+
+..
+
+.. bpo: 42782
+.. date: 2020-12-29-13-46-57
+.. nonce: 3r0HFY
+.. section: Library
+
+Fail fast in :func:`shutil.move()` to avoid creating destination directories
+on failure.
+
+..
+
+.. bpo: 37193
+.. date: 2020-06-12-21-23-20
+.. nonce: wJximU
+.. section: Library
+
+Fixed memory leak in ``socketserver.ThreadingMixIn`` introduced in Python
+3.7.
+
+..
+
+.. bpo: 43199
+.. date: 2021-03-13-18-43-54
+.. nonce: ZWA6KX
+.. section: Documentation
+
+Answer "Why is there no goto?" in the Design and History FAQ.
+
+..
+
+.. bpo: 43407
+.. date: 2021-03-04-22-53-03
+.. nonce: x570l5
+.. section: Documentation
+
+Clarified that a result from :func:`time.monotonic`,
+:func:`time.perf_counter`, :func:`time.process_time`, or
+:func:`time.thread_time` can be compared with the result from any following
+call to the same function - not just the next immediate call.
+
+..
+
+.. bpo: 27646
+.. date: 2021-02-20-00-09-13
+.. nonce: HRsmo-
+.. section: Documentation
+
+Clarify that 'yield from <expr>' works with any iterable, not just
+iterators.
+
+..
+
+.. bpo: 36346
+.. date: 2020-06-15-10-45-45
+.. nonce: H0sS_i
+.. section: Documentation
+
+Update some deprecated unicode APIs which are documented as "will be removed
+in 4.0" to "3.12". See :pep:`623` for detail.
+
+..
+
+.. bpo: 37945
+.. date: 2021-03-31-11-38-42
+.. nonce: HTUYhv
+.. section: Tests
+
+Fix test_getsetlocale_issue1813() of test_locale: skip the test if
+``setlocale()`` fails. Patch by Victor Stinner.
+
+..
+
+.. bpo: 41561
+.. date: 2021-03-18-10-34-42
+.. nonce: pDg4w-
+.. section: Tests
+
+Add workaround for Ubuntu's custom OpenSSL security level policy.
+
+..
+
+.. bpo: 43631
+.. date: 2021-03-26-09-16-34
+.. nonce: msJyPi
+.. section: Build
+
+Update macOS, Windows, and CI to OpenSSL 1.1.1k.
+
+..
+
+.. bpo: 43617
+.. date: 2021-03-24-16-55-55
+.. nonce: d69KAv
+.. section: Build
+
+Improve configure.ac: Check for presence of autoconf-archive package and
+remove our copies of M4 macros.
+
+..
+
+.. bpo: 41837
+.. date: 2021-02-28-22-49-46
+.. nonce: 9fqyXC
+.. section: macOS
+
+Update macOS installer build to use OpenSSL 1.1.1j.
+
+..
+
+.. bpo: 42225
+.. date: 2021-03-29-16-22-27
+.. nonce: iIeiLg
+.. section: IDLE
+
+Document that IDLE can fail on Unix either from misconfigured IP masquerage
+rules or failure displaying complex colored (non-ascii) characters.
+
+..
+
+.. bpo: 43283
+.. date: 2021-02-21-16-30-10
+.. nonce: DLBwYn
+.. section: IDLE
+
+Document why printing to IDLE's Shell is often slower than printing to a
+system terminal and that it can be made faster by pre-formatting a single
+string before printing.
diff --git a/Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst b/Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst
deleted file mode 100644
index 26783963c8679..0000000000000
--- a/Misc/NEWS.d/next/Build/2021-03-24-16-55-55.bpo-43617.d69KAv.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Improve configure.ac: Check for presence of autoconf-archive package and
-remove our copies of M4 macros.
diff --git a/Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst b/Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst
deleted file mode 100644
index 4de4905a6bb08..0000000000000
--- a/Misc/NEWS.d/next/Build/2021-03-26-09-16-34.bpo-43631.msJyPi.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS, Windows, and CI to OpenSSL 1.1.1k.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst
deleted file mode 100644
index c18a55ef32306..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-04-22-53-10.bpo-43406.Na_VpA.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a possible race condition where ``PyErr_CheckSignals`` tries to execute a
-non-Python signal handler.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst
deleted file mode 100644
index 46742429db64b..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-13-13-57-21.bpo-35883.UyGpdG.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Python no longer fails at startup with a fatal error if a command line
-argument contains an invalid Unicode character. The
-:c:func:`Py_DecodeLocale` function now escapes byte sequences which would be
-decoded as Unicode characters outside the [U+0000; U+10ffff] range.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst b/Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst
deleted file mode 100644
index 98419501d9e7b..0000000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2021-03-29-19-50-34.bpo-43660.scTgag.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix crash that happens when replacing ``sys.stderr`` with a callable that
-can remove the object while an exception is being printed. Patch by Pablo
-Galindo.
diff --git a/Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst b/Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst
deleted file mode 100644
index b737e125f8371..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2020-06-15-10-45-45.bpo-36346.H0sS_i.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Update some deprecated unicode APIs which are documented as "will be removed
-in 4.0" to "3.12". See :pep:`623` for detail.
diff --git a/Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst b/Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst
deleted file mode 100644
index 8ba398adf6182..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2021-02-20-00-09-13.bpo-27646.HRsmo-.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Clarify that 'yield from <expr>' works with any iterable, not just
-iterators.
diff --git a/Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst b/Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst
deleted file mode 100644
index 615e3d016307c..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2021-03-04-22-53-03.bpo-43407.x570l5.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Clarified that a result from :func:`time.monotonic`,
-:func:`time.perf_counter`, :func:`time.process_time`, or
-:func:`time.thread_time` can be compared with the result from any following
-call to the same function - not just the next immediate call.
diff --git a/Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst b/Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst
deleted file mode 100644
index d1b454fabd7f8..0000000000000
--- a/Misc/NEWS.d/next/Documentation/2021-03-13-18-43-54.bpo-43199.ZWA6KX.rst
+++ /dev/null
@@ -1 +0,0 @@
-Answer "Why is there no goto?" in the Design and History FAQ.
diff --git a/Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst b/Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst
deleted file mode 100644
index 7a627af412a8e..0000000000000
--- a/Misc/NEWS.d/next/IDLE/2021-02-21-16-30-10.bpo-43283.DLBwYn.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Document why printing to IDLE's Shell is often slower than printing to a
-system terminal and that it can be made faster by pre-formatting a single
-string before printing.
diff --git a/Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst b/Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst
deleted file mode 100644
index 59fb08bdf9ebe..0000000000000
--- a/Misc/NEWS.d/next/IDLE/2021-03-29-16-22-27.bpo-42225.iIeiLg.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Document that IDLE can fail on Unix either from misconfigured IP masquerage
-rules or failure displaying complex colored (non-ascii) characters.
diff --git a/Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst b/Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst
deleted file mode 100644
index fbf56d3194cd2..0000000000000
--- a/Misc/NEWS.d/next/Library/2020-06-12-21-23-20.bpo-37193.wJximU.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed memory leak in ``socketserver.ThreadingMixIn`` introduced in Python
-3.7.
diff --git a/Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst b/Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst
deleted file mode 100644
index 065df9bf0cf42..0000000000000
--- a/Misc/NEWS.d/next/Library/2020-12-29-13-46-57.bpo-42782.3r0HFY.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fail fast in :func:`shutil.move()` to avoid creating destination directories on
-failure.
diff --git a/Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst b/Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst
deleted file mode 100644
index f3c21d1c63f72..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-02-20-12-15-29.bpo-43260.6znAas.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix TextIOWrapper can not flush internal buffer forever after very large
-text is written.
diff --git a/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst b/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
deleted file mode 100644
index 1f0d3c499c16f..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-The ``python -m gzip`` command line application now properly fails when
-detecting an unsupported extension. It exits with a non-zero exit code and
-prints an error message to stderr.
diff --git a/Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst b/Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst
deleted file mode 100644
index 0b8dffb2312e4..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-04-17-53-46.bpo-43399.Wn95u-.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ``ElementTree.extend`` not working on iterators when using the
-Python implementation
diff --git a/Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst b/Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst
deleted file mode 100644
index 7f1014d723b6a..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-10-14-07-44.bpo-27820.Wwdy-r.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with
-initial_response_ok=False will fail.
-
-The cause is that SMTP.auth_login _always_ returns a password if provided
-with a challenge string, thus non-compliant with the standard for AUTH
-LOGIN.
-
-Also fixes bug with the test for smtpd.
diff --git a/Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst b/Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst
deleted file mode 100644
index 290d7fbd91800..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-11-15-44-18.bpo-43423.rRomRD.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-:func:`subprocess.communicate` no longer raises an IndexError when there is an
-empty stdout or stderr IO buffer during a timeout on Windows.
diff --git a/Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst b/Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst
deleted file mode 100644
index a7db48bc626fc..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-21-10-13-17.bpo-43577.m7JnAV.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix deadlock when using :class:`ssl.SSLContext` debug callback with :meth:`ssl.SSLContext.sni_callback`.
diff --git a/Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst b/Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst
deleted file mode 100644
index 71c6012f52b8f..0000000000000
--- a/Misc/NEWS.d/next/Library/2021-03-23-17-18-56.bpo-35930.RZ51pM.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Raising an exception raised in a "future" instance will create reference
-cycles.
diff --git a/Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst b/Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst
deleted file mode 100644
index 518650303683d..0000000000000
--- a/Misc/NEWS.d/next/Security/2021-03-08-23-06-07.bpo-43439.5U3lXm.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and
-:func:`gc.get_referents`. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst b/Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst
deleted file mode 100644
index 8312b7e885441..0000000000000
--- a/Misc/NEWS.d/next/Security/2021-03-13-03-48-14.bpo-43285.g-Hah3.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-:mod:`ftplib` no longer trusts the IP address value returned from the server
-in response to the PASV command by default. This prevents a malicious FTP
-server from using the response to probe IPv4 address and port combinations
-on the client network.
-
-Code that requires the former vulnerable behavior may set a
-``trust_server_pasv_ipv4_address`` attribute on their
-:class:`ftplib.FTP` instances to ``True`` to re-enable it.
diff --git a/Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst b/Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst
deleted file mode 100644
index 4b42dd05305a8..0000000000000
--- a/Misc/NEWS.d/next/Security/2021-03-24-14-16-56.bpo-42988.P2aNco.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-CVE-2021-3426: Remove the ``getfile`` feature of the :mod:`pydoc` module which
-could be abused to read arbitrary files on the disk (directory traversal
-vulnerability). Moreover, even source code of Python modules can contain
-sensitive data like passwords. Vulnerability reported by David Schwörer.
diff --git a/Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst b/Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst
deleted file mode 100644
index 214350729bff6..0000000000000
--- a/Misc/NEWS.d/next/Tests/2021-03-18-10-34-42.bpo-41561.pDg4w-.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add workaround for Ubuntu's custom OpenSSL security level policy.
diff --git a/Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst b/Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst
deleted file mode 100644
index e1c95f63bf7c7..0000000000000
--- a/Misc/NEWS.d/next/Tests/2021-03-31-11-38-42.bpo-37945.HTUYhv.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix test_getsetlocale_issue1813() of test_locale: skip the test if
-``setlocale()`` fails. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.rst b/Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.rst
deleted file mode 100644
index 5d32d87a5a97d..0000000000000
--- a/Misc/NEWS.d/next/macOS/2021-02-28-22-49-46.bpo-41837.9fqyXC.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS installer build to use OpenSSL 1.1.1j.
diff --git a/README.rst b/README.rst
index 229b4cf58e9e2..f836af12f2cf6 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,4 @@
-This is Python version 3.8.8
+This is Python version 3.8.9
============================
.. image:: https://travis-ci.org/python/cpython.svg?branch=3.8
1
0
bpo-24160: Fix breakpoints persistence across multiple pdb sessions (GH-21989)
by gvanrossum 02 Apr '21
by gvanrossum 02 Apr '21
02 Apr '21
https://github.com/python/cpython/commit/ad442a674ca443feec43a88a2d36717847…
commit: ad442a674ca443feec43a88a2d3671784712e550
branch: master
author: Irit Katriel <iritkatriel(a)yahoo.com>
committer: gvanrossum <gvanrossum(a)gmail.com>
date: 2021-04-02T09:15:21-07:00
summary:
bpo-24160: Fix breakpoints persistence across multiple pdb sessions (GH-21989)
files:
A Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
M Lib/bdb.py
M Lib/test/test_bdb.py
M Lib/test/test_pdb.py
diff --git a/Lib/bdb.py b/Lib/bdb.py
index b18a0612d8c78..abb50c092e69b 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -34,6 +34,8 @@ def __init__(self, skip=None):
self.fncache = {}
self.frame_returning = None
+ self._load_breaks()
+
def canonic(self, filename):
"""Return canonical form of filename.
@@ -365,6 +367,12 @@ def set_quit(self):
# Call self.get_*break*() to see the breakpoints or better
# for bp in Breakpoint.bpbynumber: if bp: bp.bpprint().
+ def _add_to_breaks(self, filename, lineno):
+ """Add breakpoint to breaks, if not already there."""
+ bp_linenos = self.breaks.setdefault(filename, [])
+ if lineno not in bp_linenos:
+ bp_linenos.append(lineno)
+
def set_break(self, filename, lineno, temporary=False, cond=None,
funcname=None):
"""Set a new breakpoint for filename:lineno.
@@ -377,12 +385,21 @@ def set_break(self, filename, lineno, temporary=False, cond=None,
line = linecache.getline(filename, lineno)
if not line:
return 'Line %s:%d does not exist' % (filename, lineno)
- list = self.breaks.setdefault(filename, [])
- if lineno not in list:
- list.append(lineno)
+ self._add_to_breaks(filename, lineno)
bp = Breakpoint(filename, lineno, temporary, cond, funcname)
return None
+ def _load_breaks(self):
+ """Apply all breakpoints (set in other instances) to this one.
+
+ Populates this instance's breaks list from the Breakpoint class's
+ list, which can have breakpoints set by another Bdb instance. This
+ is necessary for interactive sessions to keep the breakpoints
+ active across multiple calls to run().
+ """
+ for (filename, lineno) in Breakpoint.bplist.keys():
+ self._add_to_breaks(filename, lineno)
+
def _prune_breaks(self, filename, lineno):
"""Prune breakpoints for filename:lineno.
@@ -681,6 +698,12 @@ def __init__(self, file, line, temporary=False, cond=None, funcname=None):
else:
self.bplist[file, line] = [self]
+ @staticmethod
+ def clearBreakpoints():
+ Breakpoint.next = 1
+ Breakpoint.bplist = {}
+ Breakpoint.bpbynumber = [None]
+
def deleteMe(self):
"""Delete the breakpoint from the list associated to a file:line.
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index 71be069d2412c..398698c79c16d 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -74,9 +74,7 @@ class BdbNotExpectedError(BdbException): """Unexpected result."""
dry_run = 0
def reset_Breakpoint():
- _bdb.Breakpoint.next = 1
- _bdb.Breakpoint.bplist = {}
- _bdb.Breakpoint.bpbynumber = [None]
+ _bdb.Breakpoint.clearBreakpoints()
def info_breakpoints():
bp_list = [bp for bp in _bdb.Breakpoint.bpbynumber if bp]
@@ -951,6 +949,49 @@ def test_clear_at_no_bp(self):
with TracerRun(self) as tracer:
self.assertRaises(BdbError, tracer.runcall, tfunc_import)
+ def test_load_bps_from_previous_Bdb_instance(self):
+ reset_Breakpoint()
+ db1 = Bdb()
+ fname = db1.canonic(__file__)
+ db1.set_break(__file__, 1)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+
+ db2 = Bdb()
+ db2.set_break(__file__, 2)
+ db2.set_break(__file__, 3)
+ db2.set_break(__file__, 4)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [1, 2, 3, 4]})
+ db2.clear_break(__file__, 1)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [2, 3, 4]})
+
+ db3 = Bdb()
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [2, 3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+ db2.clear_break(__file__, 2)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+
+ db4 = Bdb()
+ db4.set_break(__file__, 5)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+ self.assertEqual(db4.get_all_breaks(), {fname: [3, 4, 5]})
+ reset_Breakpoint()
+
+ db5 = Bdb()
+ db5.set_break(__file__, 6)
+ self.assertEqual(db1.get_all_breaks(), {fname: [1]})
+ self.assertEqual(db2.get_all_breaks(), {fname: [3, 4]})
+ self.assertEqual(db3.get_all_breaks(), {fname: [2, 3, 4]})
+ self.assertEqual(db4.get_all_breaks(), {fname: [3, 4, 5]})
+ self.assertEqual(db5.get_all_breaks(), {fname: [6]})
+
+
class RunTestCase(BaseTestCase):
"""Test run, runeval and set_trace."""
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index d5abc3f95daca..98e2b937d1339 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -213,6 +213,9 @@ def test_pdb_basic_commands():
BAZ
"""
+def reset_Breakpoint():
+ import bdb
+ bdb.Breakpoint.clearBreakpoints()
def test_pdb_breakpoint_commands():
"""Test basic commands related to breakpoints.
@@ -227,10 +230,7 @@ def test_pdb_breakpoint_commands():
First, need to clear bdb state that might be left over from previous tests.
Otherwise, the new breakpoints might get assigned different numbers.
- >>> from bdb import Breakpoint
- >>> Breakpoint.next = 1
- >>> Breakpoint.bplist = {}
- >>> Breakpoint.bpbynumber = [None]
+ >>> reset_Breakpoint()
Now test the breakpoint commands. NORMALIZE_WHITESPACE is needed because
the breakpoint list outputs a tab for the "stop only" and "ignore next"
@@ -323,6 +323,72 @@ def test_pdb_breakpoint_commands():
4
"""
+def test_pdb_breakpoints_preserved_across_interactive_sessions():
+ """Breakpoints are remembered between interactive sessions
+
+ >>> reset_Breakpoint()
+ >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
+ ... 'import test.test_pdb',
+ ... 'break test.test_pdb.do_something',
+ ... 'break test.test_pdb.do_nothing',
+ ... 'break',
+ ... 'continue',
+ ... ]):
+ ... pdb.run('print()')
+ > <string>(1)<module>()
+ (Pdb) import test.test_pdb
+ (Pdb) break test.test_pdb.do_something
+ Breakpoint 1 at ...test_pdb.py:...
+ (Pdb) break test.test_pdb.do_nothing
+ Breakpoint 2 at ...test_pdb.py:...
+ (Pdb) break
+ Num Type Disp Enb Where
+ 1 breakpoint keep yes at ...test_pdb.py:...
+ 2 breakpoint keep yes at ...test_pdb.py:...
+ (Pdb) continue
+
+ >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
+ ... 'break',
+ ... 'break pdb.find_function',
+ ... 'break',
+ ... 'clear 1',
+ ... 'continue',
+ ... ]):
+ ... pdb.run('print()')
+ > <string>(1)<module>()
+ (Pdb) break
+ Num Type Disp Enb Where
+ 1 breakpoint keep yes at ...test_pdb.py:...
+ 2 breakpoint keep yes at ...test_pdb.py:...
+ (Pdb) break pdb.find_function
+ Breakpoint 3 at ...pdb.py:94
+ (Pdb) break
+ Num Type Disp Enb Where
+ 1 breakpoint keep yes at ...test_pdb.py:...
+ 2 breakpoint keep yes at ...test_pdb.py:...
+ 3 breakpoint keep yes at ...pdb.py:...
+ (Pdb) clear 1
+ Deleted breakpoint 1 at ...test_pdb.py:...
+ (Pdb) continue
+
+ >>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
+ ... 'break',
+ ... 'clear 2',
+ ... 'clear 3',
+ ... 'continue',
+ ... ]):
+ ... pdb.run('print()')
+ > <string>(1)<module>()
+ (Pdb) break
+ Num Type Disp Enb Where
+ 2 breakpoint keep yes at ...test_pdb.py:...
+ 3 breakpoint keep yes at ...pdb.py:...
+ (Pdb) clear 2
+ Deleted breakpoint 2 at ...test_pdb.py:...
+ (Pdb) clear 3
+ Deleted breakpoint 3 at ...pdb.py:...
+ (Pdb) continue
+ """
def do_nothing():
pass
@@ -699,8 +765,7 @@ def test_next_until_return_at_return_event():
... test_function_2()
... end = 1
- >>> from bdb import Breakpoint
- >>> Breakpoint.next = 1
+ >>> reset_Breakpoint()
>>> with PdbTestInput(['break test_function_2',
... 'continue',
... 'return',
@@ -1137,7 +1202,7 @@ def test_pdb_next_command_in_generator_for_loop():
> <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[1]>(3)test_function()
-> for i in test_gen():
(Pdb) break test_gen
- Breakpoint 6 at <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>:1
+ Breakpoint 1 at <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>:1
(Pdb) continue
> <doctest test.test_pdb.test_pdb_next_command_in_generator_for_loop[0]>(2)test_gen()
-> yield 0
@@ -1213,6 +1278,7 @@ def test_pdb_issue_20766():
... print('pdb %d: %s' % (i, sess._previous_sigint_handler))
... i += 1
+ >>> reset_Breakpoint()
>>> with PdbTestInput(['continue',
... 'continue']):
... test_function()
diff --git a/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst b/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
new file mode 100644
index 0000000000000..c0cfd87b878af
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-08-28-23-07-53.bpo-24160.MSGnKr.rst
@@ -0,0 +1 @@
+Fixed bug where breakpoints did not persist across multiple debugger sessions in :mod:`pdb`'s interactive mode.
1
0
02 Apr '21
https://github.com/python/cpython/commit/afd12650580725ac598b2845384771c14c…
commit: afd12650580725ac598b2845384771c14c4f952e
branch: master
author: Zackery Spytz <zspytz(a)gmail.com>
committer: corona10 <donghee.na92(a)gmail.com>
date: 2021-04-03T00:28:35+09:00
summary:
bpo-31956: Add start and stop parameters to array.index() (GH-25059)
Co-Authored-By: Anders Lorentsen <Phaqui(a)gmail.com>
files:
A Misc/NEWS.d/next/Library/2021-03-28-16-53-25.bpo-31956.Lt_67U.rst
M Doc/library/array.rst
M Doc/whatsnew/3.10.rst
M Lib/test/test_array.py
M Modules/arraymodule.c
M Modules/clinic/arraymodule.c.h
diff --git a/Doc/library/array.rst b/Doc/library/array.rst
index ff3ec6b1fd723..18a768d7de26c 100644
--- a/Doc/library/array.rst
+++ b/Doc/library/array.rst
@@ -178,11 +178,15 @@ The following data items and methods are also supported:
array of some other type.
-.. method:: array.index(x)
+.. method:: array.index(x[, start[, stop]])
Return the smallest *i* such that *i* is the index of the first occurrence of
- *x* in the array.
+ *x* in the array. The optional arguments *start* and *stop* can be
+ specified to search for *x* within a subsection of the array. Raise
+ :exc:`ValueError` if *x* is not found.
+ .. versionchanged:: 3.10
+ Added optional *start* and *stop* parameters.
.. method:: array.insert(i, x)
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index b84bcf93edb1e..eb42480756241 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -633,6 +633,13 @@ argparse
Misleading phrase "optional arguments" was replaced with "options" in argparse help. Some tests might require adaptation if they rely on exact output match.
(Contributed by Raymond Hettinger in :issue:`9694`.)
+array
+-----
+
+The :meth:`~array.array.index` method of :class:`array.array` now has
+optional *start* and *stop* parameters.
+(Contributed by Anders Lorentsen and Zackery Spytz in :issue:`31956`.)
+
base64
------
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
index 77a0c64a88e6c..bdcd1254b304f 100644
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -918,6 +918,17 @@ def test_index(self):
self.assertRaises(ValueError, a.index, None)
self.assertRaises(ValueError, a.index, self.outside)
+ a = array.array('i', [-2, -1, 0, 0, 1, 2])
+ self.assertEqual(a.index(0), 2)
+ self.assertEqual(a.index(0, 2), 2)
+ self.assertEqual(a.index(0, -4), 2)
+ self.assertEqual(a.index(-2, -10), 0)
+ self.assertEqual(a.index(0, 3), 3)
+ self.assertEqual(a.index(0, -3), 3)
+ self.assertEqual(a.index(0, 3, 4), 3)
+ self.assertEqual(a.index(0, -3, -2), 3)
+ self.assertRaises(ValueError, a.index, 2, 0, -10)
+
def test_count(self):
example = 2*self.example
a = array.array(self.typecode, example)
diff --git a/Misc/NEWS.d/next/Library/2021-03-28-16-53-25.bpo-31956.Lt_67U.rst b/Misc/NEWS.d/next/Library/2021-03-28-16-53-25.bpo-31956.Lt_67U.rst
new file mode 100644
index 0000000000000..5285fd38ebb8a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-03-28-16-53-25.bpo-31956.Lt_67U.rst
@@ -0,0 +1,2 @@
+The :meth:`~array.array.index` method of :class:`array.array` now has
+optional *start* and *stop* parameters.
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index e7d5ab77a6d5c..fb9ebbe9f4870 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1136,18 +1136,32 @@ array_array_count(arrayobject *self, PyObject *v)
array.array.index
v: object
+ start: slice_index(accept={int}) = 0
+ stop: slice_index(accept={int}, c_default="PY_SSIZE_T_MAX") = sys.maxsize
/
Return index of first occurrence of v in the array.
+
+Raise ValueError if the value is not present.
[clinic start generated code]*/
static PyObject *
-array_array_index(arrayobject *self, PyObject *v)
-/*[clinic end generated code: output=d48498d325602167 input=cf619898c6649d08]*/
-{
- Py_ssize_t i;
-
- for (i = 0; i < Py_SIZE(self); i++) {
+array_array_index_impl(arrayobject *self, PyObject *v, Py_ssize_t start,
+ Py_ssize_t stop)
+/*[clinic end generated code: output=c45e777880c99f52 input=089dff7baa7e5a7e]*/
+{
+ if (start < 0) {
+ start += Py_SIZE(self);
+ if (start < 0) {
+ start = 0;
+ }
+ }
+ if (stop < 0) {
+ stop += Py_SIZE(self);
+ }
+ // Use Py_SIZE() for every iteration in case the array is mutated
+ // during PyObject_RichCompareBool()
+ for (Py_ssize_t i = start; i < stop && i < Py_SIZE(self); i++) {
PyObject *selfi;
int cmp;
diff --git a/Modules/clinic/arraymodule.c.h b/Modules/clinic/arraymodule.c.h
index d0b70c46ff570..d2513eb4f48cf 100644
--- a/Modules/clinic/arraymodule.c.h
+++ b/Modules/clinic/arraymodule.c.h
@@ -39,13 +39,50 @@ PyDoc_STRVAR(array_array_count__doc__,
{"count", (PyCFunction)array_array_count, METH_O, array_array_count__doc__},
PyDoc_STRVAR(array_array_index__doc__,
-"index($self, v, /)\n"
+"index($self, v, start=0, stop=sys.maxsize, /)\n"
"--\n"
"\n"
-"Return index of first occurrence of v in the array.");
+"Return index of first occurrence of v in the array.\n"
+"\n"
+"Raise ValueError if the value is not present.");
#define ARRAY_ARRAY_INDEX_METHODDEF \
- {"index", (PyCFunction)array_array_index, METH_O, array_array_index__doc__},
+ {"index", (PyCFunction)(void(*)(void))array_array_index, METH_FASTCALL, array_array_index__doc__},
+
+static PyObject *
+array_array_index_impl(arrayobject *self, PyObject *v, Py_ssize_t start,
+ Py_ssize_t stop);
+
+static PyObject *
+array_array_index(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *v;
+ Py_ssize_t start = 0;
+ Py_ssize_t stop = PY_SSIZE_T_MAX;
+
+ if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
+ goto exit;
+ }
+ v = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
+ goto exit;
+ }
+skip_optional:
+ return_value = array_array_index_impl(self, v, start, stop);
+
+exit:
+ return return_value;
+}
PyDoc_STRVAR(array_array_remove__doc__,
"remove($self, v, /)\n"
@@ -535,4 +572,4 @@ PyDoc_STRVAR(array_arrayiterator___setstate____doc__,
#define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF \
{"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
-/*[clinic end generated code: output=a7f71a18b994c88f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=376001addedc67ee input=a9049054013a1b77]*/
1
0
https://github.com/python/cpython/commit/240bcf82a11fe7433a61da70605e924c53…
commit: 240bcf82a11fe7433a61da70605e924c53b88096
branch: master
author: Victor Stinner <vstinner(a)python.org>
committer: vstinner <vstinner(a)python.org>
date: 2021-04-02T16:48:11+02:00
summary:
bpo-41111: xxlimited.c defines Py_LIMITED_API (GH-25151)
xxlimited.c and xxlimited_35.c now define the Py_LIMITED_API macro,
rather than having to do it in the build recipe.
Co-authored-by: Hai Shi <shihai1992(a)gmail.com>
files:
M Modules/xxlimited.c
M Modules/xxlimited_35.c
M PCbuild/xxlimited.vcxproj
M PCbuild/xxlimited_35.vcxproj
M setup.py
diff --git a/Modules/xxlimited.c b/Modules/xxlimited.c
index 883c8a9b5e183..c3d98d34eb591 100644
--- a/Modules/xxlimited.c
+++ b/Modules/xxlimited.c
@@ -55,6 +55,8 @@
pass
*/
+#define Py_LIMITED_API 0x030a0000
+
#include "Python.h"
// Module state
diff --git a/Modules/xxlimited_35.c b/Modules/xxlimited_35.c
index ce96e8c90efd4..5e93854f68571 100644
--- a/Modules/xxlimited_35.c
+++ b/Modules/xxlimited_35.c
@@ -5,10 +5,12 @@
* See the xxlimited module for an extension module template.
*/
-/* Xxo objects */
+#define Py_LIMITED_API 0x03050000
#include "Python.h"
+/* Xxo objects */
+
static PyObject *ErrorObject;
typedef struct {
diff --git a/PCbuild/xxlimited.vcxproj b/PCbuild/xxlimited.vcxproj
index 61e4e5784e7ab..1c776fb0da3e7 100644
--- a/PCbuild/xxlimited.vcxproj
+++ b/PCbuild/xxlimited.vcxproj
@@ -93,9 +93,6 @@
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
</PropertyGroup>
<ItemDefinitionGroup>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);Py_LIMITED_API=0x030A0000</PreprocessorDefinitions>
- </ClCompile>
<Link>
<AdditionalDependencies>wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
diff --git a/PCbuild/xxlimited_35.vcxproj b/PCbuild/xxlimited_35.vcxproj
index 7e49eadf9037d..dd830b3b6aaa9 100644
--- a/PCbuild/xxlimited_35.vcxproj
+++ b/PCbuild/xxlimited_35.vcxproj
@@ -93,9 +93,6 @@
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
</PropertyGroup>
<ItemDefinitionGroup>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);Py_LIMITED_API=0x03060000</PreprocessorDefinitions>
- </ClCompile>
<Link>
<AdditionalDependencies>wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
diff --git a/setup.py b/setup.py
index 3b4e7ae70a4ec..edf3cb4f230b5 100644
--- a/setup.py
+++ b/setup.py
@@ -1865,10 +1865,8 @@ def detect_modules(self):
## self.add(Extension('xx', ['xxmodule.c']))
# Limited C API
- self.add(Extension('xxlimited', ['xxlimited.c'],
- define_macros=[('Py_LIMITED_API', '0x030a0000')]))
- self.add(Extension('xxlimited_35', ['xxlimited_35.c'],
- define_macros=[('Py_LIMITED_API', '0x03050000')]))
+ self.add(Extension('xxlimited', ['xxlimited.c']))
+ self.add(Extension('xxlimited_35', ['xxlimited_35.c']))
def detect_tkinter_fromenv(self):
# Build _tkinter using the Tcl/Tk locations specified by
1
0
02 Apr '21
https://github.com/python/cpython/commit/9bb5658bd122d40fff9f34a912be3297b3…
commit: 9bb5658bd122d40fff9f34a912be3297b303d18b
branch: master
author: Victor Stinner <vstinner(a)python.org>
committer: vstinner <vstinner(a)python.org>
date: 2021-04-02T16:46:08+02:00
summary:
bpo-43688: Support "make regen-limited-abi" in debug mode (GH-25133)
files:
M Tools/scripts/stable_abi.py
diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py
index 14fcf2f56a207..1690cfce1727d 100755
--- a/Tools/scripts/stable_abi.py
+++ b/Tools/scripts/stable_abi.py
@@ -91,11 +91,6 @@ def check_library(stable_abi_file, library, abi_funcs, dynamic=False):
def generate_limited_api_symbols(args):
- if hasattr(sys, "gettotalrefcount"):
- print(
- "Stable ABI symbols cannot be generated from a debug build", file=sys.stderr
- )
- sys.exit(1)
library = sysconfig.get_config_var("LIBRARY")
ldlibrary = sysconfig.get_config_var("LDLIBRARY")
if ldlibrary != library:
1
0