Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions news/10020.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove unused optional ``tornado`` import in vendored ``tenacity`` to prevent old versions of Tornado from breaking pip.
10 changes: 6 additions & 4 deletions src/pip/_vendor/tenacity/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@
except ImportError:
iscoroutinefunction = None

try:
import tornado
except ImportError:
tornado = None
# Replace a conditional import with a hard-coded None so that pip does
# not attempt to use tornado even if it is present in the environment.
# If tornado is non-None, tenacity will attempt to execute some code
# that is sensitive to the version of tornado, which could break pip
# if an old version is found.
tornado = None

import sys
import threading
Expand Down
21 changes: 21 additions & 0 deletions tools/vendoring/patches/tenacity.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
diff --git a/src/pip/_vendor/tenacity/__init__.py b/src/pip/_vendor/tenacity/__init__.py
index 5f8cb5058..42e9d8940 100644
--- a/src/pip/_vendor/tenacity/__init__.py
+++ b/src/pip/_vendor/tenacity/__init__.py
@@ -22,10 +22,12 @@ try:
except ImportError:
iscoroutinefunction = None

-try:
- import tornado
-except ImportError:
- tornado = None
+# Replace a conditional import with a hard-coded None so that pip does
+# not attempt to use tornado even if it is present in the environment.
+# If tornado is non-None, tenacity will attempt to execute some code
+# that is sensitive to the version of tornado, which could break pip
+# if an old version is found.
+tornado = None

import sys
import threading