Python-checkins
Threads by month
- ----- 2025 -----
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
May 2018
- 4 participants
- 534 discussions

bpo-32911: Add the historical note about the magic number. (GH-7273)
by Serhiy Storchaka May 31, 2018
by Serhiy Storchaka May 31, 2018
May 31, 2018
https://github.com/python/cpython/commit/941ec210aaef517cf818b043ec28345962…
commit: 941ec210aaef517cf818b043ec28345962f78465
branch: master
author: Serhiy Storchaka <storchaka(a)gmail.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-31T09:11:55+03:00
summary:
bpo-32911: Add the historical note about the magic number. (GH-7273)
files:
M Lib/importlib/_bootstrap_external.py
M Python/importlib_external.h
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/…
[View More]_bootstrap_external.py
index da9a75c673bc..bdd7859ea03a 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -246,6 +246,8 @@ def _write_atomic(path, data, mode=0o666):
# Python 3.7a2 3391 (update GET_AITER #31709)
# Python 3.7a4 3392 (PEP 552: Deterministic pycs #31650)
# Python 3.7b1 3393 (remove STORE_ANNOTATION opcode #32550)
+# Python 3.7b5 3394 (restored docstring as the firts stmt in the body;
+# this might affected the first line number #32911)
# Python 3.8a1 3400 (move frame block handling to compiler #17611)
# Python 3.8a1 3401 (add END_ASYNC_FOR #33041)
#
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 26a0383588a4..16a9fc0c9195 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -348,7 +348,7 @@ const unsigned char _Py_M__importlib_external[] = {
15,97,108,109,111,115,116,95,102,105,108,101,110,97,109,101,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
17,99,97,99,104,101,95,102,114,111,109,95,115,111,117,114,
- 99,101,15,1,0,0,115,48,0,0,0,0,18,8,1,6,
+ 99,101,17,1,0,0,115,48,0,0,0,0,18,8,1,6,
1,6,1,8,1,4,1,8,1,12,1,10,1,12,1,16,
1,8,1,8,1,8,1,24,1,8,1,12,1,6,2,8,
1,8,1,8,1,8,1,14,1,14,1,114,81,0,0,0,
@@ -422,7 +422,7 @@ const unsigned char _Py_M__importlib_external[] = {
95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,108,
101,110,97,109,101,114,2,0,0,0,114,2,0,0,0,114,
4,0,0,0,218,17,115,111,117,114,99,101,95,102,114,111,
- 109,95,99,97,99,104,101,60,1,0,0,115,46,0,0,0,
+ 109,95,99,97,99,104,101,62,1,0,0,115,46,0,0,0,
0,9,12,1,8,1,10,1,12,1,12,1,8,1,6,1,
10,1,10,1,8,1,6,1,10,1,8,1,16,1,10,1,
6,1,8,1,16,1,8,1,6,1,8,1,14,1,114,87,
@@ -456,7 +456,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,36,0,0,0,90,9,101,120,116,101,110,115,105,111,
110,218,11,115,111,117,114,99,101,95,112,97,116,104,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,218,15,95,
- 103,101,116,95,115,111,117,114,99,101,102,105,108,101,94,1,
+ 103,101,116,95,115,111,117,114,99,101,102,105,108,101,96,1,
0,0,115,20,0,0,0,0,7,12,1,4,1,16,1,24,
1,4,1,2,1,12,1,18,1,18,1,114,93,0,0,0,
99,1,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
@@ -470,7 +470,7 @@ const unsigned char _Py_M__importlib_external[] = {
81,0,0,0,114,68,0,0,0,114,76,0,0,0,41,1,
218,8,102,105,108,101,110,97,109,101,114,2,0,0,0,114,
2,0,0,0,114,4,0,0,0,218,11,95,103,101,116,95,
- 99,97,99,104,101,100,113,1,0,0,115,16,0,0,0,0,
+ 99,97,99,104,101,100,115,1,0,0,115,16,0,0,0,0,
1,14,1,2,1,10,1,14,1,8,1,14,1,4,2,114,
97,0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,
0,8,0,0,0,67,0,0,0,115,52,0,0,0,122,14,
@@ -484,7 +484,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,41,3,114,39,0,0,0,114,41,0,0,0,114,
40,0,0,0,41,2,114,35,0,0,0,114,42,0,0,0,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
- 10,95,99,97,108,99,95,109,111,100,101,125,1,0,0,115,
+ 10,95,99,97,108,99,95,109,111,100,101,127,1,0,0,115,
12,0,0,0,0,2,2,1,14,1,14,1,10,3,8,1,
114,99,0,0,0,99,1,0,0,0,0,0,0,0,3,0,
0,0,8,0,0,0,3,0,0,0,115,68,0,0,0,100,
@@ -522,7 +522,7 @@ const unsigned char _Py_M__importlib_external[] = {
103,115,90,6,107,119,97,114,103,115,41,1,218,6,109,101,
116,104,111,100,114,2,0,0,0,114,4,0,0,0,218,19,
95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,112,
- 112,101,114,145,1,0,0,115,12,0,0,0,0,1,8,1,
+ 112,101,114,147,1,0,0,115,12,0,0,0,0,1,8,1,
8,1,10,1,4,1,18,1,122,40,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,101,95,119,114,97,112,112,
@@ -539,7 +539,7 @@ const unsigned char _Py_M__importlib_external[] = {
116,116,114,218,8,95,95,100,105,99,116,95,95,218,6,117,
112,100,97,116,101,41,3,90,3,110,101,119,90,3,111,108,
100,114,53,0,0,0,114,2,0,0,0,114,2,0,0,0,
- 114,4,0,0,0,218,5,95,119,114,97,112,156,1,0,0,
+ 114,4,0,0,0,218,5,95,119,114,97,112,158,1,0,0,
115,8,0,0,0,0,1,8,1,10,1,20,1,122,26,95,
99,104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,
108,115,62,46,95,119,114,97,112,41,1,78,41,3,218,10,
@@ -547,7 +547,7 @@ const unsigned char _Py_M__importlib_external[] = {
9,78,97,109,101,69,114,114,111,114,41,3,114,104,0,0,
0,114,105,0,0,0,114,115,0,0,0,114,2,0,0,0,
41,1,114,104,0,0,0,114,4,0,0,0,218,11,95,99,
- 104,101,99,107,95,110,97,109,101,137,1,0,0,115,14,0,
+ 104,101,99,107,95,110,97,109,101,139,1,0,0,115,14,0,
0,0,0,8,14,7,2,1,10,1,14,2,14,5,10,1,
114,118,0,0,0,99,2,0,0,0,0,0,0,0,5,0,
0,0,6,0,0,0,67,0,0,0,115,60,0,0,0,124,
@@ -575,7 +575,7 @@ const unsigned char _Py_M__importlib_external[] = {
101,218,6,108,111,97,100,101,114,218,8,112,111,114,116,105,
111,110,115,218,3,109,115,103,114,2,0,0,0,114,2,0,
0,0,114,4,0,0,0,218,17,95,102,105,110,100,95,109,
- 111,100,117,108,101,95,115,104,105,109,165,1,0,0,115,10,
+ 111,100,117,108,101,95,115,104,105,109,167,1,0,0,115,10,
0,0,0,0,10,14,1,16,1,4,1,22,1,114,125,0,
0,0,99,3,0,0,0,0,0,0,0,6,0,0,0,4,
0,0,0,67,0,0,0,115,158,0,0,0,124,0,100,1,
@@ -642,7 +642,7 @@ const unsigned char _Py_M__importlib_external[] = {
115,90,5,109,97,103,105,99,114,77,0,0,0,114,69,0,
0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,0,
0,218,13,95,99,108,97,115,115,105,102,121,95,112,121,99,
- 182,1,0,0,115,28,0,0,0,0,16,12,1,8,1,16,
+ 184,1,0,0,115,28,0,0,0,0,16,12,1,8,1,16,
1,12,1,12,1,12,1,10,1,12,1,8,1,16,2,8,
1,16,1,12,1,114,133,0,0,0,99,5,0,0,0,0,
0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,
@@ -696,7 +696,7 @@ const unsigned char _Py_M__importlib_external[] = {
101,114,100,0,0,0,114,132,0,0,0,114,77,0,0,0,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
23,95,118,97,108,105,100,97,116,101,95,116,105,109,101,115,
- 116,97,109,112,95,112,121,99,215,1,0,0,115,14,0,0,
+ 116,97,109,112,95,112,121,99,217,1,0,0,115,14,0,0,
0,0,19,24,1,10,1,12,1,12,1,8,1,24,1,114,
137,0,0,0,99,4,0,0,0,0,0,0,0,4,0,0,
0,3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,
@@ -742,7 +742,7 @@ const unsigned char _Py_M__importlib_external[] = {
104,97,115,104,114,100,0,0,0,114,132,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,218,18,95,
118,97,108,105,100,97,116,101,95,104,97,115,104,95,112,121,
- 99,243,1,0,0,115,8,0,0,0,0,17,16,1,2,1,
+ 99,245,1,0,0,115,8,0,0,0,0,17,16,1,2,1,
10,1,114,139,0,0,0,99,4,0,0,0,0,0,0,0,
5,0,0,0,5,0,0,0,67,0,0,0,115,80,0,0,
0,116,0,160,1,124,0,161,1,125,4,116,2,124,4,116,
@@ -765,7 +765,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,100,0,0,0,114,91,0,0,0,114,92,0,0,
0,218,4,99,111,100,101,114,2,0,0,0,114,2,0,0,
0,114,4,0,0,0,218,17,95,99,111,109,112,105,108,101,
- 95,98,121,116,101,99,111,100,101,11,2,0,0,115,16,0,
+ 95,98,121,116,101,99,111,100,101,13,2,0,0,115,16,0,
0,0,0,2,10,1,10,1,12,1,8,1,12,1,4,2,
10,1,114,145,0,0,0,114,60,0,0,0,99,3,0,0,
0,0,0,0,0,4,0,0,0,5,0,0,0,67,0,0,
@@ -783,7 +783,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,218,5,109,116,105,109,101,114,136,0,0,0,114,54,
0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,
0,0,218,22,95,99,111,100,101,95,116,111,95,116,105,109,
- 101,115,116,97,109,112,95,112,121,99,24,2,0,0,115,12,
+ 101,115,116,97,109,112,95,112,121,99,26,2,0,0,115,12,
0,0,0,0,2,8,1,14,1,14,1,14,1,16,1,114,
150,0,0,0,84,99,3,0,0,0,0,0,0,0,5,0,
0,0,5,0,0,0,67,0,0,0,115,80,0,0,0,116,
@@ -802,7 +802,7 @@ const unsigned char _Py_M__importlib_external[] = {
138,0,0,0,90,7,99,104,101,99,107,101,100,114,54,0,
0,0,114,69,0,0,0,114,2,0,0,0,114,2,0,0,
0,114,4,0,0,0,218,17,95,99,111,100,101,95,116,111,
- 95,104,97,115,104,95,112,121,99,34,2,0,0,115,14,0,
+ 95,104,97,115,104,95,112,121,99,36,2,0,0,115,14,0,
0,0,0,2,8,1,12,1,14,1,16,1,10,1,16,1,
114,152,0,0,0,99,1,0,0,0,0,0,0,0,5,0,
0,0,6,0,0,0,67,0,0,0,115,62,0,0,0,100,
@@ -829,7 +829,7 @@ const unsigned char _Py_M__importlib_external[] = {
100,108,105,110,101,218,8,101,110,99,111,100,105,110,103,90,
15,110,101,119,108,105,110,101,95,100,101,99,111,100,101,114,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
- 13,100,101,99,111,100,101,95,115,111,117,114,99,101,45,2,
+ 13,100,101,99,111,100,101,95,115,111,117,114,99,101,47,2,
0,0,115,10,0,0,0,0,5,8,1,12,1,10,1,12,
1,114,157,0,0,0,41,2,114,122,0,0,0,218,26,115,
117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,
@@ -891,7 +891,7 @@ const unsigned char _Py_M__importlib_external[] = {
161,0,0,0,90,7,100,105,114,110,97,109,101,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,218,23,115,112,
101,99,95,102,114,111,109,95,102,105,108,101,95,108,111,99,
- 97,116,105,111,110,62,2,0,0,115,62,0,0,0,0,12,
+ 97,116,105,111,110,64,2,0,0,115,62,0,0,0,0,12,
8,4,4,1,10,2,2,1,14,1,14,1,8,2,10,8,
16,1,6,3,8,1,14,1,14,1,10,1,6,1,6,2,
4,3,8,2,10,1,2,1,14,1,14,1,6,2,4,1,
@@ -928,7 +928,7 @@ const unsigned char _Py_M__importlib_external[] = {
65,76,95,77,65,67,72,73,78,69,41,2,218,3,99,108,
115,114,3,0,0,0,114,2,0,0,0,114,2,0,0,0,
114,4,0,0,0,218,14,95,111,112,101,110,95,114,101,103,
- 105,115,116,114,121,142,2,0,0,115,8,0,0,0,0,2,
+ 105,115,116,114,121,144,2,0,0,115,8,0,0,0,0,2,
2,1,16,1,14,1,122,36,87,105,110,100,111,119,115,82,
101,103,105,115,116,114,121,70,105,110,100,101,114,46,95,111,
112,101,110,95,114,101,103,105,115,116,114,121,99,2,0,0,
@@ -954,7 +954,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,90,4,104,107,101,121,218,8,102,105,108,101,112,
97,116,104,114,2,0,0,0,114,2,0,0,0,114,4,0,
0,0,218,16,95,115,101,97,114,99,104,95,114,101,103,105,
- 115,116,114,121,149,2,0,0,115,22,0,0,0,0,2,6,
+ 115,116,114,121,151,2,0,0,115,22,0,0,0,0,2,6,
1,8,2,6,1,6,1,22,1,2,1,12,1,26,1,14,
1,8,1,122,38,87,105,110,100,111,119,115,82,101,103,105,
115,116,114,121,70,105,110,100,101,114,46,95,115,101,97,114,
@@ -976,7 +976,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,218,6,116,97,114,103,101,116,114,178,0,0,0,114,
122,0,0,0,114,168,0,0,0,114,166,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,218,9,102,
- 105,110,100,95,115,112,101,99,164,2,0,0,115,26,0,0,
+ 105,110,100,95,115,112,101,99,166,2,0,0,115,26,0,0,
0,0,2,10,1,8,1,4,1,2,1,12,1,14,1,8,
1,14,1,14,1,6,1,8,1,8,1,122,31,87,105,110,
100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,
@@ -995,7 +995,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,122,0,0,0,41,4,114,172,0,0,0,114,121,0,0,
0,114,35,0,0,0,114,166,0,0,0,114,2,0,0,0,
114,2,0,0,0,114,4,0,0,0,218,11,102,105,110,100,
- 95,109,111,100,117,108,101,180,2,0,0,115,8,0,0,0,
+ 95,109,111,100,117,108,101,182,2,0,0,115,8,0,0,0,
0,7,12,1,8,1,6,2,122,33,87,105,110,100,111,119,
115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
102,105,110,100,95,109,111,100,117,108,101,41,2,78,78,41,
@@ -1005,7 +1005,7 @@ const unsigned char _Py_M__importlib_external[] = {
116,104,111,100,114,173,0,0,0,114,179,0,0,0,114,182,
0,0,0,114,183,0,0,0,114,2,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,170,0,0,
- 0,130,2,0,0,115,20,0,0,0,8,2,4,3,4,3,
+ 0,132,2,0,0,115,20,0,0,0,8,2,4,3,4,3,
4,2,4,2,12,7,12,15,2,1,12,15,2,1,114,170,
0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
2,0,0,0,64,0,0,0,115,48,0,0,0,101,0,90,
@@ -1040,7 +1040,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,90,13,102,105,108,101,110,97,109,101,95,98,97,
115,101,90,9,116,97,105,108,95,110,97,109,101,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,161,0,0,
- 0,199,2,0,0,115,8,0,0,0,0,3,18,1,16,1,
+ 0,201,2,0,0,115,8,0,0,0,0,3,18,1,16,1,
14,1,122,24,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,2,0,0,
0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
@@ -1050,7 +1050,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,101,97,116,105,111,110,46,78,114,2,0,0,0,41,2,
114,102,0,0,0,114,166,0,0,0,114,2,0,0,0,114,
2,0,0,0,114,4,0,0,0,218,13,99,114,101,97,116,
- 101,95,109,111,100,117,108,101,207,2,0,0,115,2,0,0,
+ 101,95,109,111,100,117,108,101,209,2,0,0,115,2,0,0,
0,0,1,122,27,95,76,111,97,100,101,114,66,97,115,105,
99,115,46,99,114,101,97,116,101,95,109,111,100,117,108,101,
99,2,0,0,0,0,0,0,0,3,0,0,0,5,0,0,
@@ -1070,7 +1070,7 @@ const unsigned char _Py_M__importlib_external[] = {
99,114,113,0,0,0,41,3,114,102,0,0,0,218,6,109,
111,100,117,108,101,114,144,0,0,0,114,2,0,0,0,114,
2,0,0,0,114,4,0,0,0,218,11,101,120,101,99,95,
- 109,111,100,117,108,101,210,2,0,0,115,10,0,0,0,0,
+ 109,111,100,117,108,101,212,2,0,0,115,10,0,0,0,0,
2,12,1,8,1,6,1,10,1,122,25,95,76,111,97,100,
101,114,66,97,115,105,99,115,46,101,120,101,99,95,109,111,
100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,
@@ -1081,14 +1081,14 @@ const unsigned char _Py_M__importlib_external[] = {
17,95,108,111,97,100,95,109,111,100,117,108,101,95,115,104,
105,109,41,2,114,102,0,0,0,114,121,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,218,11,108,
- 111,97,100,95,109,111,100,117,108,101,218,2,0,0,115,2,
+ 111,97,100,95,109,111,100,117,108,101,220,2,0,0,115,2,
0,0,0,0,2,122,25,95,76,111,97,100,101,114,66,97,
115,105,99,115,46,108,111,97,100,95,109,111,100,117,108,101,
78,41,8,114,107,0,0,0,114,106,0,0,0,114,108,0,
0,0,114,109,0,0,0,114,161,0,0,0,114,187,0,0,
0,114,192,0,0,0,114,194,0,0,0,114,2,0,0,0,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,114,
- 185,0,0,0,194,2,0,0,115,10,0,0,0,8,3,4,
+ 185,0,0,0,196,2,0,0,115,10,0,0,0,8,3,4,
2,8,8,8,3,8,8,114,185,0,0,0,99,0,0,0,
0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
0,115,74,0,0,0,101,0,90,1,100,0,90,2,100,1,
@@ -1113,7 +1113,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,32,32,32,32,78,41,1,114,40,0,0,0,
41,2,114,102,0,0,0,114,35,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,4,0,0,0,218,10,112,97,116,
- 104,95,109,116,105,109,101,225,2,0,0,115,2,0,0,0,
+ 104,95,109,116,105,109,101,227,2,0,0,115,2,0,0,0,
0,6,122,23,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,0,0,4,0,0,0,67,0,0,0,
@@ -1148,7 +1148,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,114,149,0,0,0,41,1,114,196,0,0,0,
41,2,114,102,0,0,0,114,35,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,4,0,0,0,218,10,112,97,116,
- 104,95,115,116,97,116,115,233,2,0,0,115,2,0,0,0,
+ 104,95,115,116,97,116,115,235,2,0,0,115,2,0,0,0,
0,11,122,23,83,111,117,114,99,101,76,111,97,100,101,114,
46,112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,
0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,
@@ -1172,7 +1172,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,90,10,99,97,99,104,101,95,112,97,116,104,114,54,0,
0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,0,
0,218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,
- 100,101,246,2,0,0,115,2,0,0,0,0,8,122,28,83,
+ 100,101,248,2,0,0,115,2,0,0,0,0,8,122,28,83,
111,117,114,99,101,76,111,97,100,101,114,46,95,99,97,99,
104,101,95,98,121,116,101,99,111,100,101,99,3,0,0,0,
0,0,0,0,3,0,0,0,1,0,0,0,67,0,0,0,
@@ -1188,7 +1188,7 @@ const unsigned char _Py_M__importlib_external[] = {
111,100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,
32,32,32,78,114,2,0,0,0,41,3,114,102,0,0,0,
114,35,0,0,0,114,54,0,0,0,114,2,0,0,0,114,
- 2,0,0,0,114,4,0,0,0,114,198,0,0,0,0,3,
+ 2,0,0,0,114,4,0,0,0,114,198,0,0,0,2,3,
0,0,115,2,0,0,0,0,4,122,21,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,5,0,0,0,10,0,0,
@@ -1209,7 +1209,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,157,0,0,0,41,5,114,102,0,0,0,114,121,0,0,
0,114,35,0,0,0,114,155,0,0,0,218,3,101,120,99,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
- 10,103,101,116,95,115,111,117,114,99,101,7,3,0,0,115,
+ 10,103,101,116,95,115,111,117,114,99,101,9,3,0,0,115,
14,0,0,0,0,2,10,1,2,1,14,1,16,1,4,1,
28,1,122,23,83,111,117,114,99,101,76,111,97,100,101,114,
46,103,101,116,95,115,111,117,114,99,101,114,89,0,0,0,
@@ -1231,7 +1231,7 @@ const unsigned char _Py_M__importlib_external[] = {
105,108,101,41,4,114,102,0,0,0,114,54,0,0,0,114,
35,0,0,0,114,203,0,0,0,114,2,0,0,0,114,2,
0,0,0,114,4,0,0,0,218,14,115,111,117,114,99,101,
- 95,116,111,95,99,111,100,101,17,3,0,0,115,4,0,0,
+ 95,116,111,95,99,111,100,101,19,3,0,0,115,4,0,0,
0,0,5,12,1,122,27,83,111,117,114,99,101,76,111,97,
100,101,114,46,115,111,117,114,99,101,95,116,111,95,99,111,
100,101,99,2,0,0,0,0,0,0,0,15,0,0,0,9,
@@ -1310,7 +1310,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,132,0,0,0,114,69,0,0,0,90,10,98,121,
116,101,115,95,100,97,116,97,90,11,99,111,100,101,95,111,
98,106,101,99,116,114,2,0,0,0,114,2,0,0,0,114,
- 4,0,0,0,114,188,0,0,0,25,3,0,0,115,134,0,
+ 4,0,0,0,114,188,0,0,0,27,3,0,0,115,134,0,
0,0,0,7,10,1,4,1,4,1,4,1,4,1,4,1,
2,1,12,1,14,1,12,2,2,1,14,1,14,1,8,2,
12,1,2,1,14,1,14,1,6,3,2,1,8,2,2,1,
@@ -1325,7 +1325,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,196,0,0,0,114,197,0,0,0,114,199,0,0,0,
114,198,0,0,0,114,202,0,0,0,114,206,0,0,0,114,
188,0,0,0,114,2,0,0,0,114,2,0,0,0,114,2,
- 0,0,0,114,4,0,0,0,114,195,0,0,0,223,2,0,
+ 0,0,0,114,4,0,0,0,114,195,0,0,0,225,2,0,
0,115,14,0,0,0,8,2,8,8,8,13,8,10,8,7,
8,10,14,8,114,195,0,0,0,99,0,0,0,0,0,0,
0,0,0,0,0,0,4,0,0,0,0,0,0,0,115,124,
@@ -1355,7 +1355,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,2,114,100,0,0,0,114,35,0,0,0,41,3,114,102,
0,0,0,114,121,0,0,0,114,35,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,186,0,0,
- 0,116,3,0,0,115,4,0,0,0,0,3,6,1,122,19,
+ 0,118,3,0,0,115,4,0,0,0,0,3,6,1,122,19,
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,
2,0,0,0,67,0,0,0,115,24,0,0,0,124,0,106,
@@ -1363,7 +1363,7 @@ const unsigned char _Py_M__importlib_external[] = {
1,107,2,83,0,41,1,78,41,2,218,9,95,95,99,108,
97,115,115,95,95,114,113,0,0,0,41,2,114,102,0,0,
0,218,5,111,116,104,101,114,114,2,0,0,0,114,2,0,
- 0,0,114,4,0,0,0,218,6,95,95,101,113,95,95,122,
+ 0,0,114,4,0,0,0,218,6,95,95,101,113,95,95,124,
3,0,0,115,4,0,0,0,0,1,12,1,122,17,70,105,
108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,99,
1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
@@ -1372,7 +1372,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,3,218,4,104,97,115,104,114,100,0,0,0,114,35,0,
0,0,41,1,114,102,0,0,0,114,2,0,0,0,114,2,
0,0,0,114,4,0,0,0,218,8,95,95,104,97,115,104,
- 95,95,126,3,0,0,115,2,0,0,0,0,1,122,19,70,
+ 95,95,128,3,0,0,115,2,0,0,0,0,1,122,19,70,
105,108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,
95,95,99,2,0,0,0,0,0,0,0,2,0,0,0,3,
0,0,0,3,0,0,0,115,16,0,0,0,116,0,116,1,
@@ -1386,7 +1386,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,41,3,218,5,115,117,112,101,114,114,212,0,
0,0,114,194,0,0,0,41,2,114,102,0,0,0,114,121,
0,0,0,41,1,114,213,0,0,0,114,2,0,0,0,114,
- 4,0,0,0,114,194,0,0,0,129,3,0,0,115,2,0,
+ 4,0,0,0,114,194,0,0,0,131,3,0,0,115,2,0,
0,0,0,10,122,22,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,0,0,2,0,0,0,1,0,0,0,67,0,0,
@@ -1397,7 +1397,7 @@ const unsigned char _Py_M__importlib_external[] = {
104,101,32,102,105,110,100,101,114,46,41,1,114,35,0,0,
0,41,2,114,102,0,0,0,114,121,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,159,0,0,
- 0,141,3,0,0,115,2,0,0,0,0,3,122,23,70,105,
+ 0,143,3,0,0,115,2,0,0,0,0,3,122,23,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,10,0,0,0,67,0,0,0,115,44,0,0,0,116,
@@ -1410,7 +1410,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,51,0,0,0,90,4,114,101,97,100,41,3,114,102,
0,0,0,114,35,0,0,0,114,55,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,200,0,0,
- 0,146,3,0,0,115,4,0,0,0,0,2,14,1,122,19,
+ 0,148,3,0,0,115,4,0,0,0,0,2,14,1,122,19,
70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,100,
97,116,97,99,2,0,0,0,0,0,0,0,2,0,0,0,
3,0,0,0,67,0,0,0,115,18,0,0,0,124,0,160,
@@ -1418,7 +1418,7 @@ const unsigned char _Py_M__importlib_external[] = {
1,78,41,1,114,161,0,0,0,41,2,114,102,0,0,0,
114,191,0,0,0,114,2,0,0,0,114,2,0,0,0,114,
4,0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,
- 99,101,95,114,101,97,100,101,114,153,3,0,0,115,6,0,
+ 99,101,95,114,101,97,100,101,114,155,3,0,0,115,6,0,
0,0,0,2,10,1,4,1,122,30,70,105,108,101,76,111,
97,100,101,114,46,103,101,116,95,114,101,115,111,117,114,99,
101,95,114,101,97,100,101,114,99,2,0,0,0,0,0,0,
@@ -1430,7 +1430,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,50,0,0,0,114,51,0,0,0,41,3,114,102,0,0,
0,218,8,114,101,115,111,117,114,99,101,114,35,0,0,0,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
- 13,111,112,101,110,95,114,101,115,111,117,114,99,101,159,3,
+ 13,111,112,101,110,95,114,101,115,111,117,114,99,101,161,3,
0,0,115,4,0,0,0,0,1,20,1,122,24,70,105,108,
101,76,111,97,100,101,114,46,111,112,101,110,95,114,101,115,
111,117,114,99,101,99,2,0,0,0,0,0,0,0,3,0,
@@ -1443,7 +1443,7 @@ const unsigned char _Py_M__importlib_external[] = {
28,0,0,0,114,38,0,0,0,114,35,0,0,0,41,3,
114,102,0,0,0,114,221,0,0,0,114,35,0,0,0,114,
2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,13,
- 114,101,115,111,117,114,99,101,95,112,97,116,104,163,3,0,
+ 114,101,115,111,117,114,99,101,95,112,97,116,104,165,3,0,
0,115,8,0,0,0,0,1,10,1,4,1,20,1,122,24,
70,105,108,101,76,111,97,100,101,114,46,114,101,115,111,117,
114,99,101,95,112,97,116,104,99,2,0,0,0,0,0,0,
@@ -1455,7 +1455,7 @@ const unsigned char _Py_M__importlib_external[] = {
38,0,0,0,114,35,0,0,0,114,44,0,0,0,41,3,
114,102,0,0,0,114,100,0,0,0,114,35,0,0,0,114,
2,0,0,0,114,2,0,0,0,114,4,0,0,0,114,223,
- 0,0,0,169,3,0,0,115,8,0,0,0,0,1,8,1,
+ 0,0,0,171,3,0,0,115,8,0,0,0,0,1,8,1,
4,1,20,1,122,22,70,105,108,101,76,111,97,100,101,114,
46,105,115,95,114,101,115,111,117,114,99,101,99,1,0,0,
0,0,0,0,0,1,0,0,0,5,0,0,0,67,0,0,
@@ -1465,7 +1465,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,218,7,108,105,115,116,100,105,114,114,38,0,0,
0,114,35,0,0,0,41,1,114,102,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,218,8,99,111,
- 110,116,101,110,116,115,175,3,0,0,115,2,0,0,0,0,
+ 110,116,101,110,116,115,177,3,0,0,115,2,0,0,0,0,
1,122,19,70,105,108,101,76,111,97,100,101,114,46,99,111,
110,116,101,110,116,115,41,17,114,107,0,0,0,114,106,0,
0,0,114,108,0,0,0,114,109,0,0,0,114,186,0,0,
@@ -1475,7 +1475,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,228,0,0,0,90,13,95,95,99,108,97,115,
115,99,101,108,108,95,95,114,2,0,0,0,114,2,0,0,
0,41,1,114,213,0,0,0,114,4,0,0,0,114,212,0,
- 0,0,111,3,0,0,115,24,0,0,0,8,3,4,2,8,
+ 0,0,113,3,0,0,115,24,0,0,0,8,3,4,2,8,
6,8,4,8,3,16,12,12,5,8,7,12,6,8,4,8,
6,8,6,114,212,0,0,0,99,0,0,0,0,0,0,0,
0,0,0,0,0,3,0,0,0,64,0,0,0,115,46,0,
@@ -1497,7 +1497,7 @@ const unsigned char _Py_M__importlib_external[] = {
95,109,116,105,109,101,90,7,115,116,95,115,105,122,101,41,
3,114,102,0,0,0,114,35,0,0,0,114,211,0,0,0,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,114,
- 197,0,0,0,183,3,0,0,115,4,0,0,0,0,2,8,
+ 197,0,0,0,185,3,0,0,115,4,0,0,0,0,2,8,
1,122,27,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,4,
0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,
@@ -1507,7 +1507,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,198,0,0,0,41,5,114,102,0,0,0,114,
92,0,0,0,114,91,0,0,0,114,54,0,0,0,114,42,
0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,
- 0,0,114,199,0,0,0,188,3,0,0,115,4,0,0,0,
+ 0,0,114,199,0,0,0,190,3,0,0,115,4,0,0,0,
0,2,8,1,122,32,83,111,117,114,99,101,70,105,108,101,
76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,
116,101,99,111,100,101,105,182,1,0,0,41,1,114,231,0,
@@ -1542,7 +1542,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,231,0,0,0,218,6,112,97,114,101,110,116,114,96,0,
0,0,114,27,0,0,0,114,23,0,0,0,114,201,0,0,
0,114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,
- 114,198,0,0,0,193,3,0,0,115,42,0,0,0,0,2,
+ 114,198,0,0,0,195,3,0,0,115,42,0,0,0,0,2,
12,1,4,2,12,1,12,1,12,2,12,1,10,1,2,1,
14,1,14,2,8,1,16,3,6,1,8,1,28,1,2,1,
12,1,16,1,16,2,8,1,122,25,83,111,117,114,99,101,
@@ -1551,7 +1551,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,108,0,0,0,114,109,0,0,0,114,197,0,0,0,114,
199,0,0,0,114,198,0,0,0,114,2,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,114,229,0,
- 0,0,179,3,0,0,115,8,0,0,0,8,2,4,2,8,
+ 0,0,181,3,0,0,115,8,0,0,0,8,2,4,2,8,
5,8,5,114,229,0,0,0,99,0,0,0,0,0,0,0,
0,0,0,0,0,2,0,0,0,64,0,0,0,115,32,0,
0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,
@@ -1573,7 +1573,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,41,5,114,102,0,0,0,114,121,0,0,0,114,35,
0,0,0,114,54,0,0,0,114,132,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,188,0,0,
- 0,228,3,0,0,115,18,0,0,0,0,1,10,1,10,4,
+ 0,230,3,0,0,115,18,0,0,0,0,1,10,1,10,4,
2,1,8,2,12,1,2,1,14,1,2,1,122,29,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,99,111,100,101,99,2,0,0,0,
@@ -1583,14 +1583,14 @@ const unsigned char _Py_M__importlib_external[] = {
101,32,105,115,32,110,111,32,115,111,117,114,99,101,32,99,
111,100,101,46,78,114,2,0,0,0,41,2,114,102,0,0,
0,114,121,0,0,0,114,2,0,0,0,114,2,0,0,0,
- 114,4,0,0,0,114,202,0,0,0,244,3,0,0,115,2,
+ 114,4,0,0,0,114,202,0,0,0,246,3,0,0,115,2,
0,0,0,0,2,122,31,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,41,6,114,107,0,0,0,114,106,
0,0,0,114,108,0,0,0,114,109,0,0,0,114,188,0,
0,0,114,202,0,0,0,114,2,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,4,0,0,0,114,234,0,0,0,
- 224,3,0,0,115,6,0,0,0,8,2,4,2,8,16,114,
+ 226,3,0,0,115,6,0,0,0,8,2,4,2,8,16,114,
234,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
0,3,0,0,0,64,0,0,0,115,92,0,0,0,101,0,
90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,0,
@@ -1611,7 +1611,7 @@ const unsigned char _Py_M__importlib_external[] = {
124,2,124,0,95,1,100,0,83,0,41,1,78,41,2,114,
100,0,0,0,114,35,0,0,0,41,3,114,102,0,0,0,
114,100,0,0,0,114,35,0,0,0,114,2,0,0,0,114,
- 2,0,0,0,114,4,0,0,0,114,186,0,0,0,5,4,
+ 2,0,0,0,114,4,0,0,0,114,186,0,0,0,7,4,
0,0,115,4,0,0,0,0,1,6,1,122,28,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,
@@ -1620,7 +1620,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,106,1,124,1,106,1,107,2,83,0,41,1,78,41,2,
114,213,0,0,0,114,113,0,0,0,41,2,114,102,0,0,
0,114,214,0,0,0,114,2,0,0,0,114,2,0,0,0,
- 114,4,0,0,0,114,215,0,0,0,9,4,0,0,115,4,
+ 114,4,0,0,0,114,215,0,0,0,11,4,0,0,115,4,
0,0,0,0,1,12,1,122,26,69,120,116,101,110,115,105,
111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,101,
113,95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,
@@ -1629,7 +1629,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,41,1,78,41,3,114,216,0,0,0,114,100,0,0,0,
114,35,0,0,0,41,1,114,102,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,4,0,0,0,114,217,0,0,0,
- 13,4,0,0,115,2,0,0,0,0,1,122,28,69,120,116,
+ 15,4,0,0,115,2,0,0,0,0,1,122,28,69,120,116,
101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,
46,95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,
0,0,3,0,0,0,5,0,0,0,67,0,0,0,115,36,
@@ -1645,7 +1645,7 @@ const unsigned char _Py_M__importlib_external[] = {
116,101,95,100,121,110,97,109,105,99,114,130,0,0,0,114,
100,0,0,0,114,35,0,0,0,41,3,114,102,0,0,0,
114,166,0,0,0,114,191,0,0,0,114,2,0,0,0,114,
- 2,0,0,0,114,4,0,0,0,114,187,0,0,0,16,4,
+ 2,0,0,0,114,4,0,0,0,114,187,0,0,0,18,4,
0,0,115,10,0,0,0,0,2,4,1,10,1,6,1,12,
1,122,33,69,120,116,101,110,115,105,111,110,70,105,108,101,
76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,
@@ -1662,7 +1662,7 @@ const unsigned char _Py_M__importlib_external[] = {
90,12,101,120,101,99,95,100,121,110,97,109,105,99,114,130,
0,0,0,114,100,0,0,0,114,35,0,0,0,41,2,114,
102,0,0,0,114,191,0,0,0,114,2,0,0,0,114,2,
- 0,0,0,114,4,0,0,0,114,192,0,0,0,24,4,0,
+ 0,0,0,114,4,0,0,0,114,192,0,0,0,26,4,0,
0,115,6,0,0,0,0,2,14,1,6,1,122,31,69,120,
116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
114,46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,
@@ -1680,7 +1680,7 @@ const unsigned char _Py_M__importlib_external[] = {
78,114,2,0,0,0,41,2,114,22,0,0,0,218,6,115,
117,102,102,105,120,41,1,218,9,102,105,108,101,95,110,97,
109,101,114,2,0,0,0,114,4,0,0,0,218,9,60,103,
- 101,110,101,120,112,114,62,33,4,0,0,115,2,0,0,0,
+ 101,110,101,120,112,114,62,35,4,0,0,115,2,0,0,0,
4,1,122,49,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,46,60,108,111,99,97,108,115,62,46,60,103,101,110,
@@ -1688,7 +1688,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,218,3,97,110,121,218,18,69,88,84,69,78,83,73,79,
78,95,83,85,70,70,73,88,69,83,41,2,114,102,0,0,
0,114,121,0,0,0,114,2,0,0,0,41,1,114,237,0,
- 0,0,114,4,0,0,0,114,161,0,0,0,30,4,0,0,
+ 0,0,114,4,0,0,0,114,161,0,0,0,32,4,0,0,
115,6,0,0,0,0,2,14,1,12,1,122,30,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,
@@ -1700,7 +1700,7 @@ const unsigned char _Py_M__importlib_external[] = {
99,111,100,101,32,111,98,106,101,99,116,46,78,114,2,0,
0,0,41,2,114,102,0,0,0,114,121,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,114,188,0,
- 0,0,36,4,0,0,115,2,0,0,0,0,2,122,28,69,
+ 0,0,38,4,0,0,115,2,0,0,0,0,2,122,28,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,0,0,1,0,0,0,67,0,0,0,
@@ -1710,7 +1710,7 @@ const unsigned char _Py_M__importlib_external[] = {
118,101,32,110,111,32,115,111,117,114,99,101,32,99,111,100,
101,46,78,114,2,0,0,0,41,2,114,102,0,0,0,114,
121,0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,
- 0,0,0,114,202,0,0,0,40,4,0,0,115,2,0,0,
+ 0,0,0,114,202,0,0,0,42,4,0,0,115,2,0,0,
0,0,2,122,30,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,99,2,0,0,0,0,0,0,0,2,0,0,0,
@@ -1721,7 +1721,7 @@ const unsigned char _Py_M__importlib_external[] = {
110,100,32,98,121,32,116,104,101,32,102,105,110,100,101,114,
46,41,1,114,35,0,0,0,41,2,114,102,0,0,0,114,
121,0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,
- 0,0,0,114,159,0,0,0,44,4,0,0,115,2,0,0,
+ 0,0,0,114,159,0,0,0,46,4,0,0,115,2,0,0,
0,0,3,122,32,69,120,116,101,110,115,105,111,110,70,105,
108,101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,
101,110,97,109,101,78,41,14,114,107,0,0,0,114,106,0,
@@ -1730,7 +1730,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,192,0,0,0,114,161,0,0,0,114,188,0,0,0,114,
202,0,0,0,114,118,0,0,0,114,159,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,
- 0,0,114,235,0,0,0,253,3,0,0,115,20,0,0,0,
+ 0,0,114,235,0,0,0,255,3,0,0,115,20,0,0,0,
8,6,4,2,8,4,8,4,8,3,8,8,8,6,8,6,
8,4,8,4,114,235,0,0,0,99,0,0,0,0,0,0,
0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,96,
@@ -1771,7 +1771,7 @@ const unsigned char _Py_M__importlib_external[] = {
116,104,95,102,105,110,100,101,114,41,4,114,102,0,0,0,
114,100,0,0,0,114,35,0,0,0,218,11,112,97,116,104,
95,102,105,110,100,101,114,114,2,0,0,0,114,2,0,0,
- 0,114,4,0,0,0,114,186,0,0,0,57,4,0,0,115,
+ 0,114,4,0,0,0,114,186,0,0,0,59,4,0,0,115,
8,0,0,0,0,1,6,1,6,1,14,1,122,23,95,78,
97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,
110,105,116,95,95,99,1,0,0,0,0,0,0,0,4,0,
@@ -1789,7 +1789,7 @@ const unsigned char _Py_M__importlib_external[] = {
3,100,111,116,90,2,109,101,114,2,0,0,0,114,2,0,
0,0,114,4,0,0,0,218,23,95,102,105,110,100,95,112,
97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,
- 63,4,0,0,115,8,0,0,0,0,2,18,1,8,2,4,
+ 65,4,0,0,115,8,0,0,0,0,2,18,1,8,2,4,
3,122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,
104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
97,116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,
@@ -1801,7 +1801,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,90,18,112,97,114,101,110,116,95,109,111,100,117,
108,101,95,110,97,109,101,90,14,112,97,116,104,95,97,116,
116,114,95,110,97,109,101,114,2,0,0,0,114,2,0,0,
- 0,114,4,0,0,0,114,244,0,0,0,73,4,0,0,115,
+ 0,114,4,0,0,0,114,244,0,0,0,75,4,0,0,115,
4,0,0,0,0,1,12,1,122,31,95,78,97,109,101,115,
112,97,99,101,80,97,116,104,46,95,103,101,116,95,112,97,
114,101,110,116,95,112,97,116,104,99,1,0,0,0,0,0,
@@ -1817,7 +1817,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,3,114,102,0,0,0,90,11,112,97,114,101,110,116,95,
112,97,116,104,114,166,0,0,0,114,2,0,0,0,114,2,
0,0,0,114,4,0,0,0,218,12,95,114,101,99,97,108,
- 99,117,108,97,116,101,77,4,0,0,115,16,0,0,0,0,
+ 99,117,108,97,116,101,79,4,0,0,115,16,0,0,0,0,
2,12,1,10,1,14,3,18,1,6,1,8,1,6,1,122,
27,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
95,114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,
@@ -1826,7 +1826,7 @@ const unsigned char _Py_M__importlib_external[] = {
83,0,41,1,78,41,2,114,226,0,0,0,114,251,0,0,
0,41,1,114,102,0,0,0,114,2,0,0,0,114,2,0,
0,0,114,4,0,0,0,218,8,95,95,105,116,101,114,95,
- 95,90,4,0,0,115,2,0,0,0,0,1,122,23,95,78,
+ 95,92,4,0,0,115,2,0,0,0,0,1,122,23,95,78,
97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,
116,101,114,95,95,99,3,0,0,0,0,0,0,0,3,0,
0,0,3,0,0,0,67,0,0,0,115,14,0,0,0,124,
@@ -1834,7 +1834,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,1,114,243,0,0,0,41,3,114,102,0,0,0,218,5,
105,110,100,101,120,114,35,0,0,0,114,2,0,0,0,114,
2,0,0,0,114,4,0,0,0,218,11,95,95,115,101,116,
- 105,116,101,109,95,95,93,4,0,0,115,2,0,0,0,0,
+ 105,116,101,109,95,95,95,4,0,0,115,2,0,0,0,0,
1,122,26,95,78,97,109,101,115,112,97,99,101,80,97,116,
104,46,95,95,115,101,116,105,116,101,109,95,95,99,1,0,
0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
@@ -1842,7 +1842,7 @@ const unsigned char _Py_M__importlib_external[] = {
1,83,0,41,1,78,41,2,114,31,0,0,0,114,251,0,
0,0,41,1,114,102,0,0,0,114,2,0,0,0,114,2,
0,0,0,114,4,0,0,0,218,7,95,95,108,101,110,95,
- 95,96,4,0,0,115,2,0,0,0,0,1,122,22,95,78,
+ 95,98,4,0,0,115,2,0,0,0,0,1,122,22,95,78,
97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,
101,110,95,95,99,1,0,0,0,0,0,0,0,1,0,0,
0,3,0,0,0,67,0,0,0,115,12,0,0,0,100,1,
@@ -1850,7 +1850,7 @@ const unsigned char _Py_M__importlib_external[] = {
78,97,109,101,115,112,97,99,101,80,97,116,104,40,123,33,
114,125,41,41,2,114,48,0,0,0,114,243,0,0,0,41,
1,114,102,0,0,0,114,2,0,0,0,114,2,0,0,0,
- 114,4,0,0,0,218,8,95,95,114,101,112,114,95,95,99,
+ 114,4,0,0,0,218,8,95,95,114,101,112,114,95,95,101,
4,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109,
101,115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,
114,95,95,99,2,0,0,0,0,0,0,0,2,0,0,0,
@@ -1858,7 +1858,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,160,0,161,0,107,6,83,0,41,1,78,41,1,114,251,
0,0,0,41,2,114,102,0,0,0,218,4,105,116,101,109,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
- 12,95,95,99,111,110,116,97,105,110,115,95,95,102,4,0,
+ 12,95,95,99,111,110,116,97,105,110,115,95,95,104,4,0,
0,115,2,0,0,0,0,1,122,27,95,78,97,109,101,115,
112,97,99,101,80,97,116,104,46,95,95,99,111,110,116,97,
105,110,115,95,95,99,2,0,0,0,0,0,0,0,2,0,
@@ -1866,7 +1866,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,106,0,160,1,124,1,161,1,1,0,100,0,83,0,41,
1,78,41,2,114,243,0,0,0,114,165,0,0,0,41,2,
114,102,0,0,0,114,1,1,0,0,114,2,0,0,0,114,
- 2,0,0,0,114,4,0,0,0,114,165,0,0,0,105,4,
+ 2,0,0,0,114,4,0,0,0,114,165,0,0,0,107,4,
0,0,115,2,0,0,0,0,1,122,21,95,78,97,109,101,
115,112,97,99,101,80,97,116,104,46,97,112,112,101,110,100,
78,41,14,114,107,0,0,0,114,106,0,0,0,114,108,0,
@@ -1875,7 +1875,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,254,0,0,0,114,255,0,0,0,114,0,1,0,0,114,
2,1,0,0,114,165,0,0,0,114,2,0,0,0,114,2,
0,0,0,114,2,0,0,0,114,4,0,0,0,114,241,0,
- 0,0,50,4,0,0,115,22,0,0,0,8,5,4,2,8,
+ 0,0,52,4,0,0,115,22,0,0,0,8,5,4,2,8,
6,8,10,8,4,8,13,8,3,8,3,8,3,8,3,8,
3,114,241,0,0,0,99,0,0,0,0,0,0,0,0,0,
0,0,0,3,0,0,0,64,0,0,0,115,80,0,0,0,
@@ -1891,7 +1891,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,1,78,41,2,114,241,0,0,0,114,243,0,0,0,41,
4,114,102,0,0,0,114,100,0,0,0,114,35,0,0,0,
114,247,0,0,0,114,2,0,0,0,114,2,0,0,0,114,
- 4,0,0,0,114,186,0,0,0,111,4,0,0,115,2,0,
+ 4,0,0,0,114,186,0,0,0,113,4,0,0,115,2,0,
0,0,0,1,122,25,95,78,97,109,101,115,112,97,99,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,3,0,0,0,
@@ -1908,21 +1908,21 @@ const unsigned char _Py_M__importlib_external[] = {
115,112,97,99,101,41,62,41,2,114,48,0,0,0,114,107,
0,0,0,41,2,114,172,0,0,0,114,191,0,0,0,114,
2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,11,
- 109,111,100,117,108,101,95,114,101,112,114,114,4,0,0,115,
+ 109,111,100,117,108,101,95,114,101,112,114,116,4,0,0,115,
2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,97,
99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,
114,101,112,114,99,2,0,0,0,0,0,0,0,2,0,0,
0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
83,0,41,2,78,84,114,2,0,0,0,41,2,114,102,0,
0,0,114,121,0,0,0,114,2,0,0,0,114,2,0,0,
- 0,114,4,0,0,0,114,161,0,0,0,123,4,0,0,115,
+ 0,114,4,0,0,0,114,161,0,0,0,125,4,0,0,115,
2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97,
99,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,67,0,0,0,115,4,0,0,0,100,1,83,
0,41,2,78,114,30,0,0,0,114,2,0,0,0,41,2,
114,102,0,0,0,114,121,0,0,0,114,2,0,0,0,114,
- 2,0,0,0,114,4,0,0,0,114,202,0,0,0,126,4,
+ 2,0,0,0,114,4,0,0,0,114,202,0,0,0,128,4,
0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,101,
115,112,97,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,0,0,0,2,
@@ -1932,7 +1932,7 @@ const unsigned char _Py_M__importlib_external[] = {
103,62,114,190,0,0,0,84,41,1,114,204,0,0,0,41,
1,114,205,0,0,0,41,2,114,102,0,0,0,114,121,0,
0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,0,
- 0,114,188,0,0,0,129,4,0,0,115,2,0,0,0,0,
+ 0,114,188,0,0,0,131,4,0,0,115,2,0,0,0,0,
1,122,25,95,78,97,109,101,115,112,97,99,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,0,0,1,0,0,0,67,0,0,
@@ -1941,14 +1941,14 @@ const unsigned char _Py_M__importlib_external[] = {
105,99,115,32,102,111,114,32,109,111,100,117,108,101,32,99,
114,101,97,116,105,111,110,46,78,114,2,0,0,0,41,2,
114,102,0,0,0,114,166,0,0,0,114,2,0,0,0,114,
- 2,0,0,0,114,4,0,0,0,114,187,0,0,0,132,4,
+ 2,0,0,0,114,4,0,0,0,114,187,0,0,0,134,4,
0,0,115,2,0,0,0,0,1,122,30,95,78,97,109,101,
115,112,97,99,101,76,111,97,100,101,114,46,99,114,101,97,
116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
0,0,0,100,0,83,0,41,1,78,114,2,0,0,0,41,
2,114,102,0,0,0,114,191,0,0,0,114,2,0,0,0,
- 114,2,0,0,0,114,4,0,0,0,114,192,0,0,0,135,
+ 114,2,0,0,0,114,4,0,0,0,114,192,0,0,0,137,
4,0,0,115,2,0,0,0,0,1,122,28,95,78,97,109,
101,115,112,97,99,101,76,111,97,100,101,114,46,101,120,101,
99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,
@@ -1967,7 +1967,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,130,0,0,0,114,243,0,0,0,114,193,0,0,0,
41,2,114,102,0,0,0,114,121,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,4,0,0,0,114,194,0,0,0,
- 138,4,0,0,115,6,0,0,0,0,7,6,1,8,1,122,
+ 140,4,0,0,115,6,0,0,0,0,7,6,1,8,1,122,
28,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
114,46,108,111,97,100,95,109,111,100,117,108,101,78,41,12,
114,107,0,0,0,114,106,0,0,0,114,108,0,0,0,114,
@@ -1975,7 +1975,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,202,0,0,0,114,188,0,0,0,114,187,0,
0,0,114,192,0,0,0,114,194,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,
- 114,3,1,0,0,110,4,0,0,115,16,0,0,0,8,1,
+ 114,3,1,0,0,112,4,0,0,115,16,0,0,0,8,1,
8,3,12,9,8,3,8,3,8,3,8,3,8,3,114,3,
1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
4,0,0,0,64,0,0,0,115,106,0,0,0,101,0,90,
@@ -2010,7 +2010,7 @@ const unsigned char _Py_M__importlib_external[] = {
95,99,97,99,104,101,218,5,105,116,101,109,115,114,110,0,
0,0,114,6,1,0,0,41,3,114,172,0,0,0,114,100,
0,0,0,218,6,102,105,110,100,101,114,114,2,0,0,0,
- 114,2,0,0,0,114,4,0,0,0,114,6,1,0,0,156,
+ 114,2,0,0,0,114,4,0,0,0,114,6,1,0,0,158,
4,0,0,115,10,0,0,0,0,4,22,1,8,1,10,1,
10,1,122,28,80,97,116,104,70,105,110,100,101,114,46,105,
110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,
@@ -2030,7 +2030,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,62,0,0,0,114,120,0,0,0,114,101,0,0,
0,41,3,114,172,0,0,0,114,35,0,0,0,90,4,104,
111,111,107,114,2,0,0,0,114,2,0,0,0,114,4,0,
- 0,0,218,11,95,112,97,116,104,95,104,111,111,107,115,166,
+ 0,0,218,11,95,112,97,116,104,95,104,111,111,107,115,168,
4,0,0,115,16,0,0,0,0,3,16,1,12,1,10,1,
2,1,14,1,14,1,12,2,122,22,80,97,116,104,70,105,
110,100,101,114,46,95,112,97,116,104,95,104,111,111,107,115,
@@ -2061,7 +2061,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,111,114,114,12,1,0,0,41,3,114,172,0,0,0,114,
35,0,0,0,114,10,1,0,0,114,2,0,0,0,114,2,
0,0,0,114,4,0,0,0,218,20,95,112,97,116,104,95,
- 105,109,112,111,114,116,101,114,95,99,97,99,104,101,179,4,
+ 105,109,112,111,114,116,101,114,95,99,97,99,104,101,181,4,
0,0,115,22,0,0,0,0,8,8,1,2,1,12,1,14,
3,8,1,2,1,14,1,14,1,10,1,16,1,122,31,80,
97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
@@ -2079,7 +2079,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,10,1,0,0,114,122,0,0,0,114,123,0,
0,0,114,166,0,0,0,114,2,0,0,0,114,2,0,0,
0,114,4,0,0,0,218,16,95,108,101,103,97,99,121,95,
- 103,101,116,95,115,112,101,99,201,4,0,0,115,18,0,0,
+ 103,101,116,95,115,112,101,99,203,4,0,0,115,18,0,0,
0,0,4,10,1,16,2,10,1,4,1,8,1,12,1,12,
1,6,1,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,
@@ -2110,7 +2110,7 @@ const unsigned char _Py_M__importlib_external[] = {
115,112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,
121,114,10,1,0,0,114,166,0,0,0,114,123,0,0,0,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,218,
- 9,95,103,101,116,95,115,112,101,99,216,4,0,0,115,40,
+ 9,95,103,101,116,95,115,112,101,99,218,4,0,0,115,40,
0,0,0,0,5,4,1,8,1,14,1,2,1,10,1,8,
1,10,1,14,2,12,1,8,1,2,1,10,1,8,1,6,
1,8,1,8,5,12,2,12,1,6,1,122,20,80,97,116,
@@ -2137,7 +2137,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,241,0,0,0,41,6,114,172,0,0,0,114,121,0,
0,0,114,35,0,0,0,114,181,0,0,0,114,166,0,0,
0,114,17,1,0,0,114,2,0,0,0,114,2,0,0,0,
- 114,4,0,0,0,114,182,0,0,0,248,4,0,0,115,26,
+ 114,4,0,0,0,114,182,0,0,0,250,4,0,0,115,26,
0,0,0,0,6,8,1,6,1,14,1,8,1,4,1,10,
1,6,1,4,3,6,1,16,1,4,2,6,2,122,20,80,
97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,115,
@@ -2159,7 +2159,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,122,0,0,0,41,4,114,172,0,0,0,114,121,0,
0,0,114,35,0,0,0,114,166,0,0,0,114,2,0,0,
0,114,2,0,0,0,114,4,0,0,0,114,183,0,0,0,
- 16,5,0,0,115,8,0,0,0,0,8,12,1,8,1,4,
+ 18,5,0,0,115,8,0,0,0,0,8,12,1,8,1,4,
1,122,22,80,97,116,104,70,105,110,100,101,114,46,102,105,
110,100,95,109,111,100,117,108,101,41,1,78,41,2,78,78,
41,1,78,41,12,114,107,0,0,0,114,106,0,0,0,114,
@@ -2167,7 +2167,7 @@ const unsigned char _Py_M__importlib_external[] = {
1,0,0,114,12,1,0,0,114,14,1,0,0,114,15,1,
0,0,114,18,1,0,0,114,182,0,0,0,114,183,0,0,
0,114,2,0,0,0,114,2,0,0,0,114,2,0,0,0,
- 114,4,0,0,0,114,5,1,0,0,152,4,0,0,115,22,
+ 114,4,0,0,0,114,5,1,0,0,154,4,0,0,115,22,
0,0,0,8,2,4,2,12,10,12,13,12,22,12,15,2,
1,12,31,2,1,12,23,2,1,114,5,1,0,0,99,0,
0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
@@ -2211,7 +2211,7 @@ const unsigned char _Py_M__importlib_external[] = {
86,0,1,0,113,2,100,0,83,0,41,1,78,114,2,0,
0,0,41,2,114,22,0,0,0,114,236,0,0,0,41,1,
114,122,0,0,0,114,2,0,0,0,114,4,0,0,0,114,
- 238,0,0,0,45,5,0,0,115,2,0,0,0,4,0,122,
+ 238,0,0,0,47,5,0,0,115,2,0,0,0,4,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,59,0,0,0,114,89,0,0,
@@ -2223,7 +2223,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,35,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,168,0,0,0,114,2,0,0,0,41,1,114,122,0,
- 0,0,114,4,0,0,0,114,186,0,0,0,39,5,0,0,
+ 0,0,114,4,0,0,0,114,186,0,0,0,41,5,0,0,
115,16,0,0,0,0,4,4,1,12,1,26,1,6,2,10,
1,6,1,8,1,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,
@@ -2233,7 +2233,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,100,105,114,101,99,116,111,114,121,32,109,116,105,109,101,
46,114,89,0,0,0,78,41,1,114,21,1,0,0,41,1,
114,102,0,0,0,114,2,0,0,0,114,2,0,0,0,114,
- 4,0,0,0,114,6,1,0,0,53,5,0,0,115,2,0,
+ 4,0,0,0,114,6,1,0,0,55,5,0,0,115,2,0,
0,0,0,2,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,3,0,0,0,3,
@@ -2256,7 +2256,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,3,114,182,0,0,0,114,122,0,0,0,114,158,0,0,
0,41,3,114,102,0,0,0,114,121,0,0,0,114,166,0,
0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,0,
- 0,114,119,0,0,0,59,5,0,0,115,8,0,0,0,0,
+ 0,114,119,0,0,0,61,5,0,0,115,8,0,0,0,0,
7,10,1,8,1,8,1,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,7,0,0,0,6,0,0,0,
@@ -2267,7 +2267,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,167,0,0,0,114,121,0,0,0,114,35,0,0,0,90,
4,115,109,115,108,114,181,0,0,0,114,122,0,0,0,114,
2,0,0,0,114,2,0,0,0,114,4,0,0,0,114,18,
- 1,0,0,71,5,0,0,115,6,0,0,0,0,1,10,1,
+ 1,0,0,73,5,0,0,115,6,0,0,0,0,1,10,1,
8,1,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,14,0,0,0,8,0,0,0,67,0,0,0,115,98,
@@ -2321,7 +2321,7 @@ const unsigned char _Py_M__importlib_external[] = {
167,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,166,
0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,0,
- 0,0,114,182,0,0,0,76,5,0,0,115,70,0,0,0,
+ 0,0,114,182,0,0,0,78,5,0,0,115,70,0,0,0,
0,5,4,1,14,1,2,1,24,1,14,1,10,1,10,1,
8,1,6,2,6,1,6,1,10,2,6,1,4,2,8,1,
12,1,14,1,8,1,10,1,8,1,26,4,8,2,14,1,
@@ -2352,7 +2352,7 @@ const unsigned char _Py_M__importlib_external[] = {
1,160,0,161,0,146,2,113,4,83,0,114,2,0,0,0,
41,1,114,90,0,0,0,41,2,114,22,0,0,0,90,2,
102,110,114,2,0,0,0,114,2,0,0,0,114,4,0,0,
- 0,218,9,60,115,101,116,99,111,109,112,62,153,5,0,0,
+ 0,218,9,60,115,101,116,99,111,109,112,62,155,5,0,0,
115,2,0,0,0,6,0,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,
@@ -2369,7 +2369,7 @@ const unsigned char _Py_M__importlib_external[] = {
116,115,114,1,1,0,0,114,100,0,0,0,114,248,0,0,
0,114,236,0,0,0,90,8,110,101,119,95,110,97,109,101,
114,2,0,0,0,114,2,0,0,0,114,4,0,0,0,114,
- 26,1,0,0,124,5,0,0,115,34,0,0,0,0,2,6,
+ 26,1,0,0,126,5,0,0,115,34,0,0,0,0,2,6,
1,2,1,22,1,20,3,10,3,12,1,12,7,6,1,8,
1,16,1,4,1,18,2,4,1,12,1,6,1,12,1,122,
22,70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,
@@ -2407,7 +2407,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,35,0,0,0,41,2,114,172,0,0,0,114,25,1,0,
0,114,2,0,0,0,114,4,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,165,5,0,0,115,6,0,0,0,0,2,
+ 105,110,100,101,114,167,5,0,0,115,6,0,0,0,0,2,
8,1,12,1,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,
@@ -2415,7 +2415,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,41,3,114,172,0,0,0,114,25,1,0,0,114,31,1,
0,0,114,2,0,0,0,41,2,114,172,0,0,0,114,25,
1,0,0,114,4,0,0,0,218,9,112,97,116,104,95,104,
- 111,111,107,155,5,0,0,115,4,0,0,0,0,10,14,6,
+ 111,111,107,157,5,0,0,115,4,0,0,0,0,10,14,6,
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,1,
0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,
@@ -2423,7 +2423,7 @@ const unsigned char _Py_M__importlib_external[] = {
16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,125,
41,41,2,114,48,0,0,0,114,35,0,0,0,41,1,114,
102,0,0,0,114,2,0,0,0,114,2,0,0,0,114,4,
- 0,0,0,114,0,1,0,0,173,5,0,0,115,2,0,0,
+ 0,0,0,114,0,1,0,0,175,5,0,0,115,2,0,0,
0,0,1,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,107,0,
0,0,114,106,0,0,0,114,108,0,0,0,114,109,0,0,
@@ -2432,7 +2432,7 @@ const unsigned char _Py_M__importlib_external[] = {
182,0,0,0,114,26,1,0,0,114,184,0,0,0,114,32,
1,0,0,114,0,1,0,0,114,2,0,0,0,114,2,0,
0,0,114,2,0,0,0,114,4,0,0,0,114,19,1,0,
- 0,30,5,0,0,115,20,0,0,0,8,7,4,2,8,14,
+ 0,32,5,0,0,115,20,0,0,0,8,7,4,2,8,14,
8,4,4,2,8,12,8,5,10,48,8,31,12,18,114,19,
1,0,0,99,4,0,0,0,0,0,0,0,6,0,0,0,
8,0,0,0,67,0,0,0,115,146,0,0,0,124,0,160,
@@ -2455,7 +2455,7 @@ const unsigned char _Py_M__importlib_external[] = {
90,9,99,112,97,116,104,110,97,109,101,114,122,0,0,0,
114,166,0,0,0,114,2,0,0,0,114,2,0,0,0,114,
4,0,0,0,218,14,95,102,105,120,95,117,112,95,109,111,
- 100,117,108,101,179,5,0,0,115,34,0,0,0,0,2,10,
+ 100,117,108,101,181,5,0,0,115,34,0,0,0,0,2,10,
1,10,1,4,1,4,1,8,1,8,1,12,2,10,1,4,
1,14,1,2,1,8,1,8,1,8,1,12,1,14,2,114,
37,1,0,0,99,0,0,0,0,0,0,0,0,3,0,0,
@@ -2474,7 +2474,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,234,0,0,0,114,76,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,2,0,0,0,
- 114,2,0,0,0,114,4,0,0,0,114,163,0,0,0,202,
+ 114,2,0,0,0,114,4,0,0,0,114,163,0,0,0,204,
5,0,0,115,8,0,0,0,0,5,12,1,8,1,8,1,
114,163,0,0,0,99,1,0,0,0,0,0,0,0,12,0,
0,0,9,0,0,0,67,0,0,0,115,156,1,0,0,124,
@@ -2525,7 +2525,7 @@ const unsigned char _Py_M__importlib_external[] = {
107,2,86,0,1,0,113,2,100,1,83,0,41,2,114,29,
0,0,0,78,41,1,114,31,0,0,0,41,2,114,22,0,
0,0,114,79,0,0,0,114,2,0,0,0,114,2,0,0,
- 0,114,4,0,0,0,114,238,0,0,0,238,5,0,0,115,
+ 0,114,4,0,0,0,114,238,0,0,0,240,5,0,0,115,
2,0,0,0,4,0,122,25,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,114,60,0,0,0,122,30,105,109,112,111,114,116,108,105,
@@ -2553,7 +2553,7 @@ const unsigned char _Py_M__importlib_external[] = {
107,114,101,102,95,109,111,100,117,108,101,90,13,119,105,110,
114,101,103,95,109,111,100,117,108,101,114,2,0,0,0,114,
2,0,0,0,114,4,0,0,0,218,6,95,115,101,116,117,
- 112,213,5,0,0,115,76,0,0,0,0,8,4,1,6,1,
+ 112,215,5,0,0,115,76,0,0,0,0,8,4,1,6,1,
6,3,10,1,8,1,10,1,12,2,10,1,14,3,22,1,
12,2,22,1,8,1,10,1,10,1,6,2,2,1,10,1,
10,1,14,1,12,2,8,1,12,1,12,1,18,3,10,1,
@@ -2573,7 +2573,7 @@ const unsigned char _Py_M__importlib_external[] = {
2,114,43,1,0,0,90,17,115,117,112,112,111,114,116,101,
100,95,108,111,97,100,101,114,115,114,2,0,0,0,114,2,
0,0,0,114,4,0,0,0,218,8,95,105,110,115,116,97,
- 108,108,21,6,0,0,115,8,0,0,0,0,2,8,1,6,
+ 108,108,23,6,0,0,115,8,0,0,0,0,2,8,1,6,
1,20,1,114,46,1,0,0,41,1,114,47,0,0,0,41,
1,78,41,3,78,78,78,41,2,114,60,0,0,0,114,60,
0,0,0,41,1,84,41,1,78,41,1,78,41,61,114,109,
@@ -2605,7 +2605,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,2,0,0,0,114,4,0,0,0,218,8,60,109,111,100,
117,108,101,62,8,0,0,0,115,118,0,0,0,4,15,4,
1,4,1,2,1,6,3,8,17,8,5,8,5,8,6,8,
- 12,8,10,8,9,8,5,8,7,10,22,10,127,0,5,16,
+ 12,8,10,8,9,8,5,8,7,10,22,10,127,0,7,16,
1,12,2,4,1,4,2,6,2,6,2,8,2,16,45,8,
34,8,19,8,12,8,12,8,28,8,17,8,33,8,28,8,
24,10,13,10,10,10,11,8,14,6,3,4,1,14,67,14,
[View Less]
1
0

[3.6] bpo-33641: Convert RFC references into links. (GH-7103) (GH-7276)
by Serhiy Storchaka May 31, 2018
by Serhiy Storchaka May 31, 2018
May 31, 2018
https://github.com/python/cpython/commit/55d9e865cb3b50587c17c8a7beee090c4a…
commit: 55d9e865cb3b50587c17c8a7beee090c4ac8d535
branch: 3.6
author: Serhiy Storchaka <storchaka(a)gmail.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-31T09:11:07+03:00
summary:
[3.6] bpo-33641: Convert RFC references into links. (GH-7103) (GH-7276)
85% of them are already links.
(cherry picked from commit 0a36ac1a09587735237c5978ebd046313922869c)
files:
M Doc/howto/logging-cookbook.rst
M …
[View More]Doc/howto/logging.rst
M Doc/howto/urllib2.rst
M Doc/library/binascii.rst
M Doc/library/codecs.rst
M Doc/library/email.examples.rst
M Doc/library/ftplib.rst
M Doc/library/hashlib.rst
M Doc/library/http.cookiejar.rst
M Doc/library/imaplib.rst
M Doc/library/logging.handlers.rst
M Doc/library/logging.rst
M Doc/library/nntplib.rst
M Doc/library/ssl.rst
M Doc/library/stringprep.rst
M Doc/library/urllib.error.rst
M Doc/library/urllib.request.rst
M Doc/library/uuid.rst
M Doc/library/wsgiref.rst
M Doc/library/xmlrpc.client.rst
M Doc/tutorial/stdlib.rst
M Doc/whatsnew/2.4.rst
diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst
index b43dc2b1fa09..96d550c457b8 100644
--- a/Doc/howto/logging-cookbook.rst
+++ b/Doc/howto/logging-cookbook.rst
@@ -1652,11 +1652,11 @@ works::
Inserting a BOM into messages sent to a SysLogHandler
-----------------------------------------------------
-`RFC 5424 <https://tools.ietf.org/html/rfc5424>`_ requires that a
+:rfc:`5424` requires that a
Unicode message be sent to a syslog daemon as a set of bytes which have the
following structure: an optional pure-ASCII component, followed by a UTF-8 Byte
-Order Mark (BOM), followed by Unicode encoded using UTF-8. (See the `relevant
-section of the specification <https://tools.ietf.org/html/rfc5424#section-6>`_.)
+Order Mark (BOM), followed by Unicode encoded using UTF-8. (See the
+:rfc:`relevant section of the specification <5424#section-6>`.)
In Python 3.1, code was added to
:class:`~logging.handlers.SysLogHandler` to insert a BOM into the message, but
@@ -1666,7 +1666,7 @@ appear before it.
As this behaviour is broken, the incorrect BOM insertion code is being removed
from Python 3.2.4 and later. However, it is not being replaced, and if you
-want to produce RFC 5424-compliant messages which include a BOM, an optional
+want to produce :rfc:`5424`-compliant messages which include a BOM, an optional
pure-ASCII sequence before it and arbitrary Unicode after it, encoded using
UTF-8, then you need to do the following:
@@ -1689,7 +1689,7 @@ UTF-8, then you need to do the following:
The formatted message *will* be encoded using UTF-8 encoding by
``SysLogHandler``. If you follow the above rules, you should be able to produce
-RFC 5424-compliant messages. If you don't, logging may not complain, but your
+:rfc:`5424`-compliant messages. If you don't, logging may not complain, but your
messages will not be RFC 5424-compliant, and your syslog daemon may complain.
diff --git a/Doc/howto/logging.rst b/Doc/howto/logging.rst
index 5976c32d93b0..9914f8d154ab 100644
--- a/Doc/howto/logging.rst
+++ b/Doc/howto/logging.rst
@@ -297,7 +297,7 @@ which should print something like this:
2010-12-12 11:41:42,612 is when this event was logged.
The default format for date/time display (shown above) is like ISO8601 or
-RFC 3339. If you need more control over the formatting of the date/time, provide
+:rfc:`3339`. If you need more control over the formatting of the date/time, provide
a *datefmt* argument to ``basicConfig``, as in this example::
import logging
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
index 8b93d701869d..7505e7564422 100644
--- a/Doc/howto/urllib2.rst
+++ b/Doc/howto/urllib2.rst
@@ -239,7 +239,7 @@ a different URL, urllib will handle that for you). For those it can't handle,
urlopen will raise an :exc:`HTTPError`. Typical errors include '404' (page not
found), '403' (request forbidden), and '401' (authentication required).
-See section 10 of RFC 2616 for a reference on all the HTTP error codes.
+See section 10 of :rfc:`2616` for a reference on all the HTTP error codes.
The :exc:`HTTPError` instance raised will have an integer 'code' attribute, which
corresponds to the error sent by the server.
@@ -252,7 +252,7 @@ codes in the 100--299 range indicate success, you will usually only see error
codes in the 400--599 range.
:attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary of
-response codes in that shows all the response codes used by RFC 2616. The
+response codes in that shows all the response codes used by :rfc:`2616`. The
dictionary is reproduced here for convenience ::
# Table mapping response codes to messages; entries have the
diff --git a/Doc/library/binascii.rst b/Doc/library/binascii.rst
index 0476f507717c..adb087ef8826 100644
--- a/Doc/library/binascii.rst
+++ b/Doc/library/binascii.rst
@@ -77,7 +77,7 @@ The :mod:`binascii` module defines the following functions:
*quotetabs* is present and true, all tabs and spaces will be encoded. If the
optional argument *istext* is present and true, newlines are not encoded but
trailing whitespace will be encoded. If the optional argument *header* is
- present and true, spaces will be encoded as underscores per RFC1522. If the
+ present and true, spaces will be encoded as underscores per :rfc:`1522`. If the
optional argument *header* is present and false, newline characters will be
encoded as well; otherwise linefeed conversion might corrupt the binary data
stream.
diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
index 74b24e10ede6..24008a0b3f00 100644
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -1425,7 +1425,7 @@ to the user.
Python supports this conversion in several ways: the ``idna`` codec performs
conversion between Unicode and ACE, separating an input string into labels
-based on the separator characters defined in `section 3.1`_ (1) of :rfc:`3490`
+based on the separator characters defined in :rfc:`section 3.1 of RFC 3490 <3490#section-3.1>`
and converting each label to ACE as required, and conversely separating an input
byte string into labels based on the ``.`` separator and converting any ACE
labels found into unicode. Furthermore, the :mod:`socket` module
@@ -1436,8 +1436,6 @@ parameters, such as :mod:`http.client` and :mod:`ftplib`, accept Unicode host
names (:mod:`http.client` then also transparently sends an IDNA hostname in the
:mailheader:`Host` field if it sends that field at all).
-.. _section 3.1: https://tools.ietf.org/html/rfc3490#section-3.1
-
When receiving host names from the wire (such as in reverse name lookup), no
automatic conversion to Unicode is performed: Applications wishing to present
such host names to the user should decode them to Unicode.
diff --git a/Doc/library/email.examples.rst b/Doc/library/email.examples.rst
index 84e9aee0bc48..fc964622809d 100644
--- a/Doc/library/email.examples.rst
+++ b/Doc/library/email.examples.rst
@@ -12,7 +12,7 @@ text content and the addresses may contain unicode characters):
.. literalinclude:: ../includes/email-simple.py
-Parsing RFC822 headers can easily be done by the using the classes
+Parsing :rfc:`822` headers can easily be done by the using the classes
from the :mod:`~email.parser` module:
.. literalinclude:: ../includes/email-headers.py
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index 7291dfe84811..6c39f9a59fc1 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -295,7 +295,7 @@ followed by ``lines`` for the text version or ``binary`` for the binary version.
If optional *rest* is given, a ``REST`` command is sent to the server, passing
*rest* as an argument. *rest* is usually a byte offset into the requested file,
telling the server to restart sending the file's bytes at the requested offset,
- skipping over the initial bytes. Note however that RFC 959 requires only that
+ skipping over the initial bytes. Note however that :rfc:`959` requires only that
*rest* be a string containing characters in the printable range from ASCII code
33 to ASCII code 126. The :meth:`transfercmd` method, therefore, converts
*rest* to a string, but no check is performed on the string's contents. If the
diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
index 3a27a5b566f5..9bd39cb4a51b 100644
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -283,7 +283,7 @@ BLAKE2
.. index::
single: blake2b, blake2s
-BLAKE2_ is a cryptographic hash function defined in RFC-7693_ that comes in two
+BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes in two
flavors:
* **BLAKE2b**, optimized for 64-bit platforms and produces digests of any size
@@ -707,7 +707,6 @@ Domain Dedication 1.0 Universal:
* *Alexandr Sokolovskiy*
-.. _RFC-7693: https://tools.ietf.org/html/rfc7693
.. _BLAKE2: https://blake2.net
.. _HMAC: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
.. _BLAKE: https://131002.net/blake/
diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst
index 5370601544c7..d8da6683a3a5 100644
--- a/Doc/library/http.cookiejar.rst
+++ b/Doc/library/http.cookiejar.rst
@@ -88,7 +88,7 @@ The following classes are provided:
:class:`DefaultCookiePolicy` objects.
:class:`DefaultCookiePolicy` implements the standard accept / reject rules for
- Netscape and RFC 2965 cookies. By default, RFC 2109 cookies (ie. cookies
+ Netscape and :rfc:`2965` cookies. By default, :rfc:`2109` cookies (ie. cookies
received in a :mailheader:`Set-Cookie` header with a version cookie-attribute of
1) are treated according to the RFC 2965 rules. However, if RFC 2965 handling
is turned off or :attr:`rfc2109_as_netscape` is ``True``, RFC 2109 cookies are
@@ -100,7 +100,7 @@ The following classes are provided:
.. class:: Cookie()
- This class represents Netscape, RFC 2109 and RFC 2965 cookies. It is not
+ This class represents Netscape, :rfc:`2109` and :rfc:`2965` cookies. It is not
expected that users of :mod:`http.cookiejar` construct their own :class:`Cookie`
instances. Instead, if necessary, call :meth:`make_cookies` on a
:class:`CookieJar` instance.
@@ -123,14 +123,14 @@ The following classes are provided:
the one sketched out in ``cookie_spec.html``.
:rfc:`2109` - HTTP State Management Mechanism
- Obsoleted by RFC 2965. Uses :mailheader:`Set-Cookie` with version=1.
+ Obsoleted by :rfc:`2965`. Uses :mailheader:`Set-Cookie` with version=1.
:rfc:`2965` - HTTP State Management Mechanism
The Netscape protocol with the bugs fixed. Uses :mailheader:`Set-Cookie2` in
place of :mailheader:`Set-Cookie`. Not widely used.
http://kristol.org/cookie/errata.html
- Unfinished errata to RFC 2965.
+ Unfinished errata to :rfc:`2965`.
:rfc:`2964` - Use of HTTP State Management
@@ -320,7 +320,7 @@ writing.
.. note::
- This loses information about RFC 2965 cookies, and also about newer or
+ This loses information about :rfc:`2965` cookies, and also about newer or
non-standard cookie-attributes such as ``port``.
.. warning::
@@ -410,13 +410,13 @@ be assigned to.
.. attribute:: CookiePolicy.rfc2965
- Implement RFC 2965 protocol.
+ Implement :rfc:`2965` protocol.
.. attribute:: CookiePolicy.hide_cookie2
Don't add :mailheader:`Cookie2` header to requests (the presence of this header
- indicates to the server that we understand RFC 2965 cookies).
+ indicates to the server that we understand :rfc:`2965` cookies).
The most useful way to define a :class:`CookiePolicy` class is by subclassing
from :class:`DefaultCookiePolicy` and overriding some or all of the methods
@@ -431,7 +431,7 @@ DefaultCookiePolicy Objects
Implements the standard rules for accepting and returning cookies.
-Both RFC 2965 and Netscape cookies are covered. RFC 2965 handling is switched
+Both :rfc:`2965` and Netscape cookies are covered. RFC 2965 handling is switched
off by default.
The easiest way to provide your own policy is to override this class and call
@@ -510,11 +510,11 @@ all be assigned to.
.. attribute:: DefaultCookiePolicy.rfc2109_as_netscape
- If true, request that the :class:`CookieJar` instance downgrade RFC 2109 cookies
+ If true, request that the :class:`CookieJar` instance downgrade :rfc:`2109` cookies
(ie. cookies received in a :mailheader:`Set-Cookie` header with a version
cookie-attribute of 1) to Netscape cookies by setting the version attribute of
the :class:`Cookie` instance to 0. The default value is :const:`None`, in which
- case RFC 2109 cookies are downgraded if and only if RFC 2965 handling is turned
+ case RFC 2109 cookies are downgraded if and only if :rfc:`2965` handling is turned
off. Therefore, RFC 2109 cookies are downgraded by default.
@@ -527,11 +527,11 @@ General strictness switches:
and isn't guaranteed to work!
-RFC 2965 protocol strictness switches:
+:rfc:`2965` protocol strictness switches:
.. attribute:: DefaultCookiePolicy.strict_rfc2965_unverifiable
- Follow RFC 2965 rules on unverifiable transactions (usually, an unverifiable
+ Follow :rfc:`2965` rules on unverifiable transactions (usually, an unverifiable
transaction is one resulting from a redirect or a request for an image hosted on
another site). If this is false, cookies are *never* blocked on the basis of
verifiability
@@ -541,7 +541,7 @@ Netscape protocol strictness switches:
.. attribute:: DefaultCookiePolicy.strict_ns_unverifiable
- Apply RFC 2965 rules on unverifiable transactions even to Netscape cookies.
+ Apply :rfc:`2965` rules on unverifiable transactions even to Netscape cookies.
.. attribute:: DefaultCookiePolicy.strict_ns_domain
@@ -581,7 +581,7 @@ both flags are set).
.. attribute:: DefaultCookiePolicy.DomainRFC2965Match
- When setting cookies, require a full RFC 2965 domain-match.
+ When setting cookies, require a full :rfc:`2965` domain-match.
The following attributes are provided for convenience, and are the most useful
combinations of the above flags:
@@ -605,7 +605,7 @@ Cookie Objects
standard cookie-attributes specified in the various cookie standards. The
correspondence is not one-to-one, because there are complicated rules for
assigning default values, because the ``max-age`` and ``expires``
-cookie-attributes contain equivalent information, and because RFC 2109 cookies
+cookie-attributes contain equivalent information, and because :rfc:`2109` cookies
may be 'downgraded' by :mod:`http.cookiejar` from version 1 to version 0 (Netscape)
cookies.
@@ -616,8 +616,8 @@ internal consistency, so you should know what you're doing if you do that.
.. attribute:: Cookie.version
- Integer or :const:`None`. Netscape cookies have :attr:`version` 0. RFC 2965 and
- RFC 2109 cookies have a ``version`` cookie-attribute of 1. However, note that
+ Integer or :const:`None`. Netscape cookies have :attr:`version` 0. :rfc:`2965` and
+ :rfc:`2109` cookies have a ``version`` cookie-attribute of 1. However, note that
:mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to Netscape cookies, in which
case :attr:`version` is 0.
@@ -673,7 +673,7 @@ internal consistency, so you should know what you're doing if you do that.
.. attribute:: Cookie.rfc2109
- ``True`` if this cookie was received as an RFC 2109 cookie (ie. the cookie
+ ``True`` if this cookie was received as an :rfc:`2109` cookie (ie. the cookie
arrived in a :mailheader:`Set-Cookie` header, and the value of the Version
cookie-attribute in that header was 1). This attribute is provided because
:mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to Netscape cookies, in
@@ -745,7 +745,7 @@ cookies (assumes Unix/Netscape convention for location of the cookies file)::
r = opener.open("http://example.com/")
The next example illustrates the use of :class:`DefaultCookiePolicy`. Turn on
-RFC 2965 cookies, be more strict about domains when setting and returning
+:rfc:`2965` cookies, be more strict about domains when setting and returning
Netscape cookies, and block some domains from setting cookies or having them
returned::
diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst
index 1632eb7aed36..2e2c59c9ce00 100644
--- a/Doc/library/imaplib.rst
+++ b/Doc/library/imaplib.rst
@@ -342,7 +342,7 @@ An :class:`IMAP4` instance has the following methods:
.. method:: IMAP4.namespace()
- Returns IMAP namespaces as defined in RFC2342.
+ Returns IMAP namespaces as defined in :rfc:`2342`.
.. method:: IMAP4.noop()
diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst
index 6bb7b13af813..a31ee31922fc 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -583,7 +583,7 @@ supports sending logging messages to a remote or local Unix syslog.
(See: :issue:`12168`.) In earlier versions, the message sent to the
syslog daemons was always terminated with a NUL byte, because early
versions of these daemons expected a NUL terminated message - even
- though it's not in the relevant specification (RFC 5424). More recent
+ though it's not in the relevant specification (:rfc:`5424`). More recent
versions of these daemons don't expect the NUL byte but strip it off
if it's there, and even more recent daemons (which adhere more closely
to RFC 5424) pass the NUL byte on as part of the message.
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index d0a6e613d8ee..3072a53ef4bf 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -516,7 +516,7 @@ The useful mapping keys in a :class:`LogRecord` are given in the section on
initialized with a format string for the message as a whole, as well as a
format string for the date/time portion of a message. If no *fmt* is
specified, ``'%(message)s'`` is used. If no *datefmt* is specified, an
- ISO8601-like (or RFC3339-like) date format is used. See the
+ ISO8601-like (or :rfc:`3339`-like) date format is used. See the
:meth:`formatTime` documentation for more details.
The *style* parameter can be one of '%', '{' or '$' and determines how
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index 2c3cd8dafe6e..d8ef8a692a95 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -542,7 +542,7 @@ them have been superseded by newer commands in :rfc:`3977`.
is supplied, then the returned *list* is an empty list. This is an optional NNTP
extension, and may not be supported by all servers.
- RFC2980 says "It is suggested that this extension be deprecated". Use
+ :rfc:`2980` says "It is suggested that this extension be deprecated". Use
:meth:`descriptions` or :meth:`description` instead.
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index cb17742bcc8b..caf298ae02b8 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -2345,25 +2345,25 @@ with LibreSSL.
`SSL/TLS Strong Encryption: An Introduction <https://httpd.apache.org/docs/trunk/en/ssl/ssl_intro.html>`_
Intro from the Apache HTTP Server documentation
- `RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <https://www.ietf.org/rfc/rfc1422>`_
+ :rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <1422>`
Steve Kent
- `RFC 4086: Randomness Requirements for Security <http://datatracker.ietf.org/doc/rfc4086/>`_
+ :rfc:`RFC 4086: Randomness Requirements for Security <4086>`
Donald E., Jeffrey I. Schiller
- `RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile <http://datatracker.ietf.org/doc/rfc5280/>`_
+ :rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile <5280>`
D. Cooper
- `RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <https://tools.ietf.org/html/rfc5246>`_
+ :rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <5246>`
T. Dierks et. al.
- `RFC 6066: Transport Layer Security (TLS) Extensions <https://tools.ietf.org/html/rfc6066>`_
+ :rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`
D. Eastlake
`IANA TLS: Transport Layer Security (TLS) Parameters <https://www.iana.org/assignments/tls-parameters/tls-parameters.xml>`_
IANA
- `RFC 7525: Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) <https://tools.ietf.org/html/rfc7525>`_
+ :rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) <7525>`
IETF
`Mozilla's Server Side TLS recommendations <https://wiki.mozilla.org/Security/Server_Side_TLS>`_
diff --git a/Doc/library/stringprep.rst b/Doc/library/stringprep.rst
index e7fae5631d87..330032ba1c0b 100644
--- a/Doc/library/stringprep.rst
+++ b/Doc/library/stringprep.rst
@@ -26,7 +26,7 @@ define which tables it uses, and what other optional parts of the ``stringprep``
procedure are part of the profile. One example of a ``stringprep`` profile is
``nameprep``, which is used for internationalized domain names.
-The module :mod:`stringprep` only exposes the tables from RFC 3454. As these
+The module :mod:`stringprep` only exposes the tables from :rfc:`3454`. As these
tables would be very large to represent them as dictionaries or lists, the
module uses the Unicode character database internally. The module source code
itself was generated using the ``mkstringprep.py`` utility.
diff --git a/Doc/library/urllib.error.rst b/Doc/library/urllib.error.rst
index 5517b04f5ddf..f7d47ed76aca 100644
--- a/Doc/library/urllib.error.rst
+++ b/Doc/library/urllib.error.rst
@@ -41,8 +41,7 @@ The following exceptions are raised by :mod:`urllib.error` as appropriate:
.. attribute:: code
- An HTTP status code as defined in `RFC 2616
- <http://www.faqs.org/rfcs/rfc2616.html>`_. This numeric value corresponds
+ An HTTP status code as defined in :rfc:`2616`. This numeric value corresponds
to a value found in the dictionary of codes as found in
:attr:`http.server.BaseHTTPRequestHandler.responses`.
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
index 5a10f9571e9e..705517a32e33 100644
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -232,7 +232,7 @@ The following classes are provided:
containing the image.
*unverifiable* should indicate whether the request is unverifiable,
- as defined by RFC 2965. It defaults to ``False``. An unverifiable
+ as defined by :rfc:`2965`. It defaults to ``False``. An unverifiable
request is one whose URL the user did not have the option to
approve. For example, if the request is for an image in an HTML
document, and the user had no option to approve the automatic
@@ -504,7 +504,7 @@ request.
.. attribute:: Request.unverifiable
boolean, indicates whether the request is unverifiable as defined
- by RFC 2965.
+ by :rfc:`2965`.
.. attribute:: Request.method
diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst
index edbf832529a6..6ac1ffb96584 100644
--- a/Doc/library/uuid.rst
+++ b/Doc/library/uuid.rst
@@ -1,5 +1,5 @@
-:mod:`uuid` --- UUID objects according to RFC 4122
-==================================================
+:mod:`uuid` --- UUID objects according to :rfc:`4122`
+=====================================================
.. module:: uuid
:synopsis: UUID objects (universally unique identifiers) according to RFC 4122
@@ -42,7 +42,7 @@ random UUID.
Exactly one of *hex*, *bytes*, *bytes_le*, *fields*, or *int* must be given.
The *version* argument is optional; if given, the resulting UUID will have its
- variant and version number set according to RFC 4122, overriding bits in the
+ variant and version number set according to :rfc:`4122`, overriding bits in the
given *hex*, *bytes*, *bytes_le*, *fields*, or *int*.
Comparison of UUID objects are made by way of comparing their
@@ -105,7 +105,7 @@ random UUID.
.. attribute:: UUID.urn
- The UUID as a URN as specified in RFC 4122.
+ The UUID as a URN as specified in :rfc:`4122`.
.. attribute:: UUID.variant
@@ -128,7 +128,7 @@ The :mod:`uuid` module defines the following functions:
Get the hardware address as a 48-bit positive integer. The first time this
runs, it may launch a separate program, which could be quite slow. If all
attempts to obtain the hardware address fail, we choose a random 48-bit number
- with its eighth bit set to 1 as recommended in RFC 4122. "Hardware address"
+ with its eighth bit set to 1 as recommended in :rfc:`4122`. "Hardware address"
means the MAC address of a network interface, and on a machine with multiple
network interfaces the MAC address of any one of them may be returned.
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index a1d446902b83..ddfc2e54732b 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -397,7 +397,7 @@ Paste" library.
Wrap *application* and return a new WSGI application object. The returned
application will forward all requests to the original *application*, and will
check that both the *application* and the server invoking it are conforming to
- the WSGI specification and to RFC 2616.
+ the WSGI specification and to :rfc:`2616`.
Any detected nonconformance results in an :exc:`AssertionError` being raised;
note, however, that how these errors are handled is server-dependent. For
diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst
index 390828ef3d98..ed2ccaeae07a 100644
--- a/Doc/library/xmlrpc.client.rst
+++ b/Doc/library/xmlrpc.client.rst
@@ -328,7 +328,7 @@ Binary Objects
Write the XML-RPC base 64 encoding of this binary item to the *out* stream object.
The encoded data will have newlines every 76 characters as per
- `RFC 2045 section 6.8 <https://tools.ietf.org/html/rfc2045#section-6.8>`_,
+ :rfc:`RFC 2045 section 6.8 <2045#section-6.8>`,
which was the de facto standard base64 specification when the
XML-RPC spec was written.
diff --git a/Doc/tutorial/stdlib.rst b/Doc/tutorial/stdlib.rst
index 1dd06c233826..110e6e546668 100644
--- a/Doc/tutorial/stdlib.rst
+++ b/Doc/tutorial/stdlib.rst
@@ -317,7 +317,7 @@ sophisticated and robust capabilities of its larger packages. For example:
names, no direct knowledge or handling of XML is needed.
* The :mod:`email` package is a library for managing email messages, including
- MIME and other RFC 2822-based message documents. Unlike :mod:`smtplib` and
+ MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` and
:mod:`poplib` which actually send and receive messages, the email package has
a complete toolset for building or decoding complex message structures
(including attachments) and for implementing internet encoding and header
diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst
index 7c125ffd2ad0..7e11c98399cc 100644
--- a/Doc/whatsnew/2.4.rst
+++ b/Doc/whatsnew/2.4.rst
@@ -998,7 +998,7 @@ complete list of changes, or look through the CVS logs for all the details.
that lets you perform a limited number of passes through the polling loop. The
default is still to loop forever.
-* The :mod:`base64` module now has more complete RFC 3548 support for Base64,
+* The :mod:`base64` module now has more complete :rfc:`3548` support for Base64,
Base32, and Base16 encoding and decoding, including optional case folding and
optional alternative alphabets. (Contributed by Barry Warsaw.)
[View Less]
1
0

bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196) (GH-7269)
by Serhiy Storchaka May 31, 2018
by Serhiy Storchaka May 31, 2018
May 31, 2018
https://github.com/python/cpython/commit/0fe3be03926c3468ed4c10980d1a030c8e…
commit: 0fe3be03926c3468ed4c10980d1a030c8ef4e37e
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: Serhiy Storchaka <storchaka(a)gmail.com>
date: 2018-05-31T09:10:28+03:00
summary:
bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196) (GH-7269)
(cherry picked from commit a5c42284e69fb309bdd17ee8c1c120d1be383012)
Co-authored-by: …
[View More]Serhiy Storchaka <storchaka(a)gmail.com>
files:
M Modules/_collectionsmodule.c
M Parser/asdl_c.py
M Python/Python-ast.c
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index af20d6edd918..d7b344be692c 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -574,7 +574,7 @@ deque_concat(dequeobject *deque, PyObject *other)
return new_deque;
}
-static void
+static int
deque_clear(dequeobject *deque)
{
block *b;
@@ -586,7 +586,7 @@ deque_clear(dequeobject *deque)
PyObject **itemptr, **limit;
if (Py_SIZE(deque) == 0)
- return;
+ return 0;
/* During the process of clearing a deque, decrefs can cause the
deque to mutate. To avoid fatal confusion, we have to make the
@@ -647,7 +647,7 @@ deque_clear(dequeobject *deque)
}
CHECK_END(leftblock->rightlink);
freeblock(leftblock);
- return;
+ return 0;
alternate_method:
while (Py_SIZE(deque)) {
@@ -655,6 +655,7 @@ deque_clear(dequeobject *deque)
assert (item != NULL);
Py_DECREF(item);
}
+ return 0;
}
static PyObject *
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 6302af6fa3e3..90c5feaa7e71 100644
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -643,10 +643,11 @@ def visitModule(self, mod):
return 0;
}
-static void
+static int
ast_clear(AST_object *self)
{
Py_CLEAR(self->dict);
+ return 0;
}
static int
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 212211c5f435..8e383ad14cae 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -525,10 +525,11 @@ ast_traverse(AST_object *self, visitproc visit, void *arg)
return 0;
}
-static void
+static int
ast_clear(AST_object *self)
{
Py_CLEAR(self->dict);
+ return 0;
}
static int
[View Less]
1
0
https://github.com/python/cpython/commit/82c456fa37d4b87da0d64e574bd8adc665…
commit: 82c456fa37d4b87da0d64e574bd8adc665abc4c8
branch: 2.7
author: Victor Stinner <vstinner(a)redhat.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-31T07:35:34+02:00
summary:
bpo-33532: Fix multiprocessing test_ignore() (GH-7265)
Fix test_multiprocessing.test_ignore(): use support.PIPE_MAX_SIZE
to make sure that send_bytes() blocks.
files:
M Lib/test/test_multiprocessing.py
diff --git a/…
[View More]Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 1071d7fac653..b293e2fbc4ea 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -2689,7 +2689,7 @@ def handler(signum, frame):
conn.send('ready')
x = conn.recv()
conn.send(x)
- conn.send_bytes(b'x'*(1024*1024)) # sending 1 MB should block
+ conn.send_bytes(b'x' * test_support.PIPE_MAX_SIZE)
@unittest.skipUnless(hasattr(signal, 'SIGUSR1'), 'requires SIGUSR1')
def test_ignore(self):
@@ -2708,7 +2708,8 @@ def test_ignore(self):
self.assertEqual(conn.recv(), 1234)
time.sleep(0.1)
os.kill(p.pid, signal.SIGUSR1)
- self.assertEqual(conn.recv_bytes(), b'x'*(1024*1024))
+ self.assertEqual(conn.recv_bytes(),
+ b'x' * test_support.PIPE_MAX_SIZE)
time.sleep(0.1)
p.join()
finally:
[View Less]
1
0

May 31, 2018
https://github.com/python/cpython/commit/c2870b699eb899f358b843c2d706ce8ca8…
commit: c2870b699eb899f358b843c2d706ce8ca89b2bf4
branch: 3.6
author: Victor Stinner <vstinner(a)redhat.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-31T07:35:03+02:00
summary:
bpo-33532: Fix multiprocessing test_ignore() (GH-7262) (#7266)
Fix test_ignore() of multiprocessing tests like
test_multiprocessing_forkserver: use support.PIPE_MAX_SIZE to make
sure that send_bytes() blocks.
(cherry …
[View More]picked from commit 5d6c7ed5e340b2311a15f34e968d4bef09c71922)
files:
M Lib/test/_test_multiprocessing.py
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index dd0a9d7a862a..d7eb69bb8b8f 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -4029,7 +4029,7 @@ def handler(signum, frame):
conn.send('ready')
x = conn.recv()
conn.send(x)
- conn.send_bytes(b'x'*(1024*1024)) # sending 1 MB should block
+ conn.send_bytes(b'x' * test.support.PIPE_MAX_SIZE)
@unittest.skipUnless(hasattr(signal, 'SIGUSR1'), 'requires SIGUSR1')
def test_ignore(self):
@@ -4048,7 +4048,8 @@ def test_ignore(self):
self.assertEqual(conn.recv(), 1234)
time.sleep(0.1)
os.kill(p.pid, signal.SIGUSR1)
- self.assertEqual(conn.recv_bytes(), b'x'*(1024*1024))
+ self.assertEqual(conn.recv_bytes(),
+ b'x' * test.support.PIPE_MAX_SIZE)
time.sleep(0.1)
p.join()
finally:
[View Less]
1
0

May 31, 2018
https://github.com/python/cpython/commit/0f1a18326902ad3d0a30fdecbe40513cc5…
commit: 0f1a18326902ad3d0a30fdecbe40513cc5d85879
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-30T22:33:23-07:00
summary:
bpo-33641: Convert RFC references into links. (GH-7103)
85% of them are already links.
(cherry picked from commit 0a36ac1a09587735237c5978ebd046313922869c)
Co-authored-by: Serhiy …
[View More]Storchaka <storchaka(a)gmail.com>
files:
M Doc/howto/logging-cookbook.rst
M Doc/howto/logging.rst
M Doc/howto/urllib2.rst
M Doc/library/binascii.rst
M Doc/library/codecs.rst
M Doc/library/email.examples.rst
M Doc/library/ftplib.rst
M Doc/library/hashlib.rst
M Doc/library/http.cookiejar.rst
M Doc/library/imaplib.rst
M Doc/library/logging.handlers.rst
M Doc/library/logging.rst
M Doc/library/nntplib.rst
M Doc/library/ssl.rst
M Doc/library/stringprep.rst
M Doc/library/urllib.error.rst
M Doc/library/urllib.parse.rst
M Doc/library/urllib.request.rst
M Doc/library/uuid.rst
M Doc/library/wsgiref.rst
M Doc/library/xmlrpc.client.rst
M Doc/tutorial/stdlib.rst
M Doc/whatsnew/2.4.rst
diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst
index fdf7874883ee..b1930a791fca 100644
--- a/Doc/howto/logging-cookbook.rst
+++ b/Doc/howto/logging-cookbook.rst
@@ -1652,11 +1652,11 @@ works::
Inserting a BOM into messages sent to a SysLogHandler
-----------------------------------------------------
-`RFC 5424 <https://tools.ietf.org/html/rfc5424>`_ requires that a
+:rfc:`5424` requires that a
Unicode message be sent to a syslog daemon as a set of bytes which have the
following structure: an optional pure-ASCII component, followed by a UTF-8 Byte
-Order Mark (BOM), followed by Unicode encoded using UTF-8. (See the `relevant
-section of the specification <https://tools.ietf.org/html/rfc5424#section-6>`_.)
+Order Mark (BOM), followed by Unicode encoded using UTF-8. (See the
+:rfc:`relevant section of the specification <5424#section-6>`.)
In Python 3.1, code was added to
:class:`~logging.handlers.SysLogHandler` to insert a BOM into the message, but
@@ -1666,7 +1666,7 @@ appear before it.
As this behaviour is broken, the incorrect BOM insertion code is being removed
from Python 3.2.4 and later. However, it is not being replaced, and if you
-want to produce RFC 5424-compliant messages which include a BOM, an optional
+want to produce :rfc:`5424`-compliant messages which include a BOM, an optional
pure-ASCII sequence before it and arbitrary Unicode after it, encoded using
UTF-8, then you need to do the following:
@@ -1689,7 +1689,7 @@ UTF-8, then you need to do the following:
The formatted message *will* be encoded using UTF-8 encoding by
``SysLogHandler``. If you follow the above rules, you should be able to produce
-RFC 5424-compliant messages. If you don't, logging may not complain, but your
+:rfc:`5424`-compliant messages. If you don't, logging may not complain, but your
messages will not be RFC 5424-compliant, and your syslog daemon may complain.
diff --git a/Doc/howto/logging.rst b/Doc/howto/logging.rst
index e9e5580df969..47b5c680c424 100644
--- a/Doc/howto/logging.rst
+++ b/Doc/howto/logging.rst
@@ -297,7 +297,7 @@ which should print something like this:
2010-12-12 11:41:42,612 is when this event was logged.
The default format for date/time display (shown above) is like ISO8601 or
-RFC 3339. If you need more control over the formatting of the date/time, provide
+:rfc:`3339`. If you need more control over the formatting of the date/time, provide
a *datefmt* argument to ``basicConfig``, as in this example::
import logging
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
index ef1791cebec5..046a88af62f0 100644
--- a/Doc/howto/urllib2.rst
+++ b/Doc/howto/urllib2.rst
@@ -239,7 +239,7 @@ a different URL, urllib will handle that for you). For those it can't handle,
urlopen will raise an :exc:`HTTPError`. Typical errors include '404' (page not
found), '403' (request forbidden), and '401' (authentication required).
-See section 10 of RFC 2616 for a reference on all the HTTP error codes.
+See section 10 of :rfc:`2616` for a reference on all the HTTP error codes.
The :exc:`HTTPError` instance raised will have an integer 'code' attribute, which
corresponds to the error sent by the server.
@@ -252,7 +252,7 @@ codes in the 100--299 range indicate success, you will usually only see error
codes in the 400--599 range.
:attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary of
-response codes in that shows all the response codes used by RFC 2616. The
+response codes in that shows all the response codes used by :rfc:`2616`. The
dictionary is reproduced here for convenience ::
# Table mapping response codes to messages; entries have the
diff --git a/Doc/library/binascii.rst b/Doc/library/binascii.rst
index 4d3d0e07f186..a4efef846572 100644
--- a/Doc/library/binascii.rst
+++ b/Doc/library/binascii.rst
@@ -80,7 +80,7 @@ The :mod:`binascii` module defines the following functions:
*quotetabs* is present and true, all tabs and spaces will be encoded. If the
optional argument *istext* is present and true, newlines are not encoded but
trailing whitespace will be encoded. If the optional argument *header* is
- present and true, spaces will be encoded as underscores per RFC1522. If the
+ present and true, spaces will be encoded as underscores per :rfc:`1522`. If the
optional argument *header* is present and false, newline characters will be
encoded as well; otherwise linefeed conversion might corrupt the binary data
stream.
diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
index 74b24e10ede6..24008a0b3f00 100644
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -1425,7 +1425,7 @@ to the user.
Python supports this conversion in several ways: the ``idna`` codec performs
conversion between Unicode and ACE, separating an input string into labels
-based on the separator characters defined in `section 3.1`_ (1) of :rfc:`3490`
+based on the separator characters defined in :rfc:`section 3.1 of RFC 3490 <3490#section-3.1>`
and converting each label to ACE as required, and conversely separating an input
byte string into labels based on the ``.`` separator and converting any ACE
labels found into unicode. Furthermore, the :mod:`socket` module
@@ -1436,8 +1436,6 @@ parameters, such as :mod:`http.client` and :mod:`ftplib`, accept Unicode host
names (:mod:`http.client` then also transparently sends an IDNA hostname in the
:mailheader:`Host` field if it sends that field at all).
-.. _section 3.1: https://tools.ietf.org/html/rfc3490#section-3.1
-
When receiving host names from the wire (such as in reverse name lookup), no
automatic conversion to Unicode is performed: Applications wishing to present
such host names to the user should decode them to Unicode.
diff --git a/Doc/library/email.examples.rst b/Doc/library/email.examples.rst
index 84e9aee0bc48..fc964622809d 100644
--- a/Doc/library/email.examples.rst
+++ b/Doc/library/email.examples.rst
@@ -12,7 +12,7 @@ text content and the addresses may contain unicode characters):
.. literalinclude:: ../includes/email-simple.py
-Parsing RFC822 headers can easily be done by the using the classes
+Parsing :rfc:`822` headers can easily be done by the using the classes
from the :mod:`~email.parser` module:
.. literalinclude:: ../includes/email-headers.py
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index 7291dfe84811..6c39f9a59fc1 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -295,7 +295,7 @@ followed by ``lines`` for the text version or ``binary`` for the binary version.
If optional *rest* is given, a ``REST`` command is sent to the server, passing
*rest* as an argument. *rest* is usually a byte offset into the requested file,
telling the server to restart sending the file's bytes at the requested offset,
- skipping over the initial bytes. Note however that RFC 959 requires only that
+ skipping over the initial bytes. Note however that :rfc:`959` requires only that
*rest* be a string containing characters in the printable range from ASCII code
33 to ASCII code 126. The :meth:`transfercmd` method, therefore, converts
*rest* to a string, but no check is performed on the string's contents. If the
diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
index eda18adc9e5e..0ed0482dc54c 100644
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -283,7 +283,7 @@ BLAKE2
.. index::
single: blake2b, blake2s
-BLAKE2_ is a cryptographic hash function defined in RFC-7693_ that comes in two
+BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes in two
flavors:
* **BLAKE2b**, optimized for 64-bit platforms and produces digests of any size
@@ -707,7 +707,6 @@ Domain Dedication 1.0 Universal:
* *Alexandr Sokolovskiy*
-.. _RFC-7693: https://tools.ietf.org/html/rfc7693
.. _BLAKE2: https://blake2.net
.. _HMAC: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
.. _BLAKE: https://131002.net/blake/
diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst
index 5370601544c7..d8da6683a3a5 100644
--- a/Doc/library/http.cookiejar.rst
+++ b/Doc/library/http.cookiejar.rst
@@ -88,7 +88,7 @@ The following classes are provided:
:class:`DefaultCookiePolicy` objects.
:class:`DefaultCookiePolicy` implements the standard accept / reject rules for
- Netscape and RFC 2965 cookies. By default, RFC 2109 cookies (ie. cookies
+ Netscape and :rfc:`2965` cookies. By default, :rfc:`2109` cookies (ie. cookies
received in a :mailheader:`Set-Cookie` header with a version cookie-attribute of
1) are treated according to the RFC 2965 rules. However, if RFC 2965 handling
is turned off or :attr:`rfc2109_as_netscape` is ``True``, RFC 2109 cookies are
@@ -100,7 +100,7 @@ The following classes are provided:
.. class:: Cookie()
- This class represents Netscape, RFC 2109 and RFC 2965 cookies. It is not
+ This class represents Netscape, :rfc:`2109` and :rfc:`2965` cookies. It is not
expected that users of :mod:`http.cookiejar` construct their own :class:`Cookie`
instances. Instead, if necessary, call :meth:`make_cookies` on a
:class:`CookieJar` instance.
@@ -123,14 +123,14 @@ The following classes are provided:
the one sketched out in ``cookie_spec.html``.
:rfc:`2109` - HTTP State Management Mechanism
- Obsoleted by RFC 2965. Uses :mailheader:`Set-Cookie` with version=1.
+ Obsoleted by :rfc:`2965`. Uses :mailheader:`Set-Cookie` with version=1.
:rfc:`2965` - HTTP State Management Mechanism
The Netscape protocol with the bugs fixed. Uses :mailheader:`Set-Cookie2` in
place of :mailheader:`Set-Cookie`. Not widely used.
http://kristol.org/cookie/errata.html
- Unfinished errata to RFC 2965.
+ Unfinished errata to :rfc:`2965`.
:rfc:`2964` - Use of HTTP State Management
@@ -320,7 +320,7 @@ writing.
.. note::
- This loses information about RFC 2965 cookies, and also about newer or
+ This loses information about :rfc:`2965` cookies, and also about newer or
non-standard cookie-attributes such as ``port``.
.. warning::
@@ -410,13 +410,13 @@ be assigned to.
.. attribute:: CookiePolicy.rfc2965
- Implement RFC 2965 protocol.
+ Implement :rfc:`2965` protocol.
.. attribute:: CookiePolicy.hide_cookie2
Don't add :mailheader:`Cookie2` header to requests (the presence of this header
- indicates to the server that we understand RFC 2965 cookies).
+ indicates to the server that we understand :rfc:`2965` cookies).
The most useful way to define a :class:`CookiePolicy` class is by subclassing
from :class:`DefaultCookiePolicy` and overriding some or all of the methods
@@ -431,7 +431,7 @@ DefaultCookiePolicy Objects
Implements the standard rules for accepting and returning cookies.
-Both RFC 2965 and Netscape cookies are covered. RFC 2965 handling is switched
+Both :rfc:`2965` and Netscape cookies are covered. RFC 2965 handling is switched
off by default.
The easiest way to provide your own policy is to override this class and call
@@ -510,11 +510,11 @@ all be assigned to.
.. attribute:: DefaultCookiePolicy.rfc2109_as_netscape
- If true, request that the :class:`CookieJar` instance downgrade RFC 2109 cookies
+ If true, request that the :class:`CookieJar` instance downgrade :rfc:`2109` cookies
(ie. cookies received in a :mailheader:`Set-Cookie` header with a version
cookie-attribute of 1) to Netscape cookies by setting the version attribute of
the :class:`Cookie` instance to 0. The default value is :const:`None`, in which
- case RFC 2109 cookies are downgraded if and only if RFC 2965 handling is turned
+ case RFC 2109 cookies are downgraded if and only if :rfc:`2965` handling is turned
off. Therefore, RFC 2109 cookies are downgraded by default.
@@ -527,11 +527,11 @@ General strictness switches:
and isn't guaranteed to work!
-RFC 2965 protocol strictness switches:
+:rfc:`2965` protocol strictness switches:
.. attribute:: DefaultCookiePolicy.strict_rfc2965_unverifiable
- Follow RFC 2965 rules on unverifiable transactions (usually, an unverifiable
+ Follow :rfc:`2965` rules on unverifiable transactions (usually, an unverifiable
transaction is one resulting from a redirect or a request for an image hosted on
another site). If this is false, cookies are *never* blocked on the basis of
verifiability
@@ -541,7 +541,7 @@ Netscape protocol strictness switches:
.. attribute:: DefaultCookiePolicy.strict_ns_unverifiable
- Apply RFC 2965 rules on unverifiable transactions even to Netscape cookies.
+ Apply :rfc:`2965` rules on unverifiable transactions even to Netscape cookies.
.. attribute:: DefaultCookiePolicy.strict_ns_domain
@@ -581,7 +581,7 @@ both flags are set).
.. attribute:: DefaultCookiePolicy.DomainRFC2965Match
- When setting cookies, require a full RFC 2965 domain-match.
+ When setting cookies, require a full :rfc:`2965` domain-match.
The following attributes are provided for convenience, and are the most useful
combinations of the above flags:
@@ -605,7 +605,7 @@ Cookie Objects
standard cookie-attributes specified in the various cookie standards. The
correspondence is not one-to-one, because there are complicated rules for
assigning default values, because the ``max-age`` and ``expires``
-cookie-attributes contain equivalent information, and because RFC 2109 cookies
+cookie-attributes contain equivalent information, and because :rfc:`2109` cookies
may be 'downgraded' by :mod:`http.cookiejar` from version 1 to version 0 (Netscape)
cookies.
@@ -616,8 +616,8 @@ internal consistency, so you should know what you're doing if you do that.
.. attribute:: Cookie.version
- Integer or :const:`None`. Netscape cookies have :attr:`version` 0. RFC 2965 and
- RFC 2109 cookies have a ``version`` cookie-attribute of 1. However, note that
+ Integer or :const:`None`. Netscape cookies have :attr:`version` 0. :rfc:`2965` and
+ :rfc:`2109` cookies have a ``version`` cookie-attribute of 1. However, note that
:mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to Netscape cookies, in which
case :attr:`version` is 0.
@@ -673,7 +673,7 @@ internal consistency, so you should know what you're doing if you do that.
.. attribute:: Cookie.rfc2109
- ``True`` if this cookie was received as an RFC 2109 cookie (ie. the cookie
+ ``True`` if this cookie was received as an :rfc:`2109` cookie (ie. the cookie
arrived in a :mailheader:`Set-Cookie` header, and the value of the Version
cookie-attribute in that header was 1). This attribute is provided because
:mod:`http.cookiejar` may 'downgrade' RFC 2109 cookies to Netscape cookies, in
@@ -745,7 +745,7 @@ cookies (assumes Unix/Netscape convention for location of the cookies file)::
r = opener.open("http://example.com/")
The next example illustrates the use of :class:`DefaultCookiePolicy`. Turn on
-RFC 2965 cookies, be more strict about domains when setting and returning
+:rfc:`2965` cookies, be more strict about domains when setting and returning
Netscape cookies, and block some domains from setting cookies or having them
returned::
diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst
index 1632eb7aed36..2e2c59c9ce00 100644
--- a/Doc/library/imaplib.rst
+++ b/Doc/library/imaplib.rst
@@ -342,7 +342,7 @@ An :class:`IMAP4` instance has the following methods:
.. method:: IMAP4.namespace()
- Returns IMAP namespaces as defined in RFC2342.
+ Returns IMAP namespaces as defined in :rfc:`2342`.
.. method:: IMAP4.noop()
diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst
index f7262e60a31b..bdf16a8177e9 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -596,7 +596,7 @@ supports sending logging messages to a remote or local Unix syslog.
(See: :issue:`12168`.) In earlier versions, the message sent to the
syslog daemons was always terminated with a NUL byte, because early
versions of these daemons expected a NUL terminated message - even
- though it's not in the relevant specification (RFC 5424). More recent
+ though it's not in the relevant specification (:rfc:`5424`). More recent
versions of these daemons don't expect the NUL byte but strip it off
if it's there, and even more recent daemons (which adhere more closely
to RFC 5424) pass the NUL byte on as part of the message.
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 9a54bf9325a0..6b48d6406aa2 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -516,7 +516,7 @@ The useful mapping keys in a :class:`LogRecord` are given in the section on
initialized with a format string for the message as a whole, as well as a
format string for the date/time portion of a message. If no *fmt* is
specified, ``'%(message)s'`` is used. If no *datefmt* is specified, an
- ISO8601-like (or RFC3339-like) date format is used. See the
+ ISO8601-like (or :rfc:`3339`-like) date format is used. See the
:meth:`formatTime` documentation for more details.
The *style* parameter can be one of '%', '{' or '$' and determines how
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index 2c3cd8dafe6e..d8ef8a692a95 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -542,7 +542,7 @@ them have been superseded by newer commands in :rfc:`3977`.
is supplied, then the returned *list* is an empty list. This is an optional NNTP
extension, and may not be supported by all servers.
- RFC2980 says "It is suggested that this extension be deprecated". Use
+ :rfc:`2980` says "It is suggested that this extension be deprecated". Use
:meth:`descriptions` or :meth:`description` instead.
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index 14eac2c58947..7a058245ca82 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -2638,25 +2638,25 @@ with LibreSSL.
`SSL/TLS Strong Encryption: An Introduction <https://httpd.apache.org/docs/trunk/en/ssl/ssl_intro.html>`_
Intro from the Apache HTTP Server documentation
- `RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <https://www.ietf.org/rfc/rfc1422>`_
+ :rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <1422>`
Steve Kent
- `RFC 4086: Randomness Requirements for Security <https://datatracker.ietf.org/doc/rfc4086/>`_
+ :rfc:`RFC 4086: Randomness Requirements for Security <4086>`
Donald E., Jeffrey I. Schiller
- `RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile <https://datatracker.ietf.org/doc/rfc5280/>`_
+ :rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile <5280>`
D. Cooper
- `RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <https://tools.ietf.org/html/rfc5246>`_
+ :rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <5246>`
T. Dierks et. al.
- `RFC 6066: Transport Layer Security (TLS) Extensions <https://tools.ietf.org/html/rfc6066>`_
+ :rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`
D. Eastlake
`IANA TLS: Transport Layer Security (TLS) Parameters <https://www.iana.org/assignments/tls-parameters/tls-parameters.xml>`_
IANA
- `RFC 7525: Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) <https://tools.ietf.org/html/rfc7525>`_
+ :rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) <7525>`
IETF
`Mozilla's Server Side TLS recommendations <https://wiki.mozilla.org/Security/Server_Side_TLS>`_
diff --git a/Doc/library/stringprep.rst b/Doc/library/stringprep.rst
index e7fae5631d87..330032ba1c0b 100644
--- a/Doc/library/stringprep.rst
+++ b/Doc/library/stringprep.rst
@@ -26,7 +26,7 @@ define which tables it uses, and what other optional parts of the ``stringprep``
procedure are part of the profile. One example of a ``stringprep`` profile is
``nameprep``, which is used for internationalized domain names.
-The module :mod:`stringprep` only exposes the tables from RFC 3454. As these
+The module :mod:`stringprep` only exposes the tables from :rfc:`3454`. As these
tables would be very large to represent them as dictionaries or lists, the
module uses the Unicode character database internally. The module source code
itself was generated using the ``mkstringprep.py`` utility.
diff --git a/Doc/library/urllib.error.rst b/Doc/library/urllib.error.rst
index 5517b04f5ddf..f7d47ed76aca 100644
--- a/Doc/library/urllib.error.rst
+++ b/Doc/library/urllib.error.rst
@@ -41,8 +41,7 @@ The following exceptions are raised by :mod:`urllib.error` as appropriate:
.. attribute:: code
- An HTTP status code as defined in `RFC 2616
- <http://www.faqs.org/rfcs/rfc2616.html>`_. This numeric value corresponds
+ An HTTP status code as defined in :rfc:`2616`. This numeric value corresponds
to a value found in the dictionary of codes as found in
:attr:`http.server.BaseHTTPRequestHandler.responses`.
diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
index c0a388c5153e..2d3488bb5eef 100644
--- a/Doc/library/urllib.parse.rst
+++ b/Doc/library/urllib.parse.rst
@@ -468,7 +468,7 @@ task isn't already covered by the URL parsing functions above.
*string* may be either a :class:`str` or a :class:`bytes`.
.. versionchanged:: 3.7
- Moved from RFC 2396 to RFC 3986 for quoting URL strings. "~" is now
+ Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. "~" is now
included in the set of reserved characters.
The optional *encoding* and *errors* parameters specify how to deal with
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
index 413d8b6ffdfe..b7116fabcd99 100644
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -232,7 +232,7 @@ The following classes are provided:
containing the image.
*unverifiable* should indicate whether the request is unverifiable,
- as defined by RFC 2965. It defaults to ``False``. An unverifiable
+ as defined by :rfc:`2965`. It defaults to ``False``. An unverifiable
request is one whose URL the user did not have the option to
approve. For example, if the request is for an image in an HTML
document, and the user had no option to approve the automatic
@@ -504,7 +504,7 @@ request.
.. attribute:: Request.unverifiable
boolean, indicates whether the request is unverifiable as defined
- by RFC 2965.
+ by :rfc:`2965`.
.. attribute:: Request.method
diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst
index 8ec75a79acfa..09c56e537bd8 100644
--- a/Doc/library/uuid.rst
+++ b/Doc/library/uuid.rst
@@ -1,5 +1,5 @@
-:mod:`uuid` --- UUID objects according to RFC 4122
-==================================================
+:mod:`uuid` --- UUID objects according to :rfc:`4122`
+=====================================================
.. module:: uuid
:synopsis: UUID objects (universally unique identifiers) according to RFC 4122
@@ -64,7 +64,7 @@ which relays any information about the UUID's safety, using this enumeration:
Exactly one of *hex*, *bytes*, *bytes_le*, *fields*, or *int* must be given.
The *version* argument is optional; if given, the resulting UUID will have its
- variant and version number set according to RFC 4122, overriding bits in the
+ variant and version number set according to :rfc:`4122`, overriding bits in the
given *hex*, *bytes*, *bytes_le*, *fields*, or *int*.
Comparison of UUID objects are made by way of comparing their
@@ -127,7 +127,7 @@ which relays any information about the UUID's safety, using this enumeration:
.. attribute:: UUID.urn
- The UUID as a URN as specified in RFC 4122.
+ The UUID as a URN as specified in :rfc:`4122`.
.. attribute:: UUID.variant
@@ -158,7 +158,7 @@ The :mod:`uuid` module defines the following functions:
runs, it may launch a separate program, which could be quite slow. If all
attempts to obtain the hardware address fail, we choose a random 48-bit
number with the multicast bit (least significant bit of the first octet)
- set to 1 as recommended in RFC 4122. "Hardware address" means the MAC
+ set to 1 as recommended in :rfc:`4122`. "Hardware address" means the MAC
address of a network interface. On a machine with multiple network
interfaces, universally administered MAC addresses (i.e. where the second
least significant bit of the first octet is *unset*) will be preferred over
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index b0ef3465b04f..2d9b7b359e80 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -397,7 +397,7 @@ Paste" library.
Wrap *application* and return a new WSGI application object. The returned
application will forward all requests to the original *application*, and will
check that both the *application* and the server invoking it are conforming to
- the WSGI specification and to RFC 2616.
+ the WSGI specification and to :rfc:`2616`.
Any detected nonconformance results in an :exc:`AssertionError` being raised;
note, however, that how these errors are handled is server-dependent. For
diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst
index 390828ef3d98..ed2ccaeae07a 100644
--- a/Doc/library/xmlrpc.client.rst
+++ b/Doc/library/xmlrpc.client.rst
@@ -328,7 +328,7 @@ Binary Objects
Write the XML-RPC base 64 encoding of this binary item to the *out* stream object.
The encoded data will have newlines every 76 characters as per
- `RFC 2045 section 6.8 <https://tools.ietf.org/html/rfc2045#section-6.8>`_,
+ :rfc:`RFC 2045 section 6.8 <2045#section-6.8>`,
which was the de facto standard base64 specification when the
XML-RPC spec was written.
diff --git a/Doc/tutorial/stdlib.rst b/Doc/tutorial/stdlib.rst
index 6ac29fc6025f..f5ec8acf58ad 100644
--- a/Doc/tutorial/stdlib.rst
+++ b/Doc/tutorial/stdlib.rst
@@ -317,7 +317,7 @@ sophisticated and robust capabilities of its larger packages. For example:
names, no direct knowledge or handling of XML is needed.
* The :mod:`email` package is a library for managing email messages, including
- MIME and other RFC 2822-based message documents. Unlike :mod:`smtplib` and
+ MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` and
:mod:`poplib` which actually send and receive messages, the email package has
a complete toolset for building or decoding complex message structures
(including attachments) and for implementing internet encoding and header
diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst
index 7c125ffd2ad0..7e11c98399cc 100644
--- a/Doc/whatsnew/2.4.rst
+++ b/Doc/whatsnew/2.4.rst
@@ -998,7 +998,7 @@ complete list of changes, or look through the CVS logs for all the details.
that lets you perform a limited number of passes through the polling loop. The
default is still to loop forever.
-* The :mod:`base64` module now has more complete RFC 3548 support for Base64,
+* The :mod:`base64` module now has more complete :rfc:`3548` support for Base64,
Base32, and Base16 encoding and decoding, including optional case folding and
optional alternative alphabets. (Contributed by Barry Warsaw.)
[View Less]
1
0

bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)
by Miss Islington (bot) May 31, 2018
by Miss Islington (bot) May 31, 2018
May 31, 2018
https://github.com/python/cpython/commit/a4dd46a47fe1d4fe1f1738c2f5b3712de4…
commit: a4dd46a47fe1d4fe1f1738c2f5b3712de41056b9
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-30T22:31:21-07:00
summary:
bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)
(cherry picked from commit a5c42284e69fb309bdd17ee8c1c120d1be383012)
Co-authored-by: Serhiy Storchaka <…
[View More]storchaka(a)gmail.com>
files:
M Modules/_collectionsmodule.c
M Parser/asdl_c.py
M Python/Python-ast.c
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 5753dd946a5a..4116d4053547 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -575,7 +575,7 @@ deque_concat(dequeobject *deque, PyObject *other)
return new_deque;
}
-static void
+static int
deque_clear(dequeobject *deque)
{
block *b;
@@ -587,7 +587,7 @@ deque_clear(dequeobject *deque)
PyObject **itemptr, **limit;
if (Py_SIZE(deque) == 0)
- return;
+ return 0;
/* During the process of clearing a deque, decrefs can cause the
deque to mutate. To avoid fatal confusion, we have to make the
@@ -648,7 +648,7 @@ deque_clear(dequeobject *deque)
}
CHECK_END(leftblock->rightlink);
freeblock(leftblock);
- return;
+ return 0;
alternate_method:
while (Py_SIZE(deque)) {
@@ -656,6 +656,7 @@ deque_clear(dequeobject *deque)
assert (item != NULL);
Py_DECREF(item);
}
+ return 0;
}
static PyObject *
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 399e79e0597f..44e3d40c6155 100644
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -647,10 +647,11 @@ def visitModule(self, mod):
return 0;
}
-static void
+static int
ast_clear(AST_object *self)
{
Py_CLEAR(self->dict);
+ return 0;
}
static int
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 38b9292577f2..6a2f28e0e712 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -528,10 +528,11 @@ ast_traverse(AST_object *self, visitproc visit, void *arg)
return 0;
}
-static void
+static int
ast_clear(AST_object *self)
{
Py_CLEAR(self->dict);
+ return 0;
}
static int
[View Less]
1
0
https://github.com/python/cpython/commit/e76b8c446493d0f028d9e4d9876ad1348f…
commit: e76b8c446493d0f028d9e4d9876ad1348fefde1c
branch: 3.7
author: Ned Deily <nad(a)python.org>
committer: GitHub <noreply(a)github.com>
date: 2018-05-31T01:19:58-04:00
summary:
Fix "ditribution" typo in NEWS entry. (GH-7275)
files:
M Misc/NEWS.d/3.7.0b5.rst
diff --git a/Misc/NEWS.d/3.7.0b5.rst b/Misc/NEWS.d/3.7.0b5.rst
index 2e2fb9ee0469..202e50b4e035 100644
--- a/Misc/NEWS.d/3.7.0b5.rst
+++ b/Misc/…
[View More]NEWS.d/3.7.0b5.rst
@@ -406,7 +406,7 @@ literals on pydoc. Patch by Andrés Delfino.
.. nonce: 7FwDfN
.. section: Library
-The function ``platform.linux_ditribution`` and ``platform.dist`` now
+The function ``platform.linux_distribution`` and ``platform.dist`` now
trigger a ``DeprecationWarning`` and have been marked for removal in Python
3.8
[View Less]
1
0
https://github.com/python/cpython/commit/126869f308d446c1960c542197a1aadacf…
commit: 126869f308d446c1960c542197a1aadacff9ab26
branch: master
author: Ned Deily <nad(a)python.org>
committer: GitHub <noreply(a)github.com>
date: 2018-05-31T01:18:49-04:00
summary:
Fix "ditribution" typo in NEWS entry. (GH-7274)
files:
M Misc/NEWS.d/next/Library/2018-05-02-07-26-29.bpo-28167.7FwDfN.rst
diff --git a/Misc/NEWS.d/next/Library/2018-05-02-07-26-29.bpo-28167.7FwDfN.rst b/Misc/NEWS.d/next/…
[View More]Library/2018-05-02-07-26-29.bpo-28167.7FwDfN.rst
index a4971e5b77ba..2d7cf01961ff 100644
--- a/Misc/NEWS.d/next/Library/2018-05-02-07-26-29.bpo-28167.7FwDfN.rst
+++ b/Misc/NEWS.d/next/Library/2018-05-02-07-26-29.bpo-28167.7FwDfN.rst
@@ -1,3 +1,3 @@
-The function ``platform.linux_ditribution`` and ``platform.dist`` now
+The function ``platform.linux_distribution`` and ``platform.dist`` now
trigger a ``DeprecationWarning`` and have been marked for removal in Python
3.8
[View Less]
1
0
https://github.com/python/cpython/commit/e1c54f4330bc8eb61dbcbd4f9b14d4e222…
commit: e1c54f4330bc8eb61dbcbd4f9b14d4e222f2be29
branch: master
author: Steve Dower <steve.dower(a)microsoft.com>
committer: GitHub <noreply(a)github.com>
date: 2018-05-30T22:13:43-07:00
summary:
Adds new upload script for Windows releases (GH-7268)
files:
A Tools/msi/uploadrelease.ps1
diff --git a/Tools/msi/uploadrelease.ps1 b/Tools/msi/uploadrelease.ps1
new file mode 100644
index 000000000000..…
[View More]1fe9bca0cc5b
--- /dev/null
+++ b/Tools/msi/uploadrelease.ps1
@@ -0,0 +1,121 @@
+<#
+.Synopsis
+ Uploads from a VSTS release build layout to python.org
+.Description
+ Given the downloaded/extracted build artifact from a release
+ build run on python.visualstudio.com, this script uploads
+ the files to the correct locations.
+.Parameter build
+ The location on disk of the extracted build artifact.
+.Parameter user
+ The username to use when logging into the host.
+.Parameter server
+ The host or PuTTY session name.
+.Parameter target
+ The subdirectory on the host to copy files to.
+.Parameter tests
+ The path to run download tests in.
+.Parameter skipupload
+ Skip uploading
+.Parameter skippurge
+ Skip purging the CDN
+.Parameter skiptest
+ Skip the download tests
+.Parameter skiphash
+ Skip displaying hashes
+#>
+param(
+ [Parameter(Mandatory=$true)][string]$build,
+ [Parameter(Mandatory=$true)][string]$user,
+ [string]$server="python-downloads",
+ [string]$target="/srv/www.python.org/ftp/python",
+ [string]$tests=${env:TEMP},
+ [switch]$skipupload,
+ [switch]$skippurge,
+ [switch]$skiptest,
+ [switch]$skiphash
+)
+
+if (-not $build) { throw "-build option is required" }
+if (-not $user) { throw "-user option is required" }
+
+function find-putty-tool {
+ param ([string]$n)
+ $t = gcm $n -EA 0
+ if (-not $t) { $t = gcm ".\$n" -EA 0 }
+ if (-not $t) { $t = gcm "${env:ProgramFiles}\PuTTY\$n" -EA 0 }
+ if (-not $t) { $t = gcm "${env:ProgramFiles(x86)}\PuTTY\$n" -EA 0 }
+ if (-not $t) { throw "Unable to locate $n.exe. Please put it on $PATH" }
+ return gi $t.Path
+}
+
+$p = gci -r "$build\python-*.exe" | `
+ ?{ $_.Name -match '^python-(\d+\.\d+\.\d+)((a|b|rc)\d+)?-.+' } | `
+ select -first 1 | `
+ %{ $Matches[1], $Matches[2] }
+
+"Uploading version $($p[0]) $($p[1])"
+" from: $build"
+" to: $($server):$target/$($p[0])"
+" using: $plink and $pscp"
+""
+
+if (-not $skipupload) {
+ # Upload files to the server
+ $pscp = find-putty-tool "pscp"
+ $plink = find-putty-tool "plink"
+
+ pushd $build
+ $doc = gci python*.chm, python*.chm.asc
+ popd
+
+ $d = "$target/$($p[0])/"
+ & $plink -batch $user@$server mkdir $d "&&" chgrp downloads $d "&&" chmod g-x,o+rx $d
+ & $pscp -batch $doc.FullName "$user@${server}:$d"
+
+ foreach ($a in gci "$build" -Directory) {
+ "Uploading files from $($a.FullName)"
+ pushd "$($a.FullName)"
+ $exe = gci *.exe, *.exe.asc, *.zip, *.zip.asc
+ $msi = gci *.msi, *.msi.asc, *.msu, *.msu.asc
+ popd
+
+ & $pscp -batch $exe.FullName "$user@${server}:$d"
+
+ $sd = "$d$($a.Name)$($p[1])/"
+ & $plink -batch $user@$server mkdir $sd "&&" chgrp downloads $sd "&&" chmod g-x,o+rx $sd
+ & $pscp -batch $msi.FullName "$user@${server}:$sd"
+ & $plink -batch $user@$server chgrp downloads $sd* "&&" chmod g-x,o+rx $sd*
+ }
+
+ & $plink -batch $user@$server chgrp downloads $d* "&&" chmod g-x,o+rx $d*
+}
+
+if (-not $skippurge) {
+ # Run a CDN purge
+ py purge.py "$($p[0])$($p[1])"
+}
+
+if (-not $skiptest) {
+ # Use each web installer to produce a layout. This will download
+ # each referenced file and validate their signatures/hashes.
+ gci "$build\*-webinstall.exe" -r -File | %{
+ $d = mkdir "$tests\$($_.BaseName)" -Force
+ gci $d -r -File | del
+ $ic = copy $_ $d -PassThru
+ "Checking layout for $($ic.Name)"
+ Start-Process -wait $ic "/passive", "/layout", "$d\layout", "/log", "$d\log\install.log"
+ if (-not $?) {
+ Write-Error "Failed to validate layout of $($inst.Name)"
+ }
+ }
+}
+
+if (-not $skiphash) {
+ # Display MD5 hash and size of each downloadable file
+ pushd $build
+ gci python*.chm, *\*.exe, *\*.zip | `
+ Sort-Object Name | `
+ Format-Table Name, @{Label="MD5"; Expression={(Get-FileHash $_ -Algorithm MD5).Hash}}, Length
+ popd
+}
[View Less]
1
0