summaryrefslogtreecommitdiff
path: root/tools/vendored.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2022-02-12 04:45:13 -0500
committerJason R. Coombs <jaraco@jaraco.com>2022-02-12 04:45:13 -0500
commit31850d47e77a6c181c647b6ec5a14a2ad7091cea (patch)
tree084996a05ed2e2b3ae0599e2341ea39a910a3f4b /tools/vendored.py
parent740c3b13427aac1b353c0ad6f776d4c6f2655957 (diff)
parentf38d13906be5f3cfe3dadc0333c5ef01badaf777 (diff)
downloadpython-setuptools-git-31850d47e77a6c181c647b6ec5a14a2ad7091cea.tar.gz
Merge branch 'main' into debt/remove-pkg-resources
Diffstat (limited to 'tools/vendored.py')
-rw-r--r--tools/vendored.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/vendored.py b/tools/vendored.py
index 74478902..8a122ad7 100644
--- a/tools/vendored.py
+++ b/tools/vendored.py
@@ -74,6 +74,21 @@ def rewrite_importlib_metadata(pkg_files, new_root):
file.write_text(text)
+def rewrite_more_itertools(pkg_files: Path):
+ """
+ Defer import of concurrent.futures. Workaround for #3090.
+ """
+ more_file = pkg_files.joinpath('more.py')
+ text = more_file.read_text()
+ text = re.sub(r'^.*concurrent.futures.*?\n', '', text, flags=re.MULTILINE)
+ text = re.sub(
+ 'ThreadPoolExecutor',
+ '__import__("concurrent.futures").futures.ThreadPoolExecutor',
+ text,
+ )
+ more_file.write_text(text)
+
+
def clean(vendor):
"""
Remove all files out of the vendor directory except the meta
@@ -106,6 +121,7 @@ def update_pkg_resources():
rewrite_jaraco_text(vendor / 'jaraco/text', 'pkg_resources.extern')
rewrite_jaraco(vendor / 'jaraco', 'pkg_resources.extern')
rewrite_importlib_resources(vendor / 'importlib_resources', 'pkg_resources.extern')
+ rewrite_more_itertools(vendor / "more_itertools")
def update_setuptools():
@@ -116,6 +132,7 @@ def update_setuptools():
rewrite_jaraco(vendor / 'jaraco', 'setuptools.extern')
rewrite_importlib_resources(vendor / 'importlib_resources', 'setuptools.extern')
rewrite_importlib_metadata(vendor / 'importlib_metadata', 'setuptools.extern')
+ rewrite_more_itertools(vendor / "more_itertools")
__name__ == '__main__' and update_vendored()