summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradyun Gedam <pradyunsg@gmail.com>2022-10-11 00:10:06 +0100
committerGitHub <noreply@github.com>2022-10-11 00:10:06 +0100
commitf8a25921e5c443b07483017b0ffdeb08b9ba2fdf (patch)
treea2fb14c17fb839f48727a32d42d57929aa080be7
parent8f381cd439ff3ded9d124ba23ecb1c2581c008ed (diff)
parent07c86c7947fcb973905116b4af795a7d353eed5c (diff)
downloadpip-f8a25921e5c443b07483017b0ffdeb08b9ba2fdf.tar.gz
Merge pull request #11504 from pfmoore/vendor
-rw-r--r--news/distlib.vendor.rst1
-rw-r--r--news/idna.vendor.rst1
-rw-r--r--news/pep517.vendor.rst1
-rw-r--r--news/tenacity.vendor.rst1
-rw-r--r--src/pip/_vendor/distlib/__init__.py4
-rw-r--r--src/pip/_vendor/distlib/t32.exebin97792 -> 97792 bytes
-rw-r--r--src/pip/_vendor/distlib/t64-arm.exebin182784 -> 182784 bytes
-rw-r--r--src/pip/_vendor/distlib/t64.exebin107520 -> 108032 bytes
-rw-r--r--src/pip/_vendor/distlib/w32.exebin91648 -> 91648 bytes
-rw-r--r--src/pip/_vendor/distlib/w64-arm.exebin168448 -> 168448 bytes
-rw-r--r--src/pip/_vendor/distlib/w64.exebin101888 -> 101888 bytes
-rw-r--r--src/pip/_vendor/idna/core.py5
-rw-r--r--src/pip/_vendor/idna/idnadata.py34
-rw-r--r--src/pip/_vendor/idna/package_data.py2
-rw-r--r--src/pip/_vendor/idna/uts46data.py306
-rw-r--r--src/pip/_vendor/pep517/__init__.py2
-rw-r--r--src/pip/_vendor/pep517/_compat.py8
-rw-r--r--src/pip/_vendor/pep517/build.py13
-rw-r--r--src/pip/_vendor/pep517/check.py16
-rw-r--r--src/pip/_vendor/pep517/colorlog.py2
-rw-r--r--src/pip/_vendor/pep517/compat.py51
-rw-r--r--src/pip/_vendor/pep517/dirtools.py27
-rw-r--r--src/pip/_vendor/pep517/envbuild.py15
-rw-r--r--src/pip/_vendor/pep517/in_process/__init__.py17
-rw-r--r--src/pip/_vendor/pep517/in_process/_in_process.py36
-rw-r--r--src/pip/_vendor/pep517/meta.py13
-rw-r--r--src/pip/_vendor/pep517/wrappers.py55
-rw-r--r--src/pip/_vendor/tenacity/__init__.py2
-rw-r--r--src/pip/_vendor/tenacity/retry.py27
-rw-r--r--src/pip/_vendor/tenacity/wait.py71
-rw-r--r--src/pip/_vendor/vendor.txt8
31 files changed, 405 insertions, 313 deletions
diff --git a/news/distlib.vendor.rst b/news/distlib.vendor.rst
new file mode 100644
index 000000000..5fa036110
--- /dev/null
+++ b/news/distlib.vendor.rst
@@ -0,0 +1 @@
+Upgrade distlib to 0.3.6
diff --git a/news/idna.vendor.rst b/news/idna.vendor.rst
new file mode 100644
index 000000000..087598cbf
--- /dev/null
+++ b/news/idna.vendor.rst
@@ -0,0 +1 @@
+Upgrade idna to 3.4
diff --git a/news/pep517.vendor.rst b/news/pep517.vendor.rst
new file mode 100644
index 000000000..e18c1d87b
--- /dev/null
+++ b/news/pep517.vendor.rst
@@ -0,0 +1 @@
+Upgrade pep517 to 0.13.0
diff --git a/news/tenacity.vendor.rst b/news/tenacity.vendor.rst
new file mode 100644
index 000000000..45921e5bf
--- /dev/null
+++ b/news/tenacity.vendor.rst
@@ -0,0 +1 @@
+Upgrade tenacity to 8.1.0
diff --git a/src/pip/_vendor/distlib/__init__.py b/src/pip/_vendor/distlib/__init__.py
index 505556517..962173c8d 100644
--- a/src/pip/_vendor/distlib/__init__.py
+++ b/src/pip/_vendor/distlib/__init__.py
@@ -1,12 +1,12 @@
# -*- coding: utf-8 -*-
#
-# Copyright (C) 2012-2019 Vinay Sajip.
+# Copyright (C) 2012-2022 Vinay Sajip.
# Licensed to the Python Software Foundation under a contributor agreement.
# See LICENSE.txt and CONTRIBUTORS.txt.
#
import logging
-__version__ = '0.3.5'
+__version__ = '0.3.6'
class DistlibException(Exception):
pass
diff --git a/src/pip/_vendor/distlib/t32.exe b/src/pip/_vendor/distlib/t32.exe
index 0aaa386d7..52154f0be 100644
--- a/src/pip/_vendor/distlib/t32.exe
+++ b/src/pip/_vendor/distlib/t32.exe
Binary files differ
diff --git a/src/pip/_vendor/distlib/t64-arm.exe b/src/pip/_vendor/distlib/t64-arm.exe
index a759e270d..e1ab8f8f5 100644
--- a/src/pip/_vendor/distlib/t64-arm.exe
+++ b/src/pip/_vendor/distlib/t64-arm.exe
Binary files differ
diff --git a/src/pip/_vendor/distlib/t64.exe b/src/pip/_vendor/distlib/t64.exe
index 82fe2d99e..e8bebdba6 100644
--- a/src/pip/_vendor/distlib/t64.exe
+++ b/src/pip/_vendor/distlib/t64.exe
Binary files differ
diff --git a/src/pip/_vendor/distlib/w32.exe b/src/pip/_vendor/distlib/w32.exe
index f2e73aa0c..4ee2d3a31 100644
--- a/src/pip/_vendor/distlib/w32.exe
+++ b/src/pip/_vendor/distlib/w32.exe
Binary files differ
diff --git a/src/pip/_vendor/distlib/w64-arm.exe b/src/pip/_vendor/distlib/w64-arm.exe
index b998321c4..951d5817c 100644
--- a/src/pip/_vendor/distlib/w64-arm.exe
+++ b/src/pip/_vendor/distlib/w64-arm.exe
Binary files differ
diff --git a/src/pip/_vendor/distlib/w64.exe b/src/pip/_vendor/distlib/w64.exe
index 9a6b894db..5763076d2 100644
--- a/src/pip/_vendor/distlib/w64.exe
+++ b/src/pip/_vendor/distlib/w64.exe
Binary files differ
diff --git a/src/pip/_vendor/idna/core.py b/src/pip/_vendor/idna/core.py
index 55ab96788..4f3003711 100644
--- a/src/pip/_vendor/idna/core.py
+++ b/src/pip/_vendor/idna/core.py
@@ -339,7 +339,10 @@ def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False
def encode(s: Union[str, bytes, bytearray], strict: bool = False, uts46: bool = False, std3_rules: bool = False, transitional: bool = False) -> bytes:
if isinstance(s, (bytes, bytearray)):
- s = s.decode('ascii')
+ try:
+ s = s.decode('ascii')
+ except UnicodeDecodeError:
+ raise IDNAError('should pass a unicode string to the function rather than a byte string.')
if uts46:
s = uts46_remap(s, std3_rules, transitional)
trailing_dot = False
diff --git a/src/pip/_vendor/idna/idnadata.py b/src/pip/_vendor/idna/idnadata.py
index 1b5805d15..67db46258 100644
--- a/src/pip/_vendor/idna/idnadata.py
+++ b/src/pip/_vendor/idna/idnadata.py
@@ -1,6 +1,6 @@
# This file is automatically generated by tools/idna-data
-__version__ = '14.0.0'
+__version__ = '15.0.0'
scripts = {
'Greek': (
0x37000000374,
@@ -55,12 +55,13 @@ scripts = {
0x16fe200016fe4,
0x16ff000016ff2,
0x200000002a6e0,
- 0x2a7000002b739,
+ 0x2a7000002b73a,
0x2b7400002b81e,
0x2b8200002cea2,
0x2ceb00002ebe1,
0x2f8000002fa1e,
0x300000003134b,
+ 0x31350000323b0,
),
'Hebrew': (
0x591000005c8,
@@ -77,6 +78,7 @@ scripts = {
0x304100003097,
0x309d000030a0,
0x1b0010001b120,
+ 0x1b1320001b133,
0x1b1500001b153,
0x1f2000001f201,
),
@@ -93,6 +95,7 @@ scripts = {
0x1affd0001afff,
0x1b0000001b001,
0x1b1200001b123,
+ 0x1b1550001b156,
0x1b1640001b168,
),
}
@@ -1331,7 +1334,7 @@ codepoint_classes = {
0xcdd00000cdf,
0xce000000ce4,
0xce600000cf0,
- 0xcf100000cf3,
+ 0xcf100000cf4,
0xd0000000d0d,
0xd0e00000d11,
0xd1200000d45,
@@ -1366,7 +1369,7 @@ codepoint_classes = {
0xeb400000ebe,
0xec000000ec5,
0xec600000ec7,
- 0xec800000ece,
+ 0xec800000ecf,
0xed000000eda,
0xede00000ee0,
0xf0000000f01,
@@ -1859,7 +1862,7 @@ codepoint_classes = {
0xab200000ab27,
0xab280000ab2f,
0xab300000ab5b,
- 0xab600000ab6a,
+ 0xab600000ab69,
0xabc00000abeb,
0xabec0000abee,
0xabf00000abfa,
@@ -1943,7 +1946,7 @@ codepoint_classes = {
0x10e8000010eaa,
0x10eab00010ead,
0x10eb000010eb2,
- 0x10f0000010f1d,
+ 0x10efd00010f1d,
0x10f2700010f28,
0x10f3000010f51,
0x10f7000010f86,
@@ -1966,7 +1969,7 @@ codepoint_classes = {
0x111dc000111dd,
0x1120000011212,
0x1121300011238,
- 0x1123e0001123f,
+ 0x1123e00011242,
0x1128000011287,
0x1128800011289,
0x1128a0001128e,
@@ -2047,11 +2050,16 @@ codepoint_classes = {
0x11d9300011d99,
0x11da000011daa,
0x11ee000011ef7,
+ 0x11f0000011f11,
+ 0x11f1200011f3b,
+ 0x11f3e00011f43,
+ 0x11f5000011f5a,
0x11fb000011fb1,
0x120000001239a,
0x1248000012544,
0x12f9000012ff1,
- 0x130000001342f,
+ 0x1300000013430,
+ 0x1344000013456,
0x1440000014647,
0x1680000016a39,
0x16a4000016a5f,
@@ -2079,7 +2087,9 @@ codepoint_classes = {
0x1aff50001affc,
0x1affd0001afff,
0x1b0000001b123,
+ 0x1b1320001b133,
0x1b1500001b153,
+ 0x1b1550001b156,
0x1b1640001b168,
0x1b1700001b2fc,
0x1bc000001bc6b,
@@ -2096,17 +2106,21 @@ codepoint_classes = {
0x1da9b0001daa0,
0x1daa10001dab0,
0x1df000001df1f,
+ 0x1df250001df2b,
0x1e0000001e007,
0x1e0080001e019,
0x1e01b0001e022,
0x1e0230001e025,
0x1e0260001e02b,
+ 0x1e0300001e06e,
+ 0x1e08f0001e090,
0x1e1000001e12d,
0x1e1300001e13e,
0x1e1400001e14a,
0x1e14e0001e14f,
0x1e2900001e2af,
0x1e2c00001e2fa,
+ 0x1e4d00001e4fa,
0x1e7e00001e7e7,
0x1e7e80001e7ec,
0x1e7ed0001e7ef,
@@ -2115,13 +2129,13 @@ codepoint_classes = {
0x1e8d00001e8d7,
0x1e9220001e94c,
0x1e9500001e95a,
- 0x1fbf00001fbfa,
0x200000002a6e0,
- 0x2a7000002b739,
+ 0x2a7000002b73a,
0x2b7400002b81e,
0x2b8200002cea2,
0x2ceb00002ebe1,
0x300000003134b,
+ 0x31350000323b0,
),
'CONTEXTJ': (
0x200c0000200e,
diff --git a/src/pip/_vendor/idna/package_data.py b/src/pip/_vendor/idna/package_data.py
index f5ea87c12..8501893bd 100644
--- a/src/pip/_vendor/idna/package_data.py
+++ b/src/pip/_vendor/idna/package_data.py
@@ -1,2 +1,2 @@
-__version__ = '3.3'
+__version__ = '3.4'
diff --git a/src/pip/_vendor/idna/uts46data.py b/src/pip/_vendor/idna/uts46data.py
index 8f65705ee..186796c17 100644
--- a/src/pip/_vendor/idna/uts46data.py
+++ b/src/pip/_vendor/idna/uts46data.py
@@ -7,7 +7,7 @@ from typing import List, Tuple, Union
"""IDNA Mapping Table from UTS46."""
-__version__ = '14.0.0'
+__version__ = '15.0.0'
def _seg_0() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
(0x0, '3'),
@@ -1300,7 +1300,7 @@ def _seg_12() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0xCE6, 'V'),
(0xCF0, 'X'),
(0xCF1, 'V'),
- (0xCF3, 'X'),
+ (0xCF4, 'X'),
(0xD00, 'V'),
(0xD0D, 'X'),
(0xD0E, 'V'),
@@ -1368,7 +1368,7 @@ def _seg_13() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0xEC6, 'V'),
(0xEC7, 'X'),
(0xEC8, 'V'),
- (0xECE, 'X'),
+ (0xECF, 'X'),
(0xED0, 'V'),
(0xEDA, 'X'),
(0xEDC, 'M', 'ຫນ'),
@@ -5917,7 +5917,7 @@ def _seg_56() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x10EAE, 'X'),
(0x10EB0, 'V'),
(0x10EB2, 'X'),
- (0x10F00, 'V'),
+ (0x10EFD, 'V'),
(0x10F28, 'X'),
(0x10F30, 'V'),
(0x10F5A, 'X'),
@@ -5956,7 +5956,7 @@ def _seg_57() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x11200, 'V'),
(0x11212, 'X'),
(0x11213, 'V'),
- (0x1123F, 'X'),
+ (0x11242, 'X'),
(0x11280, 'V'),
(0x11287, 'X'),
(0x11288, 'V'),
@@ -6097,6 +6097,8 @@ def _seg_58() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x11AA3, 'X'),
(0x11AB0, 'V'),
(0x11AF9, 'X'),
+ (0x11B00, 'V'),
+ (0x11B0A, 'X'),
(0x11C00, 'V'),
(0x11C09, 'X'),
(0x11C0A, 'V'),
@@ -6139,13 +6141,19 @@ def _seg_58() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x11DAA, 'X'),
(0x11EE0, 'V'),
(0x11EF9, 'X'),
- (0x11FB0, 'V'),
- (0x11FB1, 'X'),
- (0x11FC0, 'V'),
+ (0x11F00, 'V'),
]
def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
return [
+ (0x11F11, 'X'),
+ (0x11F12, 'V'),
+ (0x11F3B, 'X'),
+ (0x11F3E, 'V'),
+ (0x11F5A, 'X'),
+ (0x11FB0, 'V'),
+ (0x11FB1, 'X'),
+ (0x11FC0, 'V'),
(0x11FF2, 'X'),
(0x11FFF, 'V'),
(0x1239A, 'X'),
@@ -6158,7 +6166,9 @@ def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x12F90, 'V'),
(0x12FF3, 'X'),
(0x13000, 'V'),
- (0x1342F, 'X'),
+ (0x13430, 'X'),
+ (0x13440, 'V'),
+ (0x13456, 'X'),
(0x14400, 'V'),
(0x14647, 'X'),
(0x16800, 'V'),
@@ -6236,6 +6246,10 @@ def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x18D00, 'V'),
(0x18D09, 'X'),
(0x1AFF0, 'V'),
+ ]
+
+def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1AFF4, 'X'),
(0x1AFF5, 'V'),
(0x1AFFC, 'X'),
@@ -6243,13 +6257,13 @@ def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1AFFF, 'X'),
(0x1B000, 'V'),
(0x1B123, 'X'),
+ (0x1B132, 'V'),
+ (0x1B133, 'X'),
(0x1B150, 'V'),
(0x1B153, 'X'),
+ (0x1B155, 'V'),
+ (0x1B156, 'X'),
(0x1B164, 'V'),
- ]
-
-def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1B168, 'X'),
(0x1B170, 'V'),
(0x1B2FC, 'X'),
@@ -6295,6 +6309,8 @@ def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D1EB, 'X'),
(0x1D200, 'V'),
(0x1D246, 'X'),
+ (0x1D2C0, 'V'),
+ (0x1D2D4, 'X'),
(0x1D2E0, 'V'),
(0x1D2F4, 'X'),
(0x1D300, 'V'),
@@ -6334,6 +6350,10 @@ def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D41E, 'M', 'e'),
(0x1D41F, 'M', 'f'),
(0x1D420, 'M', 'g'),
+ ]
+
+def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D421, 'M', 'h'),
(0x1D422, 'M', 'i'),
(0x1D423, 'M', 'j'),
@@ -6350,10 +6370,6 @@ def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D42E, 'M', 'u'),
(0x1D42F, 'M', 'v'),
(0x1D430, 'M', 'w'),
- ]
-
-def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D431, 'M', 'x'),
(0x1D432, 'M', 'y'),
(0x1D433, 'M', 'z'),
@@ -6438,6 +6454,10 @@ def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D482, 'M', 'a'),
(0x1D483, 'M', 'b'),
(0x1D484, 'M', 'c'),
+ ]
+
+def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D485, 'M', 'd'),
(0x1D486, 'M', 'e'),
(0x1D487, 'M', 'f'),
@@ -6454,10 +6474,6 @@ def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D492, 'M', 'q'),
(0x1D493, 'M', 'r'),
(0x1D494, 'M', 's'),
- ]
-
-def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D495, 'M', 't'),
(0x1D496, 'M', 'u'),
(0x1D497, 'M', 'v'),
@@ -6542,6 +6558,10 @@ def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D4E9, 'M', 'z'),
(0x1D4EA, 'M', 'a'),
(0x1D4EB, 'M', 'b'),
+ ]
+
+def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D4EC, 'M', 'c'),
(0x1D4ED, 'M', 'd'),
(0x1D4EE, 'M', 'e'),
@@ -6558,10 +6578,6 @@ def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D4F9, 'M', 'p'),
(0x1D4FA, 'M', 'q'),
(0x1D4FB, 'M', 'r'),
- ]
-
-def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D4FC, 'M', 's'),
(0x1D4FD, 'M', 't'),
(0x1D4FE, 'M', 'u'),
@@ -6646,6 +6662,10 @@ def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D550, 'M', 'y'),
(0x1D551, 'X'),
(0x1D552, 'M', 'a'),
+ ]
+
+def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D553, 'M', 'b'),
(0x1D554, 'M', 'c'),
(0x1D555, 'M', 'd'),
@@ -6662,10 +6682,6 @@ def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D560, 'M', 'o'),
(0x1D561, 'M', 'p'),
(0x1D562, 'M', 'q'),
- ]
-
-def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D563, 'M', 'r'),
(0x1D564, 'M', 's'),
(0x1D565, 'M', 't'),
@@ -6750,6 +6766,10 @@ def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D5B4, 'M', 'u'),
(0x1D5B5, 'M', 'v'),
(0x1D5B6, 'M', 'w'),
+ ]
+
+def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D5B7, 'M', 'x'),
(0x1D5B8, 'M', 'y'),
(0x1D5B9, 'M', 'z'),
@@ -6766,10 +6786,6 @@ def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D5C4, 'M', 'k'),
(0x1D5C5, 'M', 'l'),
(0x1D5C6, 'M', 'm'),
- ]
-
-def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D5C7, 'M', 'n'),
(0x1D5C8, 'M', 'o'),
(0x1D5C9, 'M', 'p'),
@@ -6854,6 +6870,10 @@ def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D618, 'M', 'q'),
(0x1D619, 'M', 'r'),
(0x1D61A, 'M', 's'),
+ ]
+
+def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D61B, 'M', 't'),
(0x1D61C, 'M', 'u'),
(0x1D61D, 'M', 'v'),
@@ -6870,10 +6890,6 @@ def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D628, 'M', 'g'),
(0x1D629, 'M', 'h'),
(0x1D62A, 'M', 'i'),
- ]
-
-def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D62B, 'M', 'j'),
(0x1D62C, 'M', 'k'),
(0x1D62D, 'M', 'l'),
@@ -6958,6 +6974,10 @@ def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D67C, 'M', 'm'),
(0x1D67D, 'M', 'n'),
(0x1D67E, 'M', 'o'),
+ ]
+
+def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D67F, 'M', 'p'),
(0x1D680, 'M', 'q'),
(0x1D681, 'M', 'r'),
@@ -6974,10 +6994,6 @@ def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D68C, 'M', 'c'),
(0x1D68D, 'M', 'd'),
(0x1D68E, 'M', 'e'),
- ]
-
-def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D68F, 'M', 'f'),
(0x1D690, 'M', 'g'),
(0x1D691, 'M', 'h'),
@@ -7062,6 +7078,10 @@ def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D6E2, 'M', 'α'),
(0x1D6E3, 'M', 'β'),
(0x1D6E4, 'M', 'γ'),
+ ]
+
+def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D6E5, 'M', 'δ'),
(0x1D6E6, 'M', 'ε'),
(0x1D6E7, 'M', 'ζ'),
@@ -7078,10 +7098,6 @@ def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D6F2, 'M', 'ρ'),
(0x1D6F3, 'M', 'θ'),
(0x1D6F4, 'M', 'σ'),
- ]
-
-def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D6F5, 'M', 'τ'),
(0x1D6F6, 'M', 'υ'),
(0x1D6F7, 'M', 'φ'),
@@ -7166,6 +7182,10 @@ def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D747, 'M', 'σ'),
(0x1D749, 'M', 'τ'),
(0x1D74A, 'M', 'υ'),
+ ]
+
+def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D74B, 'M', 'φ'),
(0x1D74C, 'M', 'χ'),
(0x1D74D, 'M', 'ψ'),
@@ -7182,10 +7202,6 @@ def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D758, 'M', 'γ'),
(0x1D759, 'M', 'δ'),
(0x1D75A, 'M', 'ε'),
- ]
-
-def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D75B, 'M', 'ζ'),
(0x1D75C, 'M', 'η'),
(0x1D75D, 'M', 'θ'),
@@ -7270,6 +7286,10 @@ def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D7AD, 'M', 'δ'),
(0x1D7AE, 'M', 'ε'),
(0x1D7AF, 'M', 'ζ'),
+ ]
+
+def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1D7B0, 'M', 'η'),
(0x1D7B1, 'M', 'θ'),
(0x1D7B2, 'M', 'ι'),
@@ -7286,10 +7306,6 @@ def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1D7BE, 'M', 'υ'),
(0x1D7BF, 'M', 'φ'),
(0x1D7C0, 'M', 'χ'),
- ]
-
-def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1D7C1, 'M', 'ψ'),
(0x1D7C2, 'M', 'ω'),
(0x1D7C3, 'M', '∂'),
@@ -7359,6 +7375,8 @@ def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1DAB0, 'X'),
(0x1DF00, 'V'),
(0x1DF1F, 'X'),
+ (0x1DF25, 'V'),
+ (0x1DF2B, 'X'),
(0x1E000, 'V'),
(0x1E007, 'X'),
(0x1E008, 'V'),
@@ -7369,6 +7387,75 @@ def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1E025, 'X'),
(0x1E026, 'V'),
(0x1E02B, 'X'),
+ (0x1E030, 'M', 'а'),
+ (0x1E031, 'M', 'б'),
+ (0x1E032, 'M', 'в'),
+ ]
+
+def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
+ (0x1E033, 'M', 'г'),
+ (0x1E034, 'M', 'д'),
+ (0x1E035, 'M', 'е'),
+ (0x1E036, 'M', 'ж'),
+ (0x1E037, 'M', 'з'),
+ (0x1E038, 'M', 'и'),
+ (0x1E039, 'M', 'к'),
+ (0x1E03A, 'M', 'л'),
+ (0x1E03B, 'M', 'м'),
+ (0x1E03C, 'M', 'о'),
+ (0x1E03D, 'M', 'п'),
+ (0x1E03E, 'M', 'р'),
+ (0x1E03F, 'M', 'с'),
+ (0x1E040, 'M', 'т'),
+ (0x1E041, 'M', 'у'),
+ (0x1E042, 'M', 'ф'),
+ (0x1E043, 'M', 'х'),
+ (0x1E044, 'M', 'ц'),
+ (0x1E045, 'M', 'ч'),
+ (0x1E046, 'M', 'ш'),
+ (0x1E047, 'M', 'ы'),
+ (0x1E048, 'M', 'э'),
+ (0x1E049, 'M', 'ю'),
+ (0x1E04A, 'M', 'ꚉ'),
+ (0x1E04B, 'M', 'ә'),
+ (0x1E04C, 'M', 'і'),
+ (0x1E04D, 'M', 'ј'),
+ (0x1E04E, 'M', 'ө'),
+ (0x1E04F, 'M', 'ү'),
+ (0x1E050, 'M', 'ӏ'),
+ (0x1E051, 'M', 'а'),
+ (0x1E052, 'M', 'б'),
+ (0x1E053, 'M', 'в'),
+ (0x1E054, 'M', 'г'),
+ (0x1E055, 'M', 'д'),
+ (0x1E056, 'M', 'е'),
+ (0x1E057, 'M', 'ж'),
+ (0x1E058, 'M', 'з'),
+ (0x1E059, 'M', 'и'),
+ (0x1E05A, 'M', 'к'),
+ (0x1E05B, 'M', 'л'),
+ (0x1E05C, 'M', 'о'),
+ (0x1E05D, 'M', 'п'),
+ (0x1E05E, 'M', 'с'),
+ (0x1E05F, 'M', 'у'),
+ (0x1E060, 'M', 'ф'),
+ (0x1E061, 'M', 'х'),
+ (0x1E062, 'M', 'ц'),
+ (0x1E063, 'M', 'ч'),
+ (0x1E064, 'M', 'ш'),
+ (0x1E065, 'M', 'ъ'),
+ (0x1E066, 'M', 'ы'),
+ (0x1E067, 'M', 'ґ'),
+ (0x1E068, 'M', 'і'),
+ (0x1E069, 'M', 'ѕ'),
+ (0x1E06A, 'M', 'џ'),
+ (0x1E06B, 'M', 'ҫ'),
+ (0x1E06C, 'M', 'ꙑ'),
+ (0x1E06D, 'M', 'ұ'),
+ (0x1E06E, 'X'),
+ (0x1E08F, 'V'),
+ (0x1E090, 'X'),
(0x1E100, 'V'),
(0x1E12D, 'X'),
(0x1E130, 'V'),
@@ -7383,6 +7470,8 @@ def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1E2FA, 'X'),
(0x1E2FF, 'V'),
(0x1E300, 'X'),
+ (0x1E4D0, 'V'),
+ (0x1E4FA, 'X'),
(0x1E7E0, 'V'),
(0x1E7E7, 'X'),
(0x1E7E8, 'V'),
@@ -7390,10 +7479,6 @@ def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1E7ED, 'V'),
(0x1E7EF, 'X'),
(0x1E7F0, 'V'),
- ]
-
-def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1E7FF, 'X'),
(0x1E800, 'V'),
(0x1E8C5, 'X'),
@@ -7409,6 +7494,10 @@ def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1E907, 'M', '𞤩'),
(0x1E908, 'M', '𞤪'),
(0x1E909, 'M', '𞤫'),
+ ]
+
+def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1E90A, 'M', '𞤬'),
(0x1E90B, 'M', '𞤭'),
(0x1E90C, 'M', '𞤮'),
@@ -7494,10 +7583,6 @@ def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1EE31, 'M', 'ص'),
(0x1EE32, 'M', 'ق'),
(0x1EE33, 'X'),
- ]
-
-def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1EE34, 'M', 'ش'),
(0x1EE35, 'M', 'ت'),
(0x1EE36, 'M', 'ث'),
@@ -7513,6 +7598,10 @@ def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1EE48, 'X'),
(0x1EE49, 'M', 'ي'),
(0x1EE4A, 'X'),
+ ]
+
+def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1EE4B, 'M', 'ل'),
(0x1EE4C, 'X'),
(0x1EE4D, 'M', 'ن'),
@@ -7598,10 +7687,6 @@ def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1EEA3, 'M', 'د'),
(0x1EEA4, 'X'),
(0x1EEA5, 'M', 'و'),
- ]
-
-def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1EEA6, 'M', 'ز'),
(0x1EEA7, 'M', 'ح'),
(0x1EEA8, 'M', 'ط'),
@@ -7617,6 +7702,10 @@ def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1EEB2, 'M', 'ق'),
(0x1EEB3, 'M', 'ر'),
(0x1EEB4, 'M', 'ش'),
+ ]
+
+def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1EEB5, 'M', 'ت'),
(0x1EEB6, 'M', 'ث'),
(0x1EEB7, 'M', 'خ'),
@@ -7702,10 +7791,6 @@ def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1F141, 'M', 'r'),
(0x1F142, 'M', 's'),
(0x1F143, 'M', 't'),
- ]
-
-def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1F144, 'M', 'u'),
(0x1F145, 'M', 'v'),
(0x1F146, 'M', 'w'),
@@ -7721,6 +7806,10 @@ def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1F150, 'V'),
(0x1F16A, 'M', 'mc'),
(0x1F16B, 'M', 'md'),
+ ]
+
+def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1F16C, 'M', 'mr'),
(0x1F16D, 'V'),
(0x1F190, 'M', 'dj'),
@@ -7793,23 +7882,19 @@ def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1F266, 'X'),
(0x1F300, 'V'),
(0x1F6D8, 'X'),
- (0x1F6DD, 'V'),
+ (0x1F6DC, 'V'),
(0x1F6ED, 'X'),
(0x1F6F0, 'V'),
(0x1F6FD, 'X'),
(0x1F700, 'V'),
- (0x1F774, 'X'),
- (0x1F780, 'V'),
- (0x1F7D9, 'X'),
+ (0x1F777, 'X'),
+ (0x1F77B, 'V'),
+ (0x1F7DA, 'X'),
(0x1F7E0, 'V'),
(0x1F7EC, 'X'),
(0x1F7F0, 'V'),
(0x1F7F1, 'X'),
(0x1F800, 'V'),
- ]
-
-def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x1F80C, 'X'),
(0x1F810, 'V'),
(0x1F848, 'X'),
@@ -7825,24 +7910,24 @@ def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x1FA54, 'X'),
(0x1FA60, 'V'),
(0x1FA6E, 'X'),
+ ]
+
+def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x1FA70, 'V'),
- (0x1FA75, 'X'),
- (0x1FA78, 'V'),
(0x1FA7D, 'X'),
(0x1FA80, 'V'),
- (0x1FA87, 'X'),
+ (0x1FA89, 'X'),
(0x1FA90, 'V'),
- (0x1FAAD, 'X'),
- (0x1FAB0, 'V'),
- (0x1FABB, 'X'),
- (0x1FAC0, 'V'),
+ (0x1FABE, 'X'),
+ (0x1FABF, 'V'),
(0x1FAC6, 'X'),
- (0x1FAD0, 'V'),
- (0x1FADA, 'X'),
+ (0x1FACE, 'V'),
+ (0x1FADC, 'X'),
(0x1FAE0, 'V'),
- (0x1FAE8, 'X'),
+ (0x1FAE9, 'X'),
(0x1FAF0, 'V'),
- (0x1FAF7, 'X'),
+ (0x1FAF9, 'X'),
(0x1FB00, 'V'),
(0x1FB93, 'X'),
(0x1FB94, 'V'),
@@ -7861,7 +7946,7 @@ def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x20000, 'V'),
(0x2A6E0, 'X'),
(0x2A700, 'V'),
- (0x2B739, 'X'),
+ (0x2B73A, 'X'),
(0x2B740, 'V'),
(0x2B81E, 'X'),
(0x2B820, 'V'),
@@ -7910,10 +7995,6 @@ def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F827, 'M', '勤'),
(0x2F828, 'M', '勺'),
(0x2F829, 'M', '包'),
- ]
-
-def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x2F82A, 'M', '匆'),
(0x2F82B, 'M', '北'),
(0x2F82C, 'M', '卉'),
@@ -7933,6 +8014,10 @@ def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F83C, 'M', '咞'),
(0x2F83D, 'M', '吸'),
(0x2F83E, 'M', '呈'),
+ ]
+
+def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x2F83F, 'M', '周'),
(0x2F840, 'M', '咢'),
(0x2F841, 'M', '哶'),
@@ -8014,10 +8099,6 @@ def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F88F, 'M', '𪎒'),
(0x2F890, 'M', '廾'),
(0x2F891, 'M', '𢌱'),
- ]
-
-def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x2F893, 'M', '舁'),
(0x2F894, 'M', '弢'),
(0x2F896, 'M', '㣇'),
@@ -8037,6 +8118,10 @@ def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F8A4, 'M', '𢛔'),
(0x2F8A5, 'M', '惇'),
(0x2F8A6, 'M', '慈'),
+ ]
+
+def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x2F8A7, 'M', '慌'),
(0x2F8A8, 'M', '慎'),
(0x2F8A9, 'M', '慌'),
@@ -8118,10 +8203,6 @@ def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F8F5, 'M', '殺'),
(0x2F8F6, 'M', '殻'),
(0x2F8F7, 'M', '𣪍'),
- ]
-
-def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x2F8F8, 'M', '𡴋'),
(0x2F8F9, 'M', '𣫺'),
(0x2F8FA, 'M', '汎'),
@@ -8141,6 +8222,10 @@ def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F908, 'M', '港'),
(0x2F909, 'M', '湮'),
(0x2F90A, 'M', '㴳'),
+ ]
+
+def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x2F90B, 'M', '滋'),
(0x2F90C, 'M', '滇'),
(0x2F90D, 'M', '𣻑'),
@@ -8222,10 +8307,6 @@ def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F95B, 'M', '穏'),
(0x2F95C, 'M', '𥥼'),
(0x2F95D, 'M', '𥪧'),
- ]
-
-def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x2F95F, 'X'),
(0x2F960, 'M', '䈂'),
(0x2F961, 'M', '𥮫'),
@@ -8245,6 +8326,10 @@ def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F96F, 'M', '縂'),
(0x2F970, 'M', '繅'),
(0x2F971, 'M', '䌴'),
+ ]
+
+def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x2F972, 'M', '𦈨'),
(0x2F973, 'M', '𦉇'),
(0x2F974, 'M', '䍙'),
@@ -8326,10 +8411,6 @@ def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F9C0, 'M', '蟡'),
(0x2F9C1, 'M', '蠁'),
(0x2F9C2, 'M', '䗹'),
- ]
-
-def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
- return [
(0x2F9C3, 'M', '衠'),
(0x2F9C4, 'M', '衣'),
(0x2F9C5, 'M', '𧙧'),
@@ -8349,6 +8430,10 @@ def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2F9D3, 'M', '𧲨'),
(0x2F9D4, 'M', '貫'),
(0x2F9D5, 'M', '賁'),
+ ]
+
+def _seg_81() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
+ return [
(0x2F9D6, 'M', '贛'),
(0x2F9D7, 'M', '起'),
(0x2F9D8, 'M', '𧼯'),
@@ -8423,6 +8508,8 @@ def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]:
(0x2FA1E, 'X'),
(0x30000, 'V'),
(0x3134B, 'X'),
+ (0x31350, 'V'),
+ (0x323B0, 'X'),
(0xE0100, 'I'),
(0xE01F0, 'X'),
]
@@ -8509,4 +8596,5 @@ uts46data = tuple(
+ _seg_78()
+ _seg_79()
+ _seg_80()
+ + _seg_81()
) # type: Tuple[Union[Tuple[int, str], Tuple[int, str, str]], ...]
diff --git a/src/pip/_vendor/pep517/__init__.py b/src/pip/_vendor/pep517/__init__.py
index 2b6b88567..38ea0f5f1 100644
--- a/src/pip/_vendor/pep517/__init__.py
+++ b/src/pip/_vendor/pep517/__init__.py
@@ -1,6 +1,6 @@
"""Wrappers to build Python packages using PEP 517 hooks
"""
-__version__ = '0.12.0'
+__version__ = '0.13.0'
from .wrappers import * # noqa: F401, F403
diff --git a/src/pip/_vendor/pep517/_compat.py b/src/pip/_vendor/pep517/_compat.py
new file mode 100644
index 000000000..95e509c01
--- /dev/null
+++ b/src/pip/_vendor/pep517/_compat.py
@@ -0,0 +1,8 @@
+__all__ = ("tomllib",)
+
+import sys
+
+if sys.version_info >= (3, 11):
+ import tomllib
+else:
+ from pip._vendor import tomli as tomllib
diff --git a/src/pip/_vendor/pep517/build.py b/src/pip/_vendor/pep517/build.py
index bc463b2ba..b30909c87 100644
--- a/src/pip/_vendor/pep517/build.py
+++ b/src/pip/_vendor/pep517/build.py
@@ -1,15 +1,14 @@
"""Build a project using PEP 517 hooks.
"""
import argparse
-import io
import logging
import os
import shutil
+import tempfile
+from ._compat import tomllib
from .envbuild import BuildEnvironment
from .wrappers import Pep517HookCaller
-from .dirtools import tempdir, mkdir_p
-from .compat import FileNotFoundError, toml_load
log = logging.getLogger(__name__)
@@ -31,8 +30,8 @@ def load_system(source_dir):
Load the build system from a source dir (pyproject.toml).
"""
pyproject = os.path.join(source_dir, 'pyproject.toml')
- with io.open(pyproject, 'rb') as f:
- pyproject_data = toml_load(f)
+ with open(pyproject, 'rb') as f:
+ pyproject_data = tomllib.load(f)
return pyproject_data['build-system']
@@ -64,7 +63,7 @@ def _do_build(hooks, env, dist, dest):
env.pip_install(reqs)
log.info('Installed dynamic build dependencies')
- with tempdir() as td:
+ with tempfile.TemporaryDirectory() as td:
log.info('Trying to build %s in %s', dist, td)
build_name = 'build_{dist}'.format(**locals())
build = getattr(hooks, build_name)
@@ -76,7 +75,7 @@ def _do_build(hooks, env, dist, dest):
def build(source_dir, dist, dest=None, system=None):
system = system or load_system(source_dir)
dest = os.path.join(source_dir, dest or 'dist')
- mkdir_p(dest)
+ os.makedirs(dest, exist_ok=True)
validate_system(system)
hooks = Pep517HookCaller(
diff --git a/src/pip/_vendor/pep517/check.py b/src/pip/_vendor/pep517/check.py
index bf3c72264..b79f6270b 100644
--- a/src/pip/_vendor/pep517/check.py
+++ b/src/pip/_vendor/pep517/check.py
@@ -1,19 +1,19 @@
"""Check a project and backend by attempting to build using PEP 517 hooks.
"""
import argparse
-import io
import logging
import os
-from os.path import isfile, join as pjoin
import shutil
-from subprocess import CalledProcessError
import sys
import tarfile
-from tempfile import mkdtemp
import zipfile
+from os.path import isfile
+from os.path import join as pjoin
+from subprocess import CalledProcessError
+from tempfile import mkdtemp
+from ._compat import tomllib
from .colorlog import enable_colourful_output
-from .compat import TOMLDecodeError, toml_load
from .envbuild import BuildEnvironment
from .wrappers import Pep517HookCaller
@@ -142,15 +142,15 @@ def check(source_dir):
return False
try:
- with io.open(pyproject, 'rb') as f:
- pyproject_data = toml_load(f)
+ with open(pyproject, 'rb') as f:
+ pyproject_data = tomllib.load(f)
# Ensure the mandatory data can be loaded
buildsys = pyproject_data['build-system']
requires = buildsys['requires']
backend = buildsys['build-backend']
backend_path = buildsys.get('backend-path')
log.info('Loaded pyproject.toml')
- except (TOMLDecodeError, KeyError):
+ except (tomllib.TOMLDecodeError, KeyError):
log.error("Invalid pyproject.toml", exc_info=True)
return False
diff --git a/src/pip/_vendor/pep517/colorlog.py b/src/pip/_vendor/pep517/colorlog.py
index 69c8a59d3..66310a79a 100644
--- a/src/pip/_vendor/pep517/colorlog.py
+++ b/src/pip/_vendor/pep517/colorlog.py
@@ -73,8 +73,6 @@ class LogFormatter(logging.Formatter):
# right conversion in python 3.
fg_color = (curses.tigetstr("setaf") or
curses.tigetstr("setf") or "")
- if (3, 0) < sys.version_info < (3, 2, 3):
- fg_color = str(fg_color, "ascii")
for levelno, code in self.DEFAULT_COLORS.items():
self._colors[levelno] = str(
diff --git a/src/pip/_vendor/pep517/compat.py b/src/pip/_vendor/pep517/compat.py
deleted file mode 100644
index 730ef5ffa..000000000
--- a/src/pip/_vendor/pep517/compat.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""Python 2/3 compatibility"""
-import io
-import json
-import sys
-
-
-# Handle reading and writing JSON in UTF-8, on Python 3 and 2.
-
-if sys.version_info[0] >= 3:
- # Python 3
- def write_json(obj, path, **kwargs):
- with open(path, 'w', encoding='utf-8') as f:
- json.dump(obj, f, **kwargs)
-
- def read_json(path):
- with open(path, 'r', encoding='utf-8') as f:
- return json.load(f)
-
-else:
- # Python 2
- def write_json(obj, path, **kwargs):
- with open(path, 'wb') as f:
- json.dump(obj, f, encoding='utf-8', **kwargs)
-
- def read_json(path):
- with open(path, 'rb') as f:
- return json.load(f)
-
-
-# FileNotFoundError
-
-try:
- FileNotFoundError = FileNotFoundError
-except NameError:
- FileNotFoundError = IOError
-
-
-if sys.version_info < (3, 6):
- from toml import load as _toml_load # noqa: F401
-
- def toml_load(f):
- w = io.TextIOWrapper(f, encoding="utf8", newline="")
- try:
- return _toml_load(w)
- finally:
- w.detach()
-
- from toml import TomlDecodeError as TOMLDecodeError # noqa: F401
-else:
- from pip._vendor.tomli import load as toml_load # noqa: F401
- from pip._vendor.tomli import TOMLDecodeError # noqa: F401
diff --git a/src/pip/_vendor/pep517/dirtools.py b/src/pip/_vendor/pep517/dirtools.py
index 58c6ca0c5..3eff4d801 100644
--- a/src/pip/_vendor/pep517/dirtools.py
+++ b/src/pip/_vendor/pep517/dirtools.py
@@ -1,33 +1,8 @@
-import os
import io
-import contextlib
-import tempfile
-import shutil
-import errno
+import os
import zipfile
-@contextlib.contextmanager
-def tempdir():
- """Create a temporary directory in a context manager."""
- td = tempfile.mkdtemp()
- try:
- yield td
- finally:
- shutil.rmtree(td)
-
-
-def mkdir_p(*args, **kwargs):
- """Like `mkdir`, but does not raise an exception if the
- directory already exists.
- """
- try:
- return os.mkdir(*args, **kwargs)
- except OSError as exc:
- if exc.errno != errno.EEXIST:
- raise
-
-
def dir_to_zipfile(root):
"""Construct an in-memory zip file for a directory."""
buffer = io.BytesIO()
diff --git a/src/pip/_vendor/pep517/envbuild.py b/src/pip/_vendor/pep517/envbuild.py
index fe8873c64..c0415c4d7 100644
--- a/src/pip/_vendor/pep517/envbuild.py
+++ b/src/pip/_vendor/pep517/envbuild.py
@@ -1,27 +1,26 @@
"""Build wheels/sdists by installing build deps to a temporary environment.
"""
-import io
-import os
import logging
+import os
import shutil
-from subprocess import check_call
import sys
+from subprocess import check_call
from sysconfig import get_paths
from tempfile import mkdtemp
-from .compat import toml_load
-from .wrappers import Pep517HookCaller, LoggerWrapper
+from ._compat import tomllib
+from .wrappers import LoggerWrapper, Pep517HookCaller
log = logging.getLogger(__name__)
def _load_pyproject(source_dir):
- with io.open(
+ with open(
os.path.join(source_dir, 'pyproject.toml'),
'rb',
) as f:
- pyproject_data = toml_load(f)
+ pyproject_data = tomllib.load(f)
buildsys = pyproject_data['build-system']
return (
buildsys['requires'],
@@ -30,7 +29,7 @@ def _load_pyproject(source_dir):
)
-class BuildEnvironment(object):
+class BuildEnvironment:
"""Context manager to install build deps in a simple temporary environment
Based on code I wrote for pip, which is MIT licensed.
diff --git a/src/pip/_vendor/pep517/in_process/__init__.py b/src/pip/_vendor/pep517/in_process/__init__.py
index c932313b3..281a356cf 100644
--- a/src/pip/_vendor/pep517/in_process/__init__.py
+++ b/src/pip/_vendor/pep517/in_process/__init__.py
@@ -3,15 +3,24 @@
The subpackage should stay as empty as possible to avoid shadowing modules that
the backend might import.
"""
-from os.path import dirname, abspath, join as pjoin
from contextlib import contextmanager
+from os.path import abspath, dirname
+from os.path import join as pjoin
try:
import importlib.resources as resources
-
- def _in_proc_script_path():
- return resources.path(__package__, '_in_process.py')
+ try:
+ resources.files
+ except AttributeError:
+ # Python 3.8 compatibility
+ def _in_proc_script_path():
+ return resources.path(__package__, '_in_process.py')
+ else:
+ def _in_proc_script_path():
+ return resources.as_file(
+ resources.files(__package__).joinpath('_in_process.py'))
except ImportError:
+ # Python 3.6 compatibility
@contextmanager
def _in_proc_script_path():
yield pjoin(dirname(abspath(__file__)), '_in_process.py')
diff --git a/src/pip/_vendor/pep517/in_process/_in_process.py b/src/pip/_vendor/pep517/in_process/_in_process.py
index 954a4ab05..ae4cf9e9c 100644
--- a/src/pip/_vendor/pep517/in_process/_in_process.py
+++ b/src/pip/_vendor/pep517/in_process/_in_process.py
@@ -12,41 +12,29 @@ Results:
- control_dir/output.json
- {"return_val": ...}
"""
-from glob import glob
-from importlib import import_module
import json
import os
import os.path
-from os.path import join as pjoin
import re
import shutil
import sys
import traceback
+from glob import glob
+from importlib import import_module
+from os.path import join as pjoin
-# This file is run as a script, and `import compat` is not zip-safe, so we
-# include write_json() and read_json() from compat.py.
-#
-# Handle reading and writing JSON in UTF-8, on Python 3 and 2.
+# This file is run as a script, and `import wrappers` is not zip-safe, so we
+# include write_json() and read_json() from wrappers.py.
-if sys.version_info[0] >= 3:
- # Python 3
- def write_json(obj, path, **kwargs):
- with open(path, 'w', encoding='utf-8') as f:
- json.dump(obj, f, **kwargs)
- def read_json(path):
- with open(path, 'r', encoding='utf-8') as f:
- return json.load(f)
+def write_json(obj, path, **kwargs):
+ with open(path, 'w', encoding='utf-8') as f:
+ json.dump(obj, f, **kwargs)
-else:
- # Python 2
- def write_json(obj, path, **kwargs):
- with open(path, 'wb') as f:
- json.dump(obj, f, encoding='utf-8', **kwargs)
- def read_json(path):
- with open(path, 'rb') as f:
- return json.load(f)
+def read_json(path):
+ with open(path, encoding='utf-8') as f:
+ return json.load(f)
class BackendUnavailable(Exception):
@@ -64,7 +52,7 @@ class BackendInvalid(Exception):
class HookMissing(Exception):
"""Raised if a hook is missing and we are not executing the fallback"""
def __init__(self, hook_name=None):
- super(HookMissing, self).__init__(hook_name)
+ super().__init__(hook_name)
self.hook_name = hook_name
diff --git a/src/pip/_vendor/pep517/meta.py b/src/pip/_vendor/pep517/meta.py
index d525de5c6..4afc3c047 100644
--- a/src/pip/_vendor/pep517/meta.py
+++ b/src/pip/_vendor/pep517/meta.py
@@ -1,10 +1,11 @@
"""Build metadata for a project using PEP 517 hooks.
"""
import argparse
+import functools
import logging
import os
import shutil
-import functools
+import tempfile
try:
import importlib.metadata as imp_meta
@@ -16,10 +17,10 @@ try:
except ImportError:
from zipp import Path
+from .build import compat_system, load_system, validate_system
+from .dirtools import dir_to_zipfile
from .envbuild import BuildEnvironment
from .wrappers import Pep517HookCaller, quiet_subprocess_runner
-from .dirtools import tempdir, mkdir_p, dir_to_zipfile
-from .build import validate_system, load_system, compat_system
log = logging.getLogger(__name__)
@@ -31,7 +32,7 @@ def _prep_meta(hooks, env, dest):
env.pip_install(reqs)
log.info('Installed dynamic build dependencies')
- with tempdir() as td:
+ with tempfile.TemporaryDirectory() as td:
log.info('Trying to build metadata in %s', td)
filename = hooks.prepare_metadata_for_build_wheel(td, {})
source = os.path.join(td, filename)
@@ -41,7 +42,7 @@ def _prep_meta(hooks, env, dest):
def build(source_dir='.', dest=None, system=None):
system = system or load_system(source_dir)
dest = os.path.join(source_dir, dest or 'dist')
- mkdir_p(dest)
+ os.makedirs(dest, exist_ok=True)
validate_system(system)
hooks = Pep517HookCaller(
source_dir, system['build-backend'], system.get('backend-path')
@@ -54,7 +55,7 @@ def build(source_dir='.', dest=None, system=None):
def build_as_zip(builder=build):
- with tempdir() as out_dir:
+ with tempfile.TemporaryDirectory() as out_dir:
builder(dest=out_dir)
return dir_to_zipfile(out_dir)
diff --git a/src/pip/_vendor/pep517/wrappers.py b/src/pip/_vendor/pep517/wrappers.py
index e031ed708..987a62aaa 100644
--- a/src/pip/_vendor/pep517/wrappers.py
+++ b/src/pip/_vendor/pep517/wrappers.py
@@ -1,13 +1,13 @@
-import threading
-from contextlib import contextmanager
+import json
import os
-from os.path import abspath, join as pjoin
-import shutil
-from subprocess import check_call, check_output, STDOUT
import sys
-from tempfile import mkdtemp
+import tempfile
+import threading
+from contextlib import contextmanager
+from os.path import abspath
+from os.path import join as pjoin
+from subprocess import STDOUT, check_call, check_output
-from . import compat
from .in_process import _in_proc_script_path
__all__ = [
@@ -21,13 +21,14 @@ __all__ = [
]
-@contextmanager
-def tempdir():
- td = mkdtemp()
- try:
- yield td
- finally:
- shutil.rmtree(td)
+def write_json(obj, path, **kwargs):
+ with open(path, 'w', encoding='utf-8') as f:
+ json.dump(obj, f, **kwargs)
+
+
+def read_json(path):
+ with open(path, encoding='utf-8') as f:
+ return json.load(f)
class BackendUnavailable(Exception):
@@ -47,7 +48,7 @@ class BackendInvalid(Exception):
class HookMissing(Exception):
"""Will be raised on missing hooks."""
def __init__(self, hook_name):
- super(HookMissing, self).__init__(hook_name)
+ super().__init__(hook_name)
self.hook_name = hook_name
@@ -99,7 +100,7 @@ def norm_and_check(source_tree, requested):
return abs_requested
-class Pep517HookCaller(object):
+class Pep517HookCaller:
"""A wrapper around a source directory to be built with a PEP 517 backend.
:param source_dir: The path to the source directory, containing
@@ -292,29 +293,15 @@ class Pep517HookCaller(object):
})
def _call_hook(self, hook_name, kwargs):
- # On Python 2, pytoml returns Unicode values (which is correct) but the
- # environment passed to check_call needs to contain string values. We
- # convert here by encoding using ASCII (the backend can only contain
- # letters, digits and _, . and : characters, and will be used as a
- # Python identifier, so non-ASCII content is wrong on Python 2 in
- # any case).
- # For backend_path, we use sys.getfilesystemencoding.
- if sys.version_info[0] == 2:
- build_backend = self.build_backend.encode('ASCII')
- else:
- build_backend = self.build_backend
- extra_environ = {'PEP517_BUILD_BACKEND': build_backend}
+ extra_environ = {'PEP517_BUILD_BACKEND': self.build_backend}
if self.backend_path:
backend_path = os.pathsep.join(self.backend_path)
- if sys.version_info[0] == 2:
- backend_path = backend_path.encode(sys.getfilesystemencoding())
extra_environ['PEP517_BACKEND_PATH'] = backend_path
- with tempdir() as td:
+ with tempfile.TemporaryDirectory() as td:
hook_input = {'kwargs': kwargs}
- compat.write_json(hook_input, pjoin(td, 'input.json'),
- indent=2)
+ write_json(hook_input, pjoin(td, 'input.json'), indent=2)
# Run the hook in a subprocess
with _in_proc_script_path() as script:
@@ -325,7 +312,7 @@ class Pep517HookCaller(object):
extra_environ=extra_environ
)
- data = compat.read_json(pjoin(td, 'output.json'))
+ data = read_json(pjoin(td, 'output.json'))
if data.get('unsupported'):
raise UnsupportedOperation(data.get('traceback', ''))
if data.get('no_backend'):
diff --git a/src/pip/_vendor/tenacity/__init__.py b/src/pip/_vendor/tenacity/__init__.py
index 086ad46e1..ab3be3bf6 100644
--- a/src/pip/_vendor/tenacity/__init__.py
+++ b/src/pip/_vendor/tenacity/__init__.py
@@ -33,6 +33,7 @@ from .retry import retry_always # noqa
from .retry import retry_any # noqa
from .retry import retry_if_exception # noqa
from .retry import retry_if_exception_type # noqa
+from .retry import retry_if_exception_cause_type # noqa
from .retry import retry_if_not_exception_type # noqa
from .retry import retry_if_not_result # noqa
from .retry import retry_if_result # noqa
@@ -63,6 +64,7 @@ from .wait import wait_none # noqa
from .wait import wait_random # noqa
from .wait import wait_random_exponential # noqa
from .wait import wait_random_exponential as wait_full_jitter # noqa
+from .wait import wait_exponential_jitter # noqa
# Import all built-in before strategies for easier usage.
from .before import before_log # noqa
diff --git a/src/pip/_vendor/tenacity/retry.py b/src/pip/_vendor/tenacity/retry.py
index 1d727e9b3..9ebeb62d5 100644
--- a/src/pip/_vendor/tenacity/retry.py
+++ b/src/pip/_vendor/tenacity/retry.py
@@ -117,6 +117,33 @@ class retry_unless_exception_type(retry_if_exception):
return self.predicate(retry_state.outcome.exception())
+class retry_if_exception_cause_type(retry_base):
+ """Retries if any of the causes of the raised exception is of one or more types.
+
+ The check on the type of the cause of the exception is done recursively (until finding
+ an exception in the chain that has no `__cause__`)
+ """
+
+ def __init__(
+ self,
+ exception_types: typing.Union[
+ typing.Type[BaseException],
+ typing.Tuple[typing.Type[BaseException], ...],
+ ] = Exception,
+ ) -> None:
+ self.exception_cause_types = exception_types
+
+ def __call__(self, retry_state: "RetryCallState") -> bool:
+ if retry_state.outcome.failed:
+ exc = retry_state.outcome.exception()
+ while exc is not None:
+ if isinstance(exc.__cause__, self.exception_cause_types):
+ return True
+ exc = exc.__cause__
+
+ return False
+
+
class retry_if_result(retry_base):
"""Retries if the result verifies a predicate."""
diff --git a/src/pip/_vendor/tenacity/wait.py b/src/pip/_vendor/tenacity/wait.py
index 6ed97a7bc..8fdfc8f9d 100644
--- a/src/pip/_vendor/tenacity/wait.py
+++ b/src/pip/_vendor/tenacity/wait.py
@@ -17,12 +17,19 @@
import abc
import random
import typing
+from datetime import timedelta
from pip._vendor.tenacity import _utils
if typing.TYPE_CHECKING:
from pip._vendor.tenacity import RetryCallState
+wait_unit_type = typing.Union[int, float, timedelta]
+
+
+def to_seconds(wait_unit: wait_unit_type) -> float:
+ return float(wait_unit.total_seconds() if isinstance(wait_unit, timedelta) else wait_unit)
+
class wait_base(abc.ABC):
"""Abstract base class for wait strategies."""
@@ -44,8 +51,8 @@ class wait_base(abc.ABC):
class wait_fixed(wait_base):
"""Wait strategy that waits a fixed amount of time between each retry."""
- def __init__(self, wait: float) -> None:
- self.wait_fixed = wait
+ def __init__(self, wait: wait_unit_type) -> None:
+ self.wait_fixed = to_seconds(wait)
def __call__(self, retry_state: "RetryCallState") -> float:
return self.wait_fixed
@@ -61,9 +68,9 @@ class wait_none(wait_fixed):
class wait_random(wait_base):
"""Wait strategy that waits a random amount of time between min/max."""
- def __init__(self, min: typing.Union[int, float] = 0, max: typing.Union[int, float] = 1) -> None: # noqa
- self.wait_random_min = min
- self.wait_random_max = max
+ def __init__(self, min: wait_unit_type = 0, max: wait_unit_type = 1) -> None: # noqa
+ self.wait_random_min = to_seconds(min)
+ self.wait_random_max = to_seconds(max)
def __call__(self, retry_state: "RetryCallState") -> float:
return self.wait_random_min + (random.random() * (self.wait_random_max - self.wait_random_min))
@@ -113,13 +120,13 @@ class wait_incrementing(wait_base):
def __init__(
self,
- start: typing.Union[int, float] = 0,
- increment: typing.Union[int, float] = 100,
- max: typing.Union[int, float] = _utils.MAX_WAIT, # noqa
+ start: wait_unit_type = 0,
+ increment: wait_unit_type = 100,
+ max: wait_unit_type = _utils.MAX_WAIT, # noqa
) -> None:
- self.start = start
- self.increment = increment
- self.max = max
+ self.start = to_seconds(start)
+ self.increment = to_seconds(increment)
+ self.max = to_seconds(max)
def __call__(self, retry_state: "RetryCallState") -> float:
result = self.start + (self.increment * (retry_state.attempt_number - 1))
@@ -142,13 +149,13 @@ class wait_exponential(wait_base):
def __init__(
self,
multiplier: typing.Union[int, float] = 1,
- max: typing.Union[int, float] = _utils.MAX_WAIT, # noqa
+ max: wait_unit_type = _utils.MAX_WAIT, # noqa
exp_base: typing.Union[int, float] = 2,
- min: typing.Union[int, float] = 0, # noqa
+ min: wait_unit_type = 0, # noqa
) -> None:
self.multiplier = multiplier
- self.min = min
- self.max = max
+ self.min = to_seconds(min)
+ self.max = to_seconds(max)
self.exp_base = exp_base
def __call__(self, retry_state: "RetryCallState") -> float:
@@ -189,3 +196,37 @@ class wait_random_exponential(wait_exponential):
def __call__(self, retry_state: "RetryCallState") -> float:
high = super().__call__(retry_state=retry_state)
return random.uniform(0, high)
+
+
+class wait_exponential_jitter(wait_base):
+ """Wait strategy that applies exponential backoff and jitter.
+
+ It allows for a customized initial wait, maximum wait and jitter.
+
+ This implements the strategy described here:
+ https://cloud.google.com/storage/docs/retry-strategy
+
+ The wait time is min(initial * (2**n + random.uniform(0, jitter)), maximum)
+ where n is the retry count.
+ """
+
+ def __init__(
+ self,
+ initial: float = 1,
+ max: float = _utils.MAX_WAIT, # noqa
+ exp_base: float = 2,
+ jitter: float = 1,
+ ) -> None:
+ self.initial = initial
+ self.max = max
+ self.exp_base = exp_base
+ self.jitter = jitter
+
+ def __call__(self, retry_state: "RetryCallState") -> float:
+ jitter = random.uniform(0, self.jitter)
+ try:
+ exp = self.exp_base ** (retry_state.attempt_number - 1)
+ result = self.initial * exp + jitter
+ except OverflowError:
+ result = self.max
+ return max(0, min(result, self.max))
diff --git a/src/pip/_vendor/vendor.txt b/src/pip/_vendor/vendor.txt
index 375b6411a..17fa0cd0f 100644
--- a/src/pip/_vendor/vendor.txt
+++ b/src/pip/_vendor/vendor.txt
@@ -1,16 +1,16 @@
CacheControl==0.12.11 # Make sure to update the license in pyproject.toml for this.
colorama==0.4.5
-distlib==0.3.5
+distlib==0.3.6
distro==1.7.0
msgpack==1.0.4
packaging==21.3
-pep517==0.12.0
+pep517==0.13.0
platformdirs==2.5.2
pyparsing==3.0.9
requests==2.28.1
certifi==2022.06.15
chardet==5.0.0
- idna==3.3
+ idna==3.4
urllib3==1.26.10
rich==12.5.1
pygments==2.12.0
@@ -18,6 +18,6 @@ rich==12.5.1
resolvelib==0.8.1
setuptools==44.0.0
six==1.16.0
-tenacity==8.0.1
+tenacity==8.1.0
tomli==2.0.1
webencodings==0.5.1