Skip to content

Commit 528fe53

Browse files
committed
Ensure that 'backports' is included on older Pythons
1 parent fd5f55e commit 528fe53

File tree

7 files changed

+21
-5
lines changed

7 files changed

+21
-5
lines changed

pkg_resources/_vendor/backports/__init__.py

Whitespace-only changes.

pkg_resources/_vendor/jaraco/context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515

1616
if sys.version_info < (3, 12):
17-
from backports import tarfile
17+
from pkg_resources.extern.backports import tarfile
1818
else:
1919
import tarfile
2020

pkg_resources/extern/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,6 @@ def install(self):
7676
'jaraco',
7777
'importlib_resources',
7878
'more_itertools',
79+
'backports',
7980
)
8081
VendorImporter(__name__, names).install()

setuptools/_vendor/backports/__init__.py

Whitespace-only changes.

setuptools/_vendor/jaraco/context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515

1616
if sys.version_info < (3, 12):
17-
from backports import tarfile
17+
from setuptools.extern.backports import tarfile
1818
else:
1919
import tarfile
2020

setuptools/extern/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,6 @@ def install(self):
8080
'jaraco',
8181
'typing_extensions',
8282
'tomli',
83+
'backports',
8384
)
8485
VendorImporter(__name__, names, 'setuptools._vendor').install()

tools/vendored.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def rewrite_jaraco_text(pkg_files, new_root):
4242
file.write_text(text)
4343

4444

45-
def repair_jaraco_namespace(pkg_files):
45+
def repair_namespace(pkg_files):
4646
# required for zip-packaged setuptools #3084
4747
pkg_files.joinpath('__init__.py').write_text('')
4848

@@ -57,6 +57,16 @@ def rewrite_jaraco_functools(pkg_files, new_root):
5757
file.write_text(text)
5858

5959

60+
def rewrite_jaraco_context(pkg_files, new_root):
61+
"""
62+
Rewrite imports in jaraco.context to redirect to vendored copies.
63+
"""
64+
for file in pkg_files.glob('context.py'):
65+
text = file.read_text()
66+
text = re.sub(r' (backports)', rf' {new_root}.\1', text)
67+
file.write_text(text)
68+
69+
6070
def rewrite_importlib_resources(pkg_files, new_root):
6171
"""
6272
Rewrite imports in importlib_resources to redirect to vendored copies.
@@ -132,9 +142,11 @@ def update_pkg_resources():
132142
vendor = Path('pkg_resources/_vendor')
133143
install(vendor)
134144
rewrite_packaging(vendor / 'packaging', 'pkg_resources.extern')
135-
repair_jaraco_namespace(vendor / 'jaraco')
145+
repair_namespace(vendor / 'jaraco')
146+
repair_namespace(vendor / 'backports')
136147
rewrite_jaraco_text(vendor / 'jaraco/text', 'pkg_resources.extern')
137148
rewrite_jaraco_functools(vendor / 'jaraco/functools', 'pkg_resources.extern')
149+
rewrite_jaraco_context(vendor / 'jaraco', 'pkg_resources.extern')
138150
rewrite_importlib_resources(vendor / 'importlib_resources', 'pkg_resources.extern')
139151
rewrite_more_itertools(vendor / "more_itertools")
140152
rewrite_platformdirs(vendor / "platformdirs")
@@ -144,9 +156,11 @@ def update_setuptools():
144156
vendor = Path('setuptools/_vendor')
145157
install(vendor)
146158
rewrite_packaging(vendor / 'packaging', 'setuptools.extern')
147-
repair_jaraco_namespace(vendor / 'jaraco')
159+
repair_namespace(vendor / 'jaraco')
160+
repair_namespace(vendor / 'backports')
148161
rewrite_jaraco_text(vendor / 'jaraco/text', 'setuptools.extern')
149162
rewrite_jaraco_functools(vendor / 'jaraco/functools', 'setuptools.extern')
163+
rewrite_jaraco_context(vendor / 'jaraco', 'setuptools.extern')
150164
rewrite_importlib_resources(vendor / 'importlib_resources', 'setuptools.extern')
151165
rewrite_importlib_metadata(vendor / 'importlib_metadata', 'setuptools.extern')
152166
rewrite_more_itertools(vendor / "more_itertools")

0 commit comments

Comments
 (0)