Skip to content

Commit edffb70

Browse files
committed
Declare the dependencies and update vendoring routine for setuptools (only) to simply install the dependencies to the _vendor folder.
1 parent 3accd5c commit edffb70

File tree

4 files changed

+48
-14
lines changed

4 files changed

+48
-14
lines changed

pyproject.toml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,16 @@ classifiers = [
2424
]
2525
keywords = ["CPAN PyPI distutils eggs package management"]
2626
requires-python = ">=3.8"
27-
dependencies = []
27+
dependencies = [
28+
"packaging>=24",
29+
"ordered-set>=3.1.1",
30+
"more_itertools>=8.8",
31+
"jaraco.text>=3.7",
32+
"importlib_resources>=5.10.2",
33+
"importlib_metadata>=6",
34+
"tomli>=2.0.1",
35+
"wheel>=0.43.0",
36+
]
2837

2938
[project.urls]
3039
Source = "https://github.com/pypa/setuptools"

setuptools/extern/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,17 @@ def install(self):
7777
# cog.outl(f"names = (\n{names}\n)")
7878
# ]]]
7979
names = (
80-
'backports',
80+
'autocommand',
8181
'importlib_metadata',
8282
'importlib_resources',
83+
'inflect',
8384
'jaraco',
8485
'more_itertools',
8586
'ordered_set',
8687
'packaging',
8788
'tomli',
89+
'typeguard',
90+
'typing_extensions',
8891
'wheel',
8992
'zipp',
9093
)

tools/vendored.py

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import subprocess
55
from textwrap import dedent
66

7+
from jaraco.packaging import metadata
78
from path import Path
89

910

@@ -13,7 +14,7 @@ def remove_all(paths):
1314

1415

1516
def update_vendored():
16-
update_pkg_resources()
17+
# update_pkg_resources()
1718
update_setuptools()
1819

1920

@@ -207,19 +208,37 @@ def update_pkg_resources():
207208
rewrite_platformdirs(vendor / "platformdirs")
208209

209210

211+
def load_deps():
212+
"""
213+
Read the dependencies from `.`.
214+
"""
215+
return metadata.load('.').get_all('Requires-Dist')
216+
217+
218+
def install_deps(deps, vendor):
219+
"""
220+
Install the deps to vendor.
221+
"""
222+
install_args = [
223+
sys.executable,
224+
'-m',
225+
'pip',
226+
'install',
227+
'--target',
228+
str(vendor),
229+
'--python-version',
230+
'3.8',
231+
'--only-binary',
232+
':all:',
233+
] + list(deps)
234+
subprocess.check_call(install_args)
235+
236+
210237
def update_setuptools():
211238
vendor = Path('setuptools/_vendor')
212-
install(vendor)
213-
rewrite_packaging(vendor / 'packaging', 'setuptools.extern')
214-
repair_namespace(vendor / 'jaraco')
215-
repair_namespace(vendor / 'backports')
216-
rewrite_jaraco_text(vendor / 'jaraco/text', 'setuptools.extern')
217-
rewrite_jaraco_functools(vendor / 'jaraco/functools', 'setuptools.extern')
218-
rewrite_jaraco_context(vendor / 'jaraco', 'setuptools.extern')
219-
rewrite_importlib_resources(vendor / 'importlib_resources', 'setuptools.extern')
220-
rewrite_importlib_metadata(vendor / 'importlib_metadata', 'setuptools.extern')
221-
rewrite_more_itertools(vendor / "more_itertools")
222-
rewrite_wheel(vendor / "wheel")
239+
deps = load_deps()
240+
clean(vendor)
241+
install_deps(deps, vendor)
223242

224243

225244
def yield_top_level(name):

tox.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ allowlist_externals = git, sh
7575
deps =
7676
path
7777
cogapp
78+
jaraco.packaging
79+
# workaround for pypa/pyproject-hooks#192
80+
pyproject-hooks<1.1
7881
commands =
7982
vendor: python -m tools.vendored
8083
sh -c "git grep -l -F '\[\[\[cog' | xargs -t cog -I {toxinidir} -r" # update `*.extern`

0 commit comments

Comments
 (0)