summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2012-04-26 00:18:24 (GMT)
committerBrett Cannon <brett@python.org>2012-04-26 00:18:24 (GMT)
commit5a5d6a10333af38c753b82f8d1bef14906c12b61 (patch)
tree9bc3c6d28e29f08646775fec90e8b5000a633f02
parent8923a4d4c514a621b7f99ee0f3ebdde319aee0e9 (diff)
parent718fbf078cef405318dc712a2c32fbc12e87de02 (diff)
downloadcpython-5a5d6a10333af38c753b82f8d1bef14906c12b61.zip
cpython-5a5d6a10333af38c753b82f8d1bef14906c12b61.tar.gz
cpython-5a5d6a10333af38c753b82f8d1bef14906c12b61.tar.bz2
Merge
-rw-r--r--Lib/importlib/_bootstrap.py7
-rw-r--r--Lib/test/test_logging.py34
-rw-r--r--Lib/unittest/case.py2
-rw-r--r--Lib/unittest/test/test_skipping.py15
-rw-r--r--Makefile.pre.in15
-rw-r--r--Misc/NEWS6
-rw-r--r--Objects/longobject.c2
-rw-r--r--Objects/unicodeobject.c8
-rw-r--r--Python/importlib.h226
-rw-r--r--Tools/msi/msi.py22
-rwxr-xr-xTools/scripts/import_diagnostics.py39
11 files changed, 238 insertions, 138 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 817fe39..47ccd41 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -6,6 +6,13 @@ such it requires the injection of specific modules and attributes in order to
work. One should use importlib as the public-facing version of this module.
"""
+#
+# IMPORTANT: Whenever making changes to this module, be sure to run
+# a top-level make in order to get the frozen version of the module
+# update. Not doing so, will result in the Makefile to fail for
+# all others who don't have a ./python around to freeze the module
+# in the early stages of compilation.
+#
# See importlib._setup() for what is injected into the global namespace.
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index ee1c211..2279952 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -593,28 +593,28 @@ class HandlerTest(BaseTest):
pass
time.sleep(0.004 * random.randint(0, 4))
- def cleanup(remover, fn, handler):
- handler.close()
- remover.join()
- if os.path.exists(fn):
- os.unlink(fn)
+ del_count = 500
+ log_count = 500
- fd, fn = tempfile.mkstemp('.log', 'test_logging-3-')
- os.close(fd)
- del_count = 1000
- log_count = 1000
- remover = threading.Thread(target=remove_loop, args=(fn, del_count))
- remover.daemon = True
- remover.start()
for delay in (False, True):
+ fd, fn = tempfile.mkstemp('.log', 'test_logging-3-')
+ os.close(fd)
+ remover = threading.Thread(target=remove_loop, args=(fn, del_count))
+ remover.daemon = True
+ remover.start()
h = logging.handlers.WatchedFileHandler(fn, delay=delay)
- self.addCleanup(cleanup, remover, fn, h)
f = logging.Formatter('%(asctime)s: %(levelname)s: %(message)s')
h.setFormatter(f)
- for _ in range(log_count):
- time.sleep(0.005)
- r = logging.makeLogRecord({'msg': 'testing' })
- h.handle(r)
+ try:
+ for _ in range(log_count):
+ time.sleep(0.005)
+ r = logging.makeLogRecord({'msg': 'testing' })
+ h.handle(r)
+ finally:
+ h.close()
+ remover.join()
+ if os.path.exists(fn):
+ os.unlink(fn)
class BadStream(object):
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index 5bed868..28f0a2d 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -61,7 +61,7 @@ def skip(reason):
Unconditionally skip a test.
"""
def decorator(test_item):
- if not (isinstance(test_item, type) and issubclass(test_item, TestCase)):
+ if not isinstance(test_item, type):
@functools.wraps(test_item)
def skip_wrapper(*args, **kwargs):
raise SkipTest(reason)
diff --git a/Lib/unittest/test/test_skipping.py b/Lib/unittest/test/test_skipping.py
index b592464..952240e 100644
--- a/Lib/unittest/test/test_skipping.py
+++ b/Lib/unittest/test/test_skipping.py
@@ -66,6 +66,21 @@ class Test_TestSkipping(unittest.TestCase):
self.assertEqual(result.skipped, [(test, "testing")])
self.assertEqual(record, [])
+ def test_skip_non_unittest_class(self):
+ @unittest.skip("testing")
+ class Mixin:
+ def test_1(self):
+ record.append(1)
+ class Foo(Mixin, unittest.TestCase):
+ pass
+ record = []
+ result = unittest.TestResult()
+ test = Foo("test_1")
+ suite = unittest.TestSuite([test])
+ suite.run(result)
+ self.assertEqual(result.skipped, [(test, "testing")])
+ self.assertEqual(record, [])
+
def test_expected_failure(self):
class Foo(unittest.TestCase):
@unittest.expectedFailure
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 3f43837..e6b37f8 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -573,12 +573,23 @@ Modules/Setup: $(srcdir)/Modules/Setup.dist
Modules/_testembed: Modules/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
$(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+
############################################################################
# Importlib
Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Python/freeze_importlib.py
- ./$(BUILDPYTHON) $(srcdir)/Python/freeze_importlib.py \
- $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
+ @if test -f ./$(BUILDPYTHON); then \
+ ./$(BUILDPYTHON) $(srcdir)/Python/freeze_importlib.py \
+ $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h; \
+ else \
+ echo "----------------------------------------------------------"; \
+ echo "Python/importlib.h needs to be rebuilt, but no interpreter"; \
+ echo "is available to do so. Leaving the previous version in"; \
+ echo "place. You may want to run ''make'' a second time after"; \
+ echo "this build is complete."; \
+ echo "----------------------------------------------------------"; \
+ fi
+
############################################################################
# Special rules for object files
diff --git a/Misc/NEWS b/Misc/NEWS
index d6a44e2..f0f0807 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -71,6 +71,9 @@ Core and Builtins
Library
-------
+- Issue #14664: It is now possible to use @unittest.skip{If,Unless} on a
+ test class that doesn't inherit from TestCase (i.e. a mixin).
+
- Issue #4892: multiprocessing Connections can now be transferred over
multiprocessing Connections. Patch by Richard Oudkerk (sbt).
@@ -186,6 +189,9 @@ Tests
Tools / Demos
-------------
+- Issue #3561: The Windows installer now has an option, off by default, for
+ placing the Python installation into the system "Path" environment variable.
+
- Issue #13165: stringbench is now available in the Tools/stringbench folder.
It used to live in its own SVN project.
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 3630ae4..74c59c7 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -1657,6 +1657,7 @@ long_to_decimal_string(PyObject *aa)
/* check we've counted correctly */
assert(p == PyUnicode_1BYTE_DATA(str));
+ assert(_PyUnicode_CheckConsistency(str, 1));
Py_DECREF(scratch);
return (PyObject *)str;
}
@@ -1761,6 +1762,7 @@ _PyLong_Format(PyObject *aa, int base)
if (negative)
*--p = '-';
assert(p == PyUnicode_1BYTE_DATA(v));
+ assert(_PyUnicode_CheckConsistency(v, 1));
return v;
}
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 7efa939..364de90 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -375,10 +375,13 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
{
Py_ssize_t i;
Py_UCS4 maxchar = 0;
- void *data = PyUnicode_DATA(ascii);
+ void *data;
+ Py_UCS4 ch;
+
+ data = PyUnicode_DATA(ascii);
for (i=0; i < ascii->length; i++)
{
- Py_UCS4 ch = PyUnicode_READ(kind, data, i);
+ ch = PyUnicode_READ(kind, data, i);
if (ch > maxchar)
maxchar = ch;
}
@@ -398,6 +401,7 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
assert(maxchar >= 0x10000);
assert(maxchar <= MAX_UNICODE);
}
+ assert(PyUnicode_READ(kind, data, ascii->length) == 0);
}
return 1;
}
diff --git a/Python/importlib.h b/Python/importlib.h
index 8bc0d81..9dbd881 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -92,7 +92,7 @@ unsigned char _Py_M__importlib[] = {
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
62,117,11,0,0,0,95,114,101,108,97,120,95,99,97,115,
- 101,27,0,0,0,115,2,0,0,0,0,2,117,37,0,0,
+ 101,34,0,0,0,115,2,0,0,0,0,2,117,37,0,0,
0,95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,
101,46,60,108,111,99,97,108,115,62,46,95,114,101,108,97,
120,95,99,97,115,101,99,0,0,0,0,0,0,0,0,0,
@@ -106,7 +106,7 @@ unsigned char _Py_M__importlib[] = {
0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
114,97,112,62,117,11,0,0,0,95,114,101,108,97,120,95,
- 99,97,115,101,31,0,0,0,115,2,0,0,0,0,2,40,
+ 99,97,115,101,38,0,0,0,115,2,0,0,0,0,2,40,
4,0,0,0,117,3,0,0,0,115,121,115,117,8,0,0,
0,112,108,97,116,102,111,114,109,117,10,0,0,0,115,116,
97,114,116,115,119,105,116,104,117,26,0,0,0,67,65,83,
@@ -116,7 +116,7 @@ unsigned char _Py_M__importlib[] = {
0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
111,116,115,116,114,97,112,62,117,16,0,0,0,95,109,97,
- 107,101,95,114,101,108,97,120,95,99,97,115,101,25,0,0,
+ 107,101,95,114,101,108,97,120,95,99,97,115,101,32,0,0,
0,115,8,0,0,0,0,1,18,1,15,4,12,3,117,16,
0,0,0,95,109,97,107,101,95,114,101,108,97,120,95,99,
97,115,101,99,1,0,0,0,0,0,0,0,2,0,0,0,
@@ -143,7 +143,7 @@ unsigned char _Py_M__importlib[] = {
98,121,116,101,115,40,0,0,0,0,40,0,0,0,0,117,
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,7,0,0,0,95,119,95,108,111,110,103,38,0,0,
+ 62,117,7,0,0,0,95,119,95,108,111,110,103,45,0,0,
0,115,14,0,0,0,0,6,12,1,6,1,17,1,21,1,
21,1,21,1,117,7,0,0,0,95,119,95,108,111,110,103,
99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,
@@ -167,7 +167,7 @@ unsigned char _Py_M__importlib[] = {
0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
111,116,115,116,114,97,112,62,117,7,0,0,0,95,114,95,
- 108,111,110,103,54,0,0,0,115,10,0,0,0,0,6,10,
+ 108,111,110,103,61,0,0,0,115,10,0,0,0,0,6,10,
1,18,1,18,1,18,1,117,7,0,0,0,95,114,95,108,
111,110,103,99,0,0,0,0,0,0,0,0,3,0,0,0,
4,0,0,0,71,0,0,0,115,103,0,0,0,103,0,0,
@@ -191,7 +191,7 @@ unsigned char _Py_M__importlib[] = {
0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,10,0,0,0,95,112,97,116,104,95,106,111,
- 105,110,67,0,0,0,115,16,0,0,0,0,2,6,1,13,
+ 105,110,74,0,0,0,115,16,0,0,0,0,2,6,1,13,
1,6,1,6,1,13,1,16,1,20,1,117,10,0,0,0,
95,112,97,116,104,95,106,111,105,110,99,1,0,0,0,0,
0,0,0,6,0,0,0,3,0,0,0,67,0,0,0,115,
@@ -214,7 +214,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
115,116,114,97,112,62,117,11,0,0,0,95,112,97,116,104,
- 95,115,112,108,105,116,79,0,0,0,115,14,0,0,0,0,
+ 95,115,112,108,105,116,86,0,0,0,115,14,0,0,0,0,
2,19,1,12,1,6,1,8,2,6,1,24,1,117,11,0,
0,0,95,112,97,116,104,95,115,112,108,105,116,99,1,0,
0,0,0,0,0,0,1,0,0,0,11,0,0,0,67,0,
@@ -232,7 +232,7 @@ unsigned char _Py_M__importlib[] = {
0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
114,97,112,62,117,12,0,0,0,95,112,97,116,104,95,101,
- 120,105,115,116,115,91,0,0,0,115,10,0,0,0,0,2,
+ 120,105,115,116,115,98,0,0,0,115,10,0,0,0,0,2,
3,1,17,1,13,1,9,2,117,12,0,0,0,95,112,97,
116,104,95,101,120,105,115,116,115,99,2,0,0,0,0,0,
0,0,3,0,0,0,11,0,0,0,67,0,0,0,115,61,
@@ -254,7 +254,7 @@ unsigned char _Py_M__importlib[] = {
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,18,0,0,0,95,
112,97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,
- 101,101,0,0,0,115,10,0,0,0,0,2,3,1,19,1,
+ 101,108,0,0,0,115,10,0,0,0,0,2,3,1,19,1,
13,1,9,1,117,18,0,0,0,95,112,97,116,104,95,105,
115,95,109,111,100,101,95,116,121,112,101,99,1,0,0,0,
0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
@@ -268,7 +268,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
115,116,114,97,112,62,117,12,0,0,0,95,112,97,116,104,
- 95,105,115,102,105,108,101,111,0,0,0,115,2,0,0,0,
+ 95,105,115,102,105,108,101,118,0,0,0,115,2,0,0,0,
0,2,117,12,0,0,0,95,112,97,116,104,95,105,115,102,
105,108,101,99,1,0,0,0,0,0,0,0,1,0,0,0,
3,0,0,0,67,0,0,0,115,34,0,0,0,124,0,0,
@@ -284,7 +284,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,11,0,0,0,95,112,97,116,104,95,
- 105,115,100,105,114,117,0,0,0,115,6,0,0,0,0,2,
+ 105,115,100,105,114,124,0,0,0,115,6,0,0,0,0,2,
6,1,15,1,117,11,0,0,0,95,112,97,116,104,95,105,
115,100,105,114,99,2,0,0,0,0,0,0,0,3,0,0,
0,5,0,0,0,67,0,0,0,115,75,0,0,0,120,68,
@@ -308,7 +308,7 @@ unsigned char _Py_M__importlib[] = {
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,17,0,0,
0,95,112,97,116,104,95,119,105,116,104,111,117,116,95,101,
- 120,116,124,0,0,0,115,8,0,0,0,0,2,19,1,15,
+ 120,116,131,0,0,0,115,8,0,0,0,0,2,19,1,15,
1,25,2,117,17,0,0,0,95,112,97,116,104,95,119,105,
116,104,111,117,116,95,101,120,116,99,1,0,0,0,0,0,
0,0,1,0,0,0,11,0,0,0,67,0,0,0,115,101,
@@ -332,7 +332,7 @@ unsigned char _Py_M__importlib[] = {
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
62,117,14,0,0,0,95,112,97,116,104,95,97,98,115,111,
- 108,117,116,101,133,0,0,0,115,16,0,0,0,0,2,6,
+ 108,117,116,101,140,0,0,0,115,16,0,0,0,0,2,6,
1,15,1,3,1,17,1,13,1,15,1,4,2,117,14,0,
0,0,95,112,97,116,104,95,97,98,115,111,108,117,116,101,
99,2,0,0,0,0,0,0,0,5,0,0,0,17,0,0,
@@ -376,7 +376,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,13,0,0,0,95,119,114,105,116,101,
- 95,97,116,111,109,105,99,146,0,0,0,115,24,0,0,0,
+ 95,97,116,111,109,105,99,153,0,0,0,115,24,0,0,0,
0,5,24,1,38,1,3,3,21,1,19,1,20,1,13,1,
3,1,17,1,13,1,5,1,117,13,0,0,0,95,119,114,
105,116,101,95,97,116,111,109,105,99,99,2,0,0,0,0,
@@ -403,7 +403,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
95,98,111,111,116,115,116,114,97,112,62,117,5,0,0,0,
- 95,119,114,97,112,167,0,0,0,115,8,0,0,0,0,2,
+ 95,119,114,97,112,174,0,0,0,115,8,0,0,0,0,2,
25,1,15,1,32,1,117,5,0,0,0,95,119,114,97,112,
99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,
0,67,0,0,0,115,16,0,0,0,116,0,0,116,1,0,
@@ -418,7 +418,7 @@ unsigned char _Py_M__importlib[] = {
97,109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 11,0,0,0,95,110,101,119,95,109,111,100,117,108,101,178,
+ 11,0,0,0,95,110,101,119,95,109,111,100,117,108,101,185,
0,0,0,115,2,0,0,0,0,6,117,11,0,0,0,95,
110,101,119,95,109,111,100,117,108,101,117,11,0,0,0,95,
95,112,121,99,97,99,104,101,95,95,117,3,0,0,0,46,
@@ -481,7 +481,7 @@ unsigned char _Py_M__importlib[] = {
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,18,
0,0,0,95,99,97,99,104,101,95,102,114,111,109,95,115,
- 111,117,114,99,101,197,0,0,0,115,12,0,0,0,0,11,
+ 111,117,114,99,101,204,0,0,0,115,12,0,0,0,0,11,
24,1,18,1,18,1,24,1,27,1,117,18,0,0,0,95,
99,97,99,104,101,95,102,114,111,109,95,115,111,117,114,99,
101,99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,
@@ -509,7 +509,7 @@ unsigned char _Py_M__importlib[] = {
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
15,0,0,0,118,101,114,98,111,115,101,95,109,101,115,115,
- 97,103,101,216,0,0,0,115,8,0,0,0,0,2,12,1,
+ 97,103,101,223,0,0,0,115,8,0,0,0,0,2,12,1,
15,1,13,1,117,15,0,0,0,118,101,114,98,111,115,101,
95,109,101,115,115,97,103,101,99,1,0,0,0,0,0,0,
0,2,0,0,0,3,0,0,0,3,0,0,0,115,35,0,
@@ -541,7 +541,7 @@ unsigned char _Py_M__importlib[] = {
101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
111,116,115,116,114,97,112,62,117,19,0,0,0,115,101,116,
95,112,97,99,107,97,103,101,95,119,114,97,112,112,101,114,
- 226,0,0,0,115,12,0,0,0,0,1,15,1,31,1,12,
+ 233,0,0,0,115,12,0,0,0,0,1,15,1,31,1,12,
1,15,1,31,1,117,40,0,0,0,115,101,116,95,112,97,
99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,115,
101,116,95,112,97,99,107,97,103,101,95,119,114,97,112,112,
@@ -552,7 +552,7 @@ unsigned char _Py_M__importlib[] = {
117,3,0,0,0,102,120,110,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,11,0,0,0,115,
- 101,116,95,112,97,99,107,97,103,101,224,0,0,0,115,6,
+ 101,116,95,112,97,99,107,97,103,101,231,0,0,0,115,6,
0,0,0,0,2,18,7,13,1,117,11,0,0,0,115,101,
116,95,112,97,99,107,97,103,101,99,1,0,0,0,0,0,
0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,35,
@@ -576,7 +576,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
116,115,116,114,97,112,62,117,18,0,0,0,115,101,116,95,
- 108,111,97,100,101,114,95,119,114,97,112,112,101,114,239,0,
+ 108,111,97,100,101,114,95,119,114,97,112,112,101,114,246,0,
0,0,115,8,0,0,0,0,1,18,1,15,1,12,1,117,
38,0,0,0,115,101,116,95,108,111,97,100,101,114,46,60,
108,111,99,97,108,115,62,46,115,101,116,95,108,111,97,100,
@@ -588,7 +588,7 @@ unsigned char _Py_M__importlib[] = {
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
62,117,10,0,0,0,115,101,116,95,108,111,97,100,101,114,
- 237,0,0,0,115,6,0,0,0,0,2,18,5,13,1,117,
+ 244,0,0,0,115,6,0,0,0,0,2,18,5,13,1,117,
10,0,0,0,115,101,116,95,108,111,97,100,101,114,99,1,
0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,
0,0,0,115,35,0,0,0,135,0,0,102,1,0,100,1,
@@ -651,7 +651,7 @@ unsigned char _Py_M__importlib[] = {
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,25,0,0,0,109,111,100,117,108,101,95,102,
111,114,95,108,111,97,100,101,114,95,119,114,97,112,112,101,
- 114,5,1,0,0,115,22,0,0,0,0,1,18,1,12,1,
+ 114,12,1,0,0,115,22,0,0,0,0,1,18,1,12,1,
6,4,12,1,16,1,3,1,23,1,3,1,6,1,13,1,
117,52,0,0,0,109,111,100,117,108,101,95,102,111,114,95,
108,111,97,100,101,114,46,60,108,111,99,97,108,115,62,46,
@@ -664,7 +664,7 @@ unsigned char _Py_M__importlib[] = {
0,0,102,120,110,117,29,0,0,0,60,102,114,111,122,101,
110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
116,115,116,114,97,112,62,117,17,0,0,0,109,111,100,117,
- 108,101,95,102,111,114,95,108,111,97,100,101,114,248,0,0,
+ 108,101,95,102,111,114,95,108,111,97,100,101,114,255,0,0,
0,115,6,0,0,0,0,13,18,15,13,1,117,17,0,0,
0,109,111,100,117,108,101,95,102,111,114,95,108,111,97,100,
101,114,99,1,0,0,0,0,0,0,0,2,0,0,0,3,
@@ -704,7 +704,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,19,0,0,0,95,99,104,101,99,107,
- 95,110,97,109,101,95,119,114,97,112,112,101,114,32,1,0,
+ 95,110,97,109,101,95,119,114,97,112,112,101,114,39,1,0,
0,115,6,0,0,0,0,1,15,1,25,1,117,40,0,0,
0,95,99,104,101,99,107,95,110,97,109,101,46,60,108,111,
99,97,108,115,62,46,95,99,104,101,99,107,95,110,97,109,
@@ -716,7 +716,7 @@ unsigned char _Py_M__importlib[] = {
101,116,104,111,100,117,29,0,0,0,60,102,114,111,122,101,
110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
116,115,116,114,97,112,62,117,11,0,0,0,95,99,104,101,
- 99,107,95,110,97,109,101,24,1,0,0,115,6,0,0,0,
+ 99,107,95,110,97,109,101,31,1,0,0,115,6,0,0,0,
0,8,18,4,13,1,117,11,0,0,0,95,99,104,101,99,
107,95,110,97,109,101,99,1,0,0,0,0,0,0,0,2,
0,0,0,3,0,0,0,3,0,0,0,115,35,0,0,0,
@@ -745,7 +745,7 @@ unsigned char _Py_M__importlib[] = {
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,25,0,0,0,95,114,101,113,117,105,114,101,115,
95,98,117,105,108,116,105,110,95,119,114,97,112,112,101,114,
- 42,1,0,0,115,8,0,0,0,0,1,15,1,18,1,12,
+ 49,1,0,0,115,8,0,0,0,0,1,15,1,18,1,12,
1,117,52,0,0,0,95,114,101,113,117,105,114,101,115,95,
98,117,105,108,116,105,110,46,60,108,111,99,97,108,115,62,
46,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
@@ -757,7 +757,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,102,120,110,117,29,0,0,0,60,102,114,111,122,
101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
111,116,115,116,114,97,112,62,117,17,0,0,0,95,114,101,
- 113,117,105,114,101,115,95,98,117,105,108,116,105,110,40,1,
+ 113,117,105,114,101,115,95,98,117,105,108,116,105,110,47,1,
0,0,115,6,0,0,0,0,2,18,5,13,1,117,17,0,
0,0,95,114,101,113,117,105,114,101,115,95,98,117,105,108,
116,105,110,99,1,0,0,0,0,0,0,0,2,0,0,0,
@@ -785,7 +785,7 @@ unsigned char _Py_M__importlib[] = {
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
62,117,24,0,0,0,95,114,101,113,117,105,114,101,115,95,
- 102,114,111,122,101,110,95,119,114,97,112,112,101,114,53,1,
+ 102,114,111,122,101,110,95,119,114,97,112,112,101,114,60,1,
0,0,115,8,0,0,0,0,1,15,1,18,1,12,1,117,
50,0,0,0,95,114,101,113,117,105,114,101,115,95,102,114,
111,122,101,110,46,60,108,111,99,97,108,115,62,46,95,114,
@@ -798,7 +798,7 @@ unsigned char _Py_M__importlib[] = {
110,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,16,0,0,0,95,114,101,113,117,105,114,101,
- 115,95,102,114,111,122,101,110,51,1,0,0,115,6,0,0,
+ 115,95,102,114,111,122,101,110,58,1,0,0,115,6,0,0,
0,0,2,18,5,13,1,117,16,0,0,0,95,114,101,113,
117,105,114,101,115,95,102,114,111,122,101,110,99,1,0,0,
0,0,0,0,0,1,0,0,0,3,0,0,0,3,0,0,
@@ -820,7 +820,7 @@ unsigned char _Py_M__importlib[] = {
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,10,0,0,0,60,108,105,115,116,99,111,109,112,
- 62,64,1,0,0,115,4,0,0,0,9,0,3,1,117,32,
+ 62,71,1,0,0,115,4,0,0,0,9,0,3,1,117,32,
0,0,0,95,115,117,102,102,105,120,95,108,105,115,116,46,
60,108,111,99,97,108,115,62,46,60,108,105,115,116,99,111,
109,112,62,40,2,0,0,0,117,4,0,0,0,95,105,109,
@@ -831,7 +831,7 @@ unsigned char _Py_M__importlib[] = {
101,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,12,0,0,0,95,115,117,102,102,105,120,95,
- 108,105,115,116,62,1,0,0,115,2,0,0,0,0,2,117,
+ 108,105,115,116,69,1,0,0,115,2,0,0,0,0,2,117,
12,0,0,0,95,115,117,102,102,105,120,95,108,105,115,116,
99,1,0,0,0,0,0,0,0,1,0,0,0,6,0,0,
0,66,0,0,0,115,155,0,0,0,124,0,0,69,101,0,
@@ -875,7 +875,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,11,0,0,0,102,105,110,100,95,109,
- 111,100,117,108,101,79,1,0,0,115,6,0,0,0,0,7,
+ 111,100,117,108,101,86,1,0,0,115,6,0,0,0,0,7,
12,1,4,1,117,27,0,0,0,66,117,105,108,116,105,110,
73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,
100,117,108,101,99,2,0,0,0,0,0,0,0,3,0,0,
@@ -896,7 +896,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,0,
- 0,108,111,97,100,95,109,111,100,117,108,101,90,1,0,0,
+ 0,108,111,97,100,95,109,111,100,117,108,101,97,1,0,0,
115,14,0,0,0,0,6,15,1,3,1,17,1,3,1,22,
1,13,1,117,27,0,0,0,66,117,105,108,116,105,110,73,
109,112,111,114,116,101,114,46,108,111,97,100,95,109,111,100,
@@ -912,7 +912,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,8,0,0,0,103,101,
- 116,95,99,111,100,101,104,1,0,0,115,2,0,0,0,0,
+ 116,95,99,111,100,101,111,1,0,0,115,2,0,0,0,0,
4,117,24,0,0,0,66,117,105,108,116,105,110,73,109,112,
111,114,116,101,114,46,103,101,116,95,99,111,100,101,99,2,
0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
@@ -927,7 +927,7 @@ unsigned char _Py_M__importlib[] = {
0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,10,0,0,0,103,101,116,95,115,111,117,114,
- 99,101,110,1,0,0,115,2,0,0,0,0,4,117,26,0,
+ 99,101,117,1,0,0,115,2,0,0,0,0,4,117,26,0,
0,0,66,117,105,108,116,105,110,73,109,112,111,114,116,101,
114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,0,
0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
@@ -941,7 +941,7 @@ unsigned char _Py_M__importlib[] = {
101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,0,
- 0,0,105,115,95,112,97,99,107,97,103,101,116,1,0,0,
+ 0,0,105,115,95,112,97,99,107,97,103,101,123,1,0,0,
115,2,0,0,0,0,4,117,26,0,0,0,66,117,105,108,
116,105,110,73,109,112,111,114,116,101,114,46,105,115,95,112,
97,99,107,97,103,101,78,40,14,0,0,0,117,8,0,0,
@@ -963,7 +963,7 @@ unsigned char _Py_M__importlib[] = {
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,15,
0,0,0,66,117,105,108,116,105,110,73,109,112,111,114,116,
- 101,114,70,1,0,0,115,26,0,0,0,16,7,6,2,3,
+ 101,114,77,1,0,0,115,26,0,0,0,16,7,6,2,3,
1,18,10,3,1,3,1,3,1,27,11,3,1,21,5,3,
1,21,5,3,1,117,15,0,0,0,66,117,105,108,116,105,
110,73,109,112,111,114,116,101,114,99,1,0,0,0,0,0,
@@ -1001,7 +1001,7 @@ unsigned char _Py_M__importlib[] = {
116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,
- 0,0,0,102,105,110,100,95,109,111,100,117,108,101,132,1,
+ 0,0,0,102,105,110,100,95,109,111,100,117,108,101,139,1,
0,0,115,2,0,0,0,0,3,117,26,0,0,0,70,114,
111,122,101,110,73,109,112,111,114,116,101,114,46,102,105,110,
100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,
@@ -1022,7 +1022,7 @@ unsigned char _Py_M__importlib[] = {
100,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,
- 0,0,108,111,97,100,95,109,111,100,117,108,101,137,1,0,
+ 0,0,108,111,97,100,95,109,111,100,117,108,101,144,1,0,
0,115,14,0,0,0,0,6,15,1,3,1,17,1,3,1,
22,1,13,1,117,26,0,0,0,70,114,111,122,101,110,73,
109,112,111,114,116,101,114,46,108,111,97,100,95,109,111,100,
@@ -1039,7 +1039,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,
114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
95,98,111,111,116,115,116,114,97,112,62,117,8,0,0,0,
- 103,101,116,95,99,111,100,101,151,1,0,0,115,2,0,0,
+ 103,101,116,95,99,111,100,101,158,1,0,0,115,2,0,0,
0,0,4,117,23,0,0,0,70,114,111,122,101,110,73,109,
112,111,114,116,101,114,46,103,101,116,95,99,111,100,101,99,
2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
@@ -1054,7 +1054,7 @@ unsigned char _Py_M__importlib[] = {
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,10,0,0,0,103,101,116,95,115,111,117,114,99,
- 101,157,1,0,0,115,2,0,0,0,0,4,117,25,0,0,
+ 101,164,1,0,0,115,2,0,0,0,0,4,117,25,0,0,
0,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,
103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,
0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,
@@ -1069,7 +1069,7 @@ unsigned char _Py_M__importlib[] = {
109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,
- 0,0,0,105,115,95,112,97,99,107,97,103,101,163,1,0,
+ 0,0,0,105,115,95,112,97,99,107,97,103,101,170,1,0,
0,115,2,0,0,0,0,4,117,25,0,0,0,70,114,111,
122,101,110,73,109,112,111,114,116,101,114,46,105,115,95,112,
97,99,107,97,103,101,78,40,14,0,0,0,117,8,0,0,
@@ -1091,7 +1091,7 @@ unsigned char _Py_M__importlib[] = {
60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
98,46,95,98,111,111,116,115,116,114,97,112,62,117,14,0,
0,0,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
- 123,1,0,0,115,26,0,0,0,16,7,6,2,3,1,18,
+ 130,1,0,0,115,26,0,0,0,16,7,6,2,3,1,18,
4,3,1,3,1,3,1,27,11,3,1,21,5,3,1,21,
5,3,1,117,14,0,0,0,70,114,111,122,101,110,73,109,
112,111,114,116,101,114,99,1,0,0,0,0,0,0,0,1,
@@ -1132,7 +1132,7 @@ unsigned char _Py_M__importlib[] = {
97,109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 10,0,0,0,105,115,95,112,97,99,107,97,103,101,175,1,
+ 10,0,0,0,105,115,95,112,97,99,107,97,103,101,182,1,
0,0,115,4,0,0,0,0,3,25,1,117,24,0,0,0,
95,76,111,97,100,101,114,66,97,115,105,99,115,46,105,115,
95,112,97,99,107,97,103,101,99,5,0,0,0,0,0,0,
@@ -1211,7 +1211,7 @@ unsigned char _Py_M__importlib[] = {
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,20,0,0,0,95,98,121,116,101,115,95,102,114,
- 111,109,95,98,121,116,101,99,111,100,101,181,1,0,0,115,
+ 111,109,95,98,121,116,101,99,111,100,101,188,1,0,0,115,
66,0,0,0,0,7,16,1,16,1,16,1,12,1,18,1,
27,1,18,1,15,1,10,1,15,1,18,1,15,1,10,1,
15,1,12,1,3,1,20,1,13,1,5,2,18,1,15,1,
@@ -1260,7 +1260,7 @@ unsigned char _Py_M__importlib[] = {
0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
111,116,115,116,114,97,112,62,117,12,0,0,0,95,108,111,
- 97,100,95,109,111,100,117,108,101,226,1,0,0,115,26,0,
+ 97,100,95,109,111,100,117,108,101,233,1,0,0,115,26,0,
0,0,0,4,9,1,15,1,18,1,6,1,21,2,12,1,
9,1,15,1,28,2,25,1,9,1,16,1,117,26,0,0,
0,95,76,111,97,100,101,114,66,97,115,105,99,115,46,95,
@@ -1279,7 +1279,7 @@ unsigned char _Py_M__importlib[] = {
0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
114,97,112,62,117,13,0,0,0,95,76,111,97,100,101,114,
- 66,97,115,105,99,115,170,1,0,0,115,10,0,0,0,16,
+ 66,97,115,105,99,115,177,1,0,0,115,10,0,0,0,16,
3,6,2,12,6,12,45,6,1,117,13,0,0,0,95,76,
111,97,100,101,114,66,97,115,105,99,115,99,1,0,0,0,
0,0,0,0,1,0,0,0,2,0,0,0,66,0,0,0,
@@ -1307,7 +1307,7 @@ unsigned char _Py_M__importlib[] = {
97,116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 10,0,0,0,112,97,116,104,95,109,116,105,109,101,249,1,
+ 10,0,0,0,112,97,116,104,95,109,116,105,109,101,0,2,
0,0,115,2,0,0,0,0,4,117,23,0,0,0,83,111,
117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,
109,116,105,109,101,99,2,0,0,0,0,0,0,0,2,0,
@@ -1343,8 +1343,8 @@ unsigned char _Py_M__importlib[] = {
112,97,116,104,40,0,0,0,0,40,0,0,0,0,117,29,
0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,10,0,0,0,112,97,116,104,95,115,116,97,116,115,255,
- 1,0,0,115,2,0,0,0,0,10,117,23,0,0,0,83,
+ 117,10,0,0,0,112,97,116,104,95,115,116,97,116,115,6,
+ 2,0,0,115,2,0,0,0,0,10,117,23,0,0,0,83,
111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,
95,115,116,97,116,115,99,3,0,0,0,0,0,0,0,3,
0,0,0,1,0,0,0,67,0,0,0,115,10,0,0,0,
@@ -1366,7 +1366,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,8,0,0,0,115,101,116,95,100,97,
- 116,97,11,2,0,0,115,2,0,0,0,0,6,117,21,0,
+ 116,97,18,2,0,0,115,2,0,0,0,0,6,117,21,0,
0,0,83,111,117,114,99,101,76,111,97,100,101,114,46,115,
101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,
7,0,0,0,12,0,0,0,67,0,0,0,115,156,0,0,
@@ -1409,7 +1409,7 @@ unsigned char _Py_M__importlib[] = {
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,10,0,0,0,103,101,116,95,115,111,117,114,99,
- 101,20,2,0,0,115,20,0,0,0,0,2,12,1,15,1,
+ 101,27,2,0,0,115,20,0,0,0,0,2,12,1,15,1,
3,1,19,1,13,1,9,1,14,1,27,1,18,1,117,23,
0,0,0,83,111,117,114,99,101,76,111,97,100,101,114,46,
103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,
@@ -1509,7 +1509,7 @@ unsigned char _Py_M__importlib[] = {
106,101,99,116,40,0,0,0,0,40,0,0,0,0,117,29,
0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,8,0,0,0,103,101,116,95,99,111,100,101,33,2,0,
+ 117,8,0,0,0,103,101,116,95,99,111,100,101,40,2,0,
0,115,92,0,0,0,0,7,15,1,12,1,6,1,12,1,
3,1,19,1,13,1,5,2,16,1,3,1,19,1,13,1,
5,2,3,1,12,1,3,1,13,1,19,1,5,2,9,1,
@@ -1543,7 +1543,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,11,0,0,0,108,
- 111,97,100,95,109,111,100,117,108,101,91,2,0,0,115,2,
+ 111,97,100,95,109,111,100,117,108,101,98,2,0,0,115,2,
0,0,0,0,8,117,24,0,0,0,83,111,117,114,99,101,
76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,
108,101,78,40,9,0,0,0,117,8,0,0,0,95,95,110,
@@ -1559,7 +1559,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,12,0,0,
- 0,83,111,117,114,99,101,76,111,97,100,101,114,247,1,0,
+ 0,83,111,117,114,99,101,76,111,97,100,101,114,254,1,0,
0,115,12,0,0,0,16,2,12,6,12,12,12,9,12,13,
12,58,117,12,0,0,0,83,111,117,114,99,101,76,111,97,
100,101,114,99,1,0,0,0,0,0,0,0,1,0,0,0,
@@ -1591,7 +1591,7 @@ unsigned char _Py_M__importlib[] = {
116,104,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,8,
- 0,0,0,95,95,105,110,105,116,95,95,107,2,0,0,115,
+ 0,0,0,95,95,105,110,105,116,95,95,114,2,0,0,115,
4,0,0,0,0,3,9,1,117,19,0,0,0,70,105,108,
101,76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,
99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
@@ -1606,7 +1606,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,12,0,0,0,103,
- 101,116,95,102,105,108,101,110,97,109,101,113,2,0,0,115,
+ 101,116,95,102,105,108,101,110,97,109,101,120,2,0,0,115,
2,0,0,0,0,3,117,23,0,0,0,70,105,108,101,76,
111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97,
109,101,99,2,0,0,0,0,0,0,0,3,0,0,0,8,
@@ -1624,7 +1624,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,8,0,0,0,103,
- 101,116,95,100,97,116,97,118,2,0,0,115,4,0,0,0,
+ 101,116,95,100,97,116,97,125,2,0,0,115,4,0,0,0,
0,2,21,1,117,19,0,0,0,70,105,108,101,76,111,97,
100,101,114,46,103,101,116,95,100,97,116,97,78,40,8,0,
0,0,117,8,0,0,0,95,95,110,97,109,101,95,95,117,
@@ -1639,7 +1639,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
115,116,114,97,112,62,117,10,0,0,0,70,105,108,101,76,
- 111,97,100,101,114,102,2,0,0,115,8,0,0,0,16,3,
+ 111,97,100,101,114,109,2,0,0,115,8,0,0,0,16,3,
6,2,12,6,18,5,117,10,0,0,0,70,105,108,101,76,
111,97,100,101,114,99,1,0,0,0,0,0,0,0,1,0,
0,0,2,0,0,0,66,0,0,0,115,50,0,0,0,124,
@@ -1668,7 +1668,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,10,0,0,0,112,97,116,104,95,115,
- 116,97,116,115,128,2,0,0,115,4,0,0,0,0,2,15,
+ 116,97,116,115,135,2,0,0,115,4,0,0,0,0,2,15,
1,117,27,0,0,0,83,111,117,114,99,101,70,105,108,101,
76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,
115,99,3,0,0,0,0,0,0,0,7,0,0,0,13,0,
@@ -1710,7 +1710,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,8,0,0,
- 0,115,101,116,95,100,97,116,97,133,2,0,0,115,36,0,
+ 0,115,101,116,95,100,97,116,97,140,2,0,0,115,36,0,
0,0,0,2,18,1,6,2,22,1,18,1,17,2,19,1,
15,1,3,1,17,1,13,2,7,1,13,3,13,1,3,1,
13,1,17,1,19,3,117,25,0,0,0,83,111,117,114,99,
@@ -1726,7 +1726,7 @@ unsigned char _Py_M__importlib[] = {
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
16,0,0,0,83,111,117,114,99,101,70,105,108,101,76,111,
- 97,100,101,114,124,2,0,0,115,6,0,0,0,16,2,6,
+ 97,100,101,114,131,2,0,0,115,6,0,0,0,16,2,6,
2,12,5,117,16,0,0,0,83,111,117,114,99,101,70,105,
108,101,76,111,97,100,101,114,99,1,0,0,0,0,0,0,
0,1,0,0,0,2,0,0,0,66,0,0,0,115,62,0,
@@ -1750,7 +1750,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,11,0,0,0,108,111,
- 97,100,95,109,111,100,117,108,101,166,2,0,0,115,2,0,
+ 97,100,95,109,111,100,117,108,101,173,2,0,0,115,2,0,
0,0,0,1,117,32,0,0,0,83,111,117,114,99,101,108,
101,115,115,70,105,108,101,76,111,97,100,101,114,46,108,111,
97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
@@ -1786,7 +1786,7 @@ unsigned char _Py_M__importlib[] = {
0,102,111,117,110,100,40,0,0,0,0,40,0,0,0,0,
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
- 112,62,117,8,0,0,0,103,101,116,95,99,111,100,101,169,
+ 112,62,117,8,0,0,0,103,101,116,95,99,111,100,101,176,
2,0,0,115,18,0,0,0,0,1,15,1,15,1,24,1,
15,1,15,1,13,1,4,2,18,1,117,29,0,0,0,83,
111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,
@@ -1802,7 +1802,7 @@ unsigned char _Py_M__importlib[] = {
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
62,117,10,0,0,0,103,101,116,95,115,111,117,114,99,101,
- 181,2,0,0,115,2,0,0,0,0,2,117,31,0,0,0,
+ 188,2,0,0,115,2,0,0,0,0,2,117,31,0,0,0,
83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,
97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,78,
40,7,0,0,0,117,8,0,0,0,95,95,110,97,109,101,
@@ -1817,7 +1817,7 @@ unsigned char _Py_M__importlib[] = {
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,20,0,0,0,83,
111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,
- 100,101,114,162,2,0,0,115,8,0,0,0,16,2,6,2,
+ 100,101,114,169,2,0,0,115,8,0,0,0,16,2,6,2,
12,3,12,12,117,20,0,0,0,83,111,117,114,99,101,108,
101,115,115,70,105,108,101,76,111,97,100,101,114,99,1,0,
0,0,0,0,0,0,1,0,0,0,5,0,0,0,66,0,
@@ -1847,7 +1847,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,8,0,0,0,95,95,
- 105,110,105,116,95,95,194,2,0,0,115,4,0,0,0,0,
+ 105,110,105,116,95,95,201,2,0,0,115,4,0,0,0,0,
1,9,1,117,28,0,0,0,69,120,116,101,110,115,105,111,
110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,
105,116,95,95,99,2,0,0,0,0,0,0,0,4,0,0,
@@ -1875,7 +1875,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,11,0,0,0,108,111,
- 97,100,95,109,111,100,117,108,101,198,2,0,0,115,18,0,
+ 97,100,95,109,111,100,117,108,101,205,2,0,0,115,18,0,
0,0,0,5,15,1,3,1,21,1,16,1,8,1,3,1,
22,1,13,1,117,31,0,0,0,69,120,116,101,110,115,105,
111,110,70,105,108,101,76,111,97,100,101,114,46,108,111,97,
@@ -1892,7 +1892,7 @@ unsigned char _Py_M__importlib[] = {
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,10,0,0,0,105,115,95,112,97,99,107,97,103,
- 101,213,2,0,0,115,2,0,0,0,0,3,117,30,0,0,
+ 101,220,2,0,0,115,2,0,0,0,0,3,117,30,0,0,
0,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,
2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
@@ -1907,7 +1907,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,8,0,0,
- 0,103,101,116,95,99,111,100,101,218,2,0,0,115,2,0,
+ 0,103,101,116,95,99,111,100,101,225,2,0,0,115,2,0,
0,0,0,3,117,28,0,0,0,69,120,116,101,110,115,105,
111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
95,99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,
@@ -1922,7 +1922,7 @@ unsigned char _Py_M__importlib[] = {
0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
111,116,115,116,114,97,112,62,117,10,0,0,0,103,101,116,
- 95,115,111,117,114,99,101,223,2,0,0,115,2,0,0,0,
+ 95,115,111,117,114,99,101,230,2,0,0,115,2,0,0,0,
0,3,117,30,0,0,0,69,120,116,101,110,115,105,111,110,
70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,115,
111,117,114,99,101,78,40,12,0,0,0,117,8,0,0,0,
@@ -1942,7 +1942,7 @@ unsigned char _Py_M__importlib[] = {
114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,
95,98,111,111,116,115,116,114,97,112,62,117,19,0,0,0,
69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
- 100,101,114,186,2,0,0,115,16,0,0,0,16,6,6,2,
+ 100,101,114,193,2,0,0,115,16,0,0,0,16,6,6,2,
12,4,3,1,3,1,24,13,18,5,18,5,117,19,0,0,
0,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
97,100,101,114,99,1,0,0,0,0,0,0,0,1,0,0,
@@ -1987,7 +1987,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
117,11,0,0,0,95,112,97,116,104,95,104,111,111,107,115,
- 235,2,0,0,115,18,0,0,0,0,7,12,1,12,1,13,
+ 242,2,0,0,115,18,0,0,0,0,7,12,1,12,1,13,
1,3,1,14,1,13,1,12,2,18,1,117,22,0,0,0,
80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
95,104,111,111,107,115,99,3,0,0,0,0,0,0,0,4,
@@ -2042,7 +2042,7 @@ unsigned char _Py_M__importlib[] = {
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,20,0,0,0,95,
112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,
- 99,104,101,253,2,0,0,115,22,0,0,0,0,13,12,1,
+ 99,104,101,4,3,0,0,115,22,0,0,0,0,13,12,1,
9,1,3,1,17,1,13,1,15,1,18,2,18,2,12,1,
16,1,117,31,0,0,0,80,97,116,104,70,105,110,100,101,
114,46,95,112,97,116,104,95,105,109,112,111,114,116,101,114,
@@ -2076,7 +2076,7 @@ unsigned char _Py_M__importlib[] = {
117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
112,62,117,11,0,0,0,102,105,110,100,95,109,111,100,117,
- 108,101,24,3,0,0,115,24,0,0,0,0,4,12,1,12,
+ 108,101,31,3,0,0,115,24,0,0,0,0,4,12,1,12,
1,13,1,3,1,19,1,13,1,8,1,6,1,15,1,6,
1,11,2,117,22,0,0,0,80,97,116,104,70,105,110,100,
101,114,46,102,105,110,100,95,109,111,100,117,108,101,78,40,
@@ -2093,7 +2093,7 @@ unsigned char _Py_M__importlib[] = {
115,95,95,40,0,0,0,0,40,0,0,0,0,117,29,0,
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 10,0,0,0,80,97,116,104,70,105,110,100,101,114,231,2,
+ 10,0,0,0,80,97,116,104,70,105,110,100,101,114,238,2,
0,0,115,14,0,0,0,16,2,6,2,3,1,18,17,3,
1,18,26,3,1,117,10,0,0,0,80,97,116,104,70,105,
110,100,101,114,99,1,0,0,0,0,0,0,0,1,0,0,
@@ -2151,7 +2151,7 @@ unsigned char _Py_M__importlib[] = {
0,0,108,111,97,100,101,114,40,0,0,0,0,117,29,0,
0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,
108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,
- 9,0,0,0,60,103,101,110,101,120,112,114,62,59,3,0,
+ 9,0,0,0,60,103,101,110,101,120,112,114,62,66,3,0,
0,115,2,0,0,0,6,0,117,38,0,0,0,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,
@@ -2164,7 +2164,7 @@ unsigned char _Py_M__importlib[] = {
6,0,0,0,108,111,97,100,101,114,40,0,0,0,0,117,
29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
- 62,117,9,0,0,0,60,103,101,110,101,120,112,114,62,61,
+ 62,117,9,0,0,0,60,103,101,110,101,120,112,114,62,68,
3,0,0,115,2,0,0,0,6,0,117,1,0,0,0,46,
105,1,0,0,0,78,105,255,255,255,255,40,8,0,0,0,
117,6,0,0,0,101,120,116,101,110,100,117,8,0,0,0,
@@ -2184,7 +2184,7 @@ unsigned char _Py_M__importlib[] = {
114,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,8,0,0,0,95,95,105,110,105,116,95,95,
- 52,3,0,0,115,24,0,0,0,0,4,6,1,6,1,22,
+ 59,3,0,0,115,24,0,0,0,0,4,6,1,6,1,22,
1,32,1,6,1,39,1,9,1,9,2,15,1,9,1,12,
1,117,19,0,0,0,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,
@@ -2199,7 +2199,7 @@ unsigned char _Py_M__importlib[] = {
0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,17,0,0,0,105,110,118,97,108,105,100,97,
- 116,101,95,99,97,99,104,101,115,70,3,0,0,115,2,0,
+ 116,101,95,99,97,99,104,101,115,77,3,0,0,115,2,0,
0,0,0,2,117,28,0,0,0,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,12,0,
@@ -2270,7 +2270,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,11,0,0,0,102,105,
- 110,100,95,109,111,100,117,108,101,74,3,0,0,115,58,0,
+ 110,100,95,109,111,100,117,108,101,81,3,0,0,115,58,0,
0,0,0,2,19,1,3,1,25,1,13,1,11,1,15,1,
10,1,12,2,9,1,9,1,15,2,9,1,6,2,12,1,
18,1,12,1,22,1,10,1,15,1,12,1,17,2,6,1,
@@ -2307,7 +2307,7 @@ unsigned char _Py_M__importlib[] = {
0,0,102,110,40,0,0,0,0,40,0,0,0,0,117,29,
0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
- 117,9,0,0,0,60,103,101,110,101,120,112,114,62,135,3,
+ 117,9,0,0,0,60,103,101,110,101,120,112,114,62,142,3,
0,0,115,2,0,0,0,6,0,117,41,0,0,0,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,103,
@@ -2334,7 +2334,7 @@ unsigned char _Py_M__importlib[] = {
0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
114,97,112,62,117,11,0,0,0,95,102,105,108,108,95,99,
- 97,99,104,101,111,3,0,0,115,28,0,0,0,0,2,9,
+ 97,99,104,101,118,3,0,0,115,28,0,0,0,0,2,9,
1,15,3,18,1,18,7,9,1,13,1,24,1,6,1,27,
2,6,1,17,1,9,1,18,1,117,22,0,0,0,70,105,
108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
@@ -2363,7 +2363,7 @@ unsigned char _Py_M__importlib[] = {
0,0,4,0,0,0,19,0,0,0,115,46,0,0,0,116,
0,0,124,0,0,131,1,0,115,33,0,116,1,0,100,1,
0,100,2,0,124,0,0,131,1,1,130,1,0,110,0,0,
- 136,0,0,124,0,0,136,1,0,140,1,0,83,40,3,0,
+ 136,1,0,124,0,0,136,0,0,140,1,0,83,40,3,0,
0,0,117,45,0,0,0,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,
@@ -2373,13 +2373,13 @@ unsigned char _Py_M__importlib[] = {
40,2,0,0,0,117,11,0,0,0,95,112,97,116,104,95,
105,115,100,105,114,117,11,0,0,0,73,109,112,111,114,116,
69,114,114,111,114,40,1,0,0,0,117,4,0,0,0,112,
- 97,116,104,40,2,0,0,0,117,3,0,0,0,99,108,115,
- 117,14,0,0,0,108,111,97,100,101,114,95,100,101,116,97,
- 105,108,115,40,0,0,0,0,117,29,0,0,0,60,102,114,
+ 97,116,104,40,2,0,0,0,117,14,0,0,0,108,111,97,
+ 100,101,114,95,100,101,116,97,105,108,115,117,3,0,0,0,
+ 99,108,115,40,0,0,0,0,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,24,0,0,0,112,
97,116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,
- 101,70,105,110,100,101,114,147,3,0,0,115,6,0,0,0,
+ 101,70,105,110,100,101,114,154,3,0,0,115,6,0,0,0,
0,2,12,1,21,1,117,54,0,0,0,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,
@@ -2388,12 +2388,12 @@ unsigned char _Py_M__importlib[] = {
99,108,115,117,14,0,0,0,108,111,97,100,101,114,95,100,
101,116,97,105,108,115,117,24,0,0,0,112,97,116,104,95,
104,111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,
- 100,101,114,40,0,0,0,0,40,2,0,0,0,117,3,0,
- 0,0,99,108,115,117,14,0,0,0,108,111,97,100,101,114,
- 95,100,101,116,97,105,108,115,117,29,0,0,0,60,102,114,
+ 100,101,114,40,0,0,0,0,40,2,0,0,0,117,14,0,
+ 0,0,108,111,97,100,101,114,95,100,101,116,97,105,108,115,
+ 117,3,0,0,0,99,108,115,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,9,0,0,0,112,
- 97,116,104,95,104,111,111,107,137,3,0,0,115,4,0,0,
+ 97,116,104,95,104,111,111,107,144,3,0,0,115,4,0,0,
0,0,10,21,6,117,20,0,0,0,70,105,108,101,70,105,
110,100,101,114,46,112,97,116,104,95,104,111,111,107,78,40,
10,0,0,0,117,8,0,0,0,95,95,110,97,109,101,95,
@@ -2410,7 +2410,7 @@ unsigned char _Py_M__importlib[] = {
95,95,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,
- 0,0,0,70,105,108,101,70,105,110,100,101,114,43,3,0,
+ 0,0,0,70,105,108,101,70,105,110,100,101,114,50,3,0,
0,115,12,0,0,0,16,7,6,2,12,18,12,4,12,37,
12,26,117,10,0,0,0,70,105,108,101,70,105,110,100,101,
114,99,1,0,0,0,0,0,0,0,1,0,0,0,4,0,
@@ -2450,7 +2450,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
117,11,0,0,0,95,112,97,116,104,95,104,111,111,107,115,
- 166,3,0,0,115,10,0,0,0,0,3,3,1,20,1,13,
+ 173,3,0,0,115,10,0,0,0,0,3,3,1,20,1,13,
1,15,1,117,30,0,0,0,95,68,101,102,97,117,108,116,
80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,2,
@@ -2472,7 +2472,7 @@ unsigned char _Py_M__importlib[] = {
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,20,
0,0,0,95,112,97,116,104,95,105,109,112,111,114,116,101,
- 114,95,99,97,99,104,101,175,3,0,0,115,2,0,0,0,
+ 114,95,99,97,99,104,101,182,3,0,0,115,2,0,0,0,
0,4,117,39,0,0,0,95,68,101,102,97,117,108,116,80,
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,40,7,
@@ -2489,7 +2489,7 @@ unsigned char _Py_M__importlib[] = {
95,95,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
114,97,112,62,117,18,0,0,0,95,68,101,102,97,117,108,
- 116,80,97,116,104,70,105,110,100,101,114,161,3,0,0,115,
+ 116,80,97,116,104,70,105,110,100,101,114,168,3,0,0,115,
6,0,0,0,16,3,6,2,24,9,117,18,0,0,0,95,
68,101,102,97,117,108,116,80,97,116,104,70,105,110,100,101,
114,99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,
@@ -2512,7 +2512,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
115,116,114,97,112,62,117,9,0,0,0,95,95,101,110,116,
- 101,114,95,95,186,3,0,0,115,2,0,0,0,0,2,117,
+ 101,114,95,95,193,3,0,0,115,2,0,0,0,0,2,117,
28,0,0,0,95,73,109,112,111,114,116,76,111,99,107,67,
111,110,116,101,120,116,46,95,95,101,110,116,101,114,95,95,
99,4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,
@@ -2531,7 +2531,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,8,0,0,0,95,95,101,120,105,116,
- 95,95,190,3,0,0,115,2,0,0,0,0,2,117,27,0,
+ 95,95,197,3,0,0,115,2,0,0,0,0,2,117,27,0,
0,0,95,73,109,112,111,114,116,76,111,99,107,67,111,110,
116,101,120,116,46,95,95,101,120,105,116,95,95,78,40,6,
0,0,0,117,8,0,0,0,95,95,110,97,109,101,95,95,
@@ -2544,7 +2544,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
116,115,116,114,97,112,62,117,18,0,0,0,95,73,109,112,
- 111,114,116,76,111,99,107,67,111,110,116,101,120,116,182,3,
+ 111,114,116,76,111,99,107,67,111,110,116,101,120,116,189,3,
0,0,115,6,0,0,0,16,2,6,2,12,4,117,18,0,
0,0,95,73,109,112,111,114,116,76,111,99,107,67,111,110,
116,101,120,116,99,3,0,0,0,0,0,0,0,5,0,0,
@@ -2573,7 +2573,7 @@ unsigned char _Py_M__importlib[] = {
40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,13,0,0,
- 0,95,114,101,115,111,108,118,101,95,110,97,109,101,195,3,
+ 0,95,114,101,115,111,108,118,101,95,110,97,109,101,202,3,
0,0,115,10,0,0,0,0,2,22,1,18,1,15,1,10,
1,117,13,0,0,0,95,114,101,115,111,108,118,101,95,110,
97,109,101,99,2,0,0,0,0,0,0,0,5,0,0,0,
@@ -2600,7 +2600,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,12,0,0,0,95,102,105,110,100,95,
- 109,111,100,117,108,101,204,3,0,0,115,16,0,0,0,0,
+ 109,111,100,117,108,101,211,3,0,0,115,16,0,0,0,0,
2,13,1,13,1,18,1,12,2,15,1,4,2,21,2,117,
12,0,0,0,95,102,105,110,100,95,109,111,100,117,108,101,
99,3,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
@@ -2644,7 +2644,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,13,0,0,0,95,115,
- 97,110,105,116,121,95,99,104,101,99,107,219,3,0,0,115,
+ 97,110,105,116,121,95,99,104,101,99,107,226,3,0,0,115,
24,0,0,0,0,2,15,1,30,1,12,1,15,1,6,1,
15,1,15,1,15,1,6,2,27,1,19,1,117,13,0,0,
0,95,115,97,110,105,116,121,95,99,104,101,99,107,117,20,
@@ -2712,7 +2712,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
115,116,114,97,112,62,117,14,0,0,0,95,102,105,110,100,
- 95,97,110,100,95,108,111,97,100,240,3,0,0,115,62,0,
+ 95,97,110,100,95,108,111,97,100,247,3,0,0,115,62,0,
0,0,0,2,6,1,19,1,6,1,15,1,13,2,15,1,
11,2,13,1,3,1,13,1,13,1,22,1,26,1,15,1,
12,1,30,1,15,2,13,1,19,2,13,1,6,2,13,1,
@@ -2772,7 +2772,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,11,0,0,0,95,103,99,100,95,105,
- 109,112,111,114,116,25,4,0,0,115,28,0,0,0,0,9,
+ 109,112,111,114,116,32,4,0,0,115,28,0,0,0,0,9,
16,1,12,1,21,1,10,1,3,1,13,1,12,1,6,1,
9,1,21,1,8,1,13,1,5,1,117,11,0,0,0,95,
103,99,100,95,105,109,112,111,114,116,99,3,0,0,0,0,
@@ -2816,7 +2816,7 @@ unsigned char _Py_M__importlib[] = {
111,100,117,108,101,40,0,0,0,0,117,29,0,0,0,60,
102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
46,95,98,111,111,116,115,116,114,97,112,62,117,9,0,0,
- 0,60,103,101,110,101,120,112,114,62,65,4,0,0,115,2,
+ 0,60,103,101,110,101,120,112,114,62,72,4,0,0,115,2,
0,0,0,6,0,117,35,0,0,0,95,104,97,110,100,108,
101,95,102,114,111,109,108,105,115,116,46,60,108,111,99,97,
108,115,62,46,60,103,101,110,101,120,112,114,62,117,7,0,
@@ -2834,7 +2834,7 @@ unsigned char _Py_M__importlib[] = {
101,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,
112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,
97,112,62,117,16,0,0,0,95,104,97,110,100,108,101,95,
- 102,114,111,109,108,105,115,116,50,4,0,0,115,22,0,0,
+ 102,114,111,109,108,105,115,116,57,4,0,0,115,22,0,0,
0,0,10,15,1,27,1,12,1,13,1,19,1,32,1,3,
1,29,1,13,1,12,1,117,16,0,0,0,95,104,97,110,
100,108,101,95,102,114,111,109,108,105,115,116,99,1,0,0,
@@ -2866,7 +2866,7 @@ unsigned char _Py_M__importlib[] = {
0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,17,0,0,0,95,99,
- 97,108,99,95,95,95,112,97,99,107,97,103,101,95,95,73,
+ 97,108,99,95,95,95,112,97,99,107,97,103,101,95,95,80,
4,0,0,115,12,0,0,0,0,7,15,1,12,1,10,1,
12,1,25,1,117,17,0,0,0,95,99,97,108,99,95,95,
95,112,97,99,107,97,103,101,95,95,99,5,0,0,0,0,
@@ -2931,7 +2931,7 @@ unsigned char _Py_M__importlib[] = {
102,102,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,10,
- 0,0,0,95,95,105,109,112,111,114,116,95,95,88,4,0,
+ 0,0,0,95,95,105,109,112,111,114,116,95,95,95,4,0,
0,115,24,0,0,0,0,11,12,1,15,2,12,1,18,1,
6,3,12,1,24,1,6,1,4,2,35,1,40,2,117,10,
0,0,0,95,95,105,109,112,111,114,116,95,95,99,2,0,
@@ -3008,7 +3008,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
116,114,97,112,62,117,9,0,0,0,60,103,101,110,101,120,
- 112,114,62,149,4,0,0,115,2,0,0,0,6,0,117,25,
+ 112,114,62,156,4,0,0,115,2,0,0,0,6,0,117,25,
0,0,0,95,115,101,116,117,112,46,60,108,111,99,97,108,
115,62,46,60,103,101,110,101,120,112,114,62,105,0,0,0,
0,117,7,0,0,0,69,77,88,32,71,67,67,105,1,0,
@@ -3066,7 +3066,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,
111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
98,111,111,116,115,116,114,97,112,62,117,6,0,0,0,95,
- 115,101,116,117,112,122,4,0,0,115,78,0,0,0,0,9,
+ 115,101,116,117,112,129,4,0,0,115,78,0,0,0,0,9,
6,1,6,2,19,1,15,1,16,2,13,1,13,1,15,1,
18,2,13,1,20,2,48,1,19,2,31,1,10,1,15,1,
13,1,4,2,3,1,15,2,27,1,13,1,5,1,13,1,
@@ -3101,7 +3101,7 @@ unsigned char _Py_M__importlib[] = {
0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
115,116,114,97,112,62,117,8,0,0,0,95,105,110,115,116,
- 97,108,108,182,4,0,0,115,8,0,0,0,0,7,13,1,
+ 97,108,108,189,4,0,0,115,8,0,0,0,0,7,13,1,
9,1,9,1,117,8,0,0,0,95,105,110,115,116,97,108,
108,78,40,3,0,0,0,117,3,0,0,0,119,105,110,117,
6,0,0,0,99,121,103,119,105,110,117,6,0,0,0,100,
@@ -3179,7 +3179,7 @@ unsigned char _Py_M__importlib[] = {
122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
111,111,116,115,116,114,97,112,62,117,8,0,0,0,60,109,
111,100,117,108,101,62,8,0,0,0,115,114,0,0,0,6,
- 14,6,3,12,13,12,16,12,13,12,12,12,12,12,10,12,
+ 21,6,3,12,13,12,16,12,13,12,12,12,12,12,10,12,
10,12,6,12,7,12,9,12,13,12,21,12,8,15,3,12,
11,6,2,9,2,6,1,6,1,18,2,15,19,12,8,12,
13,12,11,12,32,12,16,12,11,12,11,12,8,19,53,19,
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 38f3443..77489dc 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -454,6 +454,10 @@ def add_ui(db):
("SetDLLDirToTarget", 'DLLDIR=""', 751),
])
+ # Prepend TARGETDIR to the system path, and remove it on uninstall.
+ add_data(db, "Environment",
+ [("PathAddition", "=-*Path", "[TARGETDIR];[~]", "REGISTRY.path")])
+
# Execute Sequences
add_data(db, "InstallExecuteSequence",
[("InitialTargetDir", 'TARGETDIR=""', 750),
@@ -677,11 +681,11 @@ def add_ui(db):
c=features.xbutton("Advanced", "Advanced", None, 0.30)
c.event("SpawnDialog", "AdvancedDlg")
- c=features.text("ItemDescription", 140, 180, 210, 30, 3,
+ c=features.text("ItemDescription", 140, 180, 210, 40, 3,
"Multiline description of the currently selected item.")
c.mapping("SelectionDescription","Text")
- c=features.text("ItemSize", 140, 210, 210, 45, 3,
+ c=features.text("ItemSize", 140, 225, 210, 33, 3,
"The size of the currently selected item.")
c.mapping("SelectionSize", "Text")
@@ -835,7 +839,7 @@ def add_features(db):
# (i.e. additional Python libraries) need to follow the parent feature.
# Features that have no advertisement trigger (e.g. the test suite)
# must not support advertisement
- global default_feature, tcltk, htmlfiles, tools, testsuite, ext_feature, private_crt
+ global default_feature, tcltk, htmlfiles, tools, testsuite, ext_feature, private_crt, prepend_path
default_feature = Feature(db, "DefaultFeature", "Python",
"Python Interpreter and Libraries",
1, directory = "TARGETDIR")
@@ -860,6 +864,15 @@ def add_features(db):
testsuite = Feature(db, "Testsuite", "Test suite",
"Python test suite (Lib/test/)", 11,
parent = default_feature, attributes=2|8)
+ # prepend_path is an additional feature which is to be off by default.
+ # Since the default level for the above features is 1, this needs to be
+ # at least level higher.
+ prepend_path = Feature(db, "PrependPath", "Add python.exe to Path",
+ "Prepend [TARGETDIR] to the system Path variable. "
+ "This allows you to type 'python' into a command "
+ "prompt without needing the full path.", 13,
+ parent = default_feature, attributes=2|8,
+ level=2)
def extract_msvcr90():
# Find the redistributable files
@@ -1146,6 +1159,8 @@ def add_registry(db):
"InstallPath"),
("REGISTRY.doc", msilib.gen_uuid(), "TARGETDIR", registry_component, None,
"Documentation"),
+ ("REGISTRY.path", msilib.gen_uuid(), "TARGETDIR", registry_component, None,
+ None),
("REGISTRY.def", msilib.gen_uuid(), "TARGETDIR", registry_component,
None, None)] + tcldata)
# See "FeatureComponents Table".
@@ -1162,6 +1177,7 @@ def add_registry(db):
add_data(db, "FeatureComponents",
[(default_feature.id, "REGISTRY"),
(htmlfiles.id, "REGISTRY.doc"),
+ (prepend_path.id, "REGISTRY.path"),
(ext_feature.id, "REGISTRY.def")] +
tcldata
)
diff --git a/Tools/scripts/import_diagnostics.py b/Tools/scripts/import_diagnostics.py
new file mode 100755
index 0000000..1aa12b3
--- /dev/null
+++ b/Tools/scripts/import_diagnostics.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+"""Miscellaneous diagnostics for the import system"""
+
+import sys
+import argparse
+from pprint import pprint
+
+def _dump_state(args):
+ print(sys.version)
+ print("sys.path:")
+ pprint(sys.path)
+ print("sys.meta_path")
+ pprint(sys.meta_path)
+ print("sys.path_hooks")
+ pprint(sys.path_hooks)
+ print("sys.path_importer_cache")
+ pprint(sys.path_importer_cache)
+ print("sys.modules:")
+ pprint(sys.modules)
+
+COMMANDS = (
+ ("dump", "Dump import state", _dump_state),
+)
+
+def _make_parser():
+ parser = argparse.ArgumentParser()
+ sub = parser.add_subparsers(title="Commands")
+ for name, description, implementation in COMMANDS:
+ cmd = sub.add_parser(name, help=description)
+ cmd.set_defaults(command=implementation)
+ return parser
+
+def main(args):
+ parser = _make_parser()
+ args = parser.parse_args(args)
+ return args.command(args)
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))