Skip to content

Commit c99f58c

Browse files
authored
build: pep517 -> pyproject-hooks (upstream project renamed) (#539)
1 parent 76d90b9 commit c99f58c

File tree

8 files changed

+47
-43
lines changed

8 files changed

+47
-43
lines changed

CHANGELOG.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,18 @@ Changelog
66
Unreleased
77
==========
88

9+
- Replace ``pep517`` dependency with ``pyproject_hooks``,
10+
into which ``pep517`` has been renamed
11+
(`PR #539`_, Fixes `#529`_)
912
- Change build backend from ``setuptools`` to ``flit``
1013
(`PR #470`_, Fixes `#394`_)
1114
- Dropped support for Python 3.6 (`PR #532`_)
1215

1316
.. _PR #470: https://github.com/pypa/build/pull/470
1417
.. _PR #532: https://github.com/pypa/build/pull/532
1518
.. _#394: https://github.com/pypa/build/issues/394
16-
19+
.. _PR #539: https://github.com/pypa/build/pull/539
20+
.. _#529: https://github.com/pypa/build/issues/529
1721

1822
0.9.0 (2022-10-27)
1923
==================

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
[![PyPI version](https://badge.fury.io/py/build.svg)](https://pypi.org/project/build/)
1010
[![Discord](https://img.shields.io/discord/803025117553754132?label=Discord%20chat%20%23build&style=flat-square)](https://discord.gg/pypa)
1111

12-
A simple, correct PEP 517 build frontend.
12+
A simple, correct Python build frontend.
1313

1414
See the [documentation](https://pypa-build.readthedocs.io/en/latest/) for more information.
1515

pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build-backend = "flit_core.buildapi"
55
[project]
66
name = "build"
77
version = "0.9.0"
8-
description = "A simple, correct PEP 517 build frontend"
8+
description = "A simple, correct Python build frontend"
99
readme = "README.md"
1010
requires-python = ">= 3.7"
1111
license.file = "LICENSE"
@@ -32,12 +32,12 @@ urls.changelog = "https://pypa-build.readthedocs.io/en/stable/changelog.html"
3232

3333
dependencies = [
3434
"packaging >= 19.0",
35-
"pep517 >= 0.9.1",
35+
"pyproject_hooks",
3636
# not actually a runtime dependency, only supplied as there is not "recommended dependency" support
3737
'colorama; os_name == "nt"',
3838
'importlib-metadata >= 0.22; python_version < "3.8"',
3939
# toml can be used instead -- in case it makes bootstrapping easier
40-
'tomli >= 1.0.0; python_version < "3.11"',
40+
'tomli >= 1.1.0; python_version < "3.11"',
4141
]
4242

4343
[project.optional-dependencies]
@@ -125,7 +125,7 @@ enable_error_code = ["ignore-without-code", "truthy-bool", "redundant-expr"]
125125
[[tool.mypy.overrides]]
126126
module = [
127127
"colorama", # Optional dependency
128-
"pep517.*", # Untyped
128+
"pyproject_hooks.*", # Untyped
129129
"virtualenv", # Optional dependency
130130
]
131131
ignore_missing_imports = true

src/build/__init__.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from collections.abc import Iterator, Set
2626
from typing import Any, Callable, Mapping, MutableMapping, Optional, Sequence, Tuple, Type, Union
2727

28-
import pep517.wrappers
28+
import pyproject_hooks
2929

3030

3131
TOMLDecodeError: type[Exception]
@@ -243,7 +243,7 @@ def __init__(
243243
srcdir: PathType,
244244
python_executable: str = sys.executable,
245245
scripts_dir: str | None = None,
246-
runner: RunnerType = pep517.wrappers.default_subprocess_runner,
246+
runner: RunnerType = pyproject_hooks.default_subprocess_runner,
247247
) -> None:
248248
"""
249249
:param srcdir: The source directory
@@ -282,7 +282,7 @@ def __init__(
282282
self._backend = self._build_system['build-backend']
283283
self._scripts_dir = scripts_dir
284284
self._hook_runner = runner
285-
self._hook = pep517.wrappers.Pep517HookCaller(
285+
self._hook = pyproject_hooks.BuildBackendHookCaller(
286286
self.srcdir,
287287
self._backend,
288288
backend_path=self._build_system.get('backend-path'),
@@ -388,7 +388,7 @@ def prepare(
388388
_allow_fallback=False,
389389
)
390390
except BuildBackendException as exception:
391-
if isinstance(exception.exception, pep517.wrappers.HookMissing):
391+
if isinstance(exception.exception, pyproject_hooks.HookMissing):
392392
return None
393393
raise
394394

@@ -464,7 +464,7 @@ def _call_backend(
464464
def _handle_backend(self, hook: str) -> Iterator[None]:
465465
try:
466466
yield
467-
except pep517.wrappers.BackendUnavailable as exception:
467+
except pyproject_hooks.BackendUnavailable as exception:
468468
raise BuildBackendException( # noqa: B904 # use raise from
469469
exception,
470470
f"Backend '{self._backend}' is not available.",

src/build/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def main_parser() -> argparse.ArgumentParser:
260260
description=textwrap.indent(
261261
textwrap.dedent(
262262
'''
263-
A simple, correct PEP 517 build frontend.
263+
A simple, correct Python build frontend.
264264
265265
By default, a source distribution (sdist) is built from {srcdir}
266266
and a binary distribution (wheel) is built from the sdist.

src/build/util.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import sys
88
import tempfile
99

10-
import pep517
10+
import pyproject_hooks
1111

1212
import build
1313
import build.env
@@ -42,7 +42,7 @@ def project_wheel_metadata(
4242
"""
4343
builder = build.ProjectBuilder(
4444
os.fspath(srcdir),
45-
runner=pep517.quiet_subprocess_runner,
45+
runner=pyproject_hooks.quiet_subprocess_runner,
4646
)
4747

4848
if not isolated:

tests/constraints.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
importlib-metadata==0.22
22
packaging==19.0
3-
pep517==0.9.1
3+
pyproject_hooks==1.0
44
setuptools==42.0.0; python_version < "3.10"
55
setuptools==56.0.0; python_version >= "3.10"
66
toml==0.10.0
7-
tomli==1.0.0
7+
tomli==1.1.0
88
virtualenv==20.0.35
99
wheel==0.36.0

tests/test_projectbuilder.py

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import sys
99
import textwrap
1010

11-
import pep517.wrappers
11+
import pyproject_hooks
1212
import pytest
1313

1414
import build
@@ -185,25 +185,25 @@ def test_bad_project(package_test_no_project):
185185

186186

187187
def test_init(mocker, package_test_flit, package_legacy, test_no_permission, package_test_bad_syntax):
188-
mocker.patch('pep517.wrappers.Pep517HookCaller')
188+
mocker.patch('pyproject_hooks.BuildBackendHookCaller')
189189

190190
# correct flit pyproject.toml
191191
builder = build.ProjectBuilder(package_test_flit)
192-
pep517.wrappers.Pep517HookCaller.assert_called_with(
192+
pyproject_hooks.BuildBackendHookCaller.assert_called_with(
193193
package_test_flit, 'flit_core.buildapi', backend_path=None, python_executable=sys.executable, runner=builder._runner
194194
)
195-
pep517.wrappers.Pep517HookCaller.reset_mock()
195+
pyproject_hooks.BuildBackendHookCaller.reset_mock()
196196

197197
# custom python
198198
builder = build.ProjectBuilder(package_test_flit, python_executable='some-python')
199-
pep517.wrappers.Pep517HookCaller.assert_called_with(
199+
pyproject_hooks.BuildBackendHookCaller.assert_called_with(
200200
package_test_flit, 'flit_core.buildapi', backend_path=None, python_executable='some-python', runner=builder._runner
201201
)
202-
pep517.wrappers.Pep517HookCaller.reset_mock()
202+
pyproject_hooks.BuildBackendHookCaller.reset_mock()
203203

204204
# FileNotFoundError
205205
builder = build.ProjectBuilder(package_legacy)
206-
pep517.wrappers.Pep517HookCaller.assert_called_with(
206+
pyproject_hooks.BuildBackendHookCaller.assert_called_with(
207207
package_legacy,
208208
'setuptools.build_meta:__legacy__',
209209
backend_path=None,
@@ -263,15 +263,15 @@ def test_build_missing_backend(packages_path, distribution, tmpdir):
263263

264264

265265
def test_check_dependencies(mocker, package_test_flit):
266-
mocker.patch('pep517.wrappers.Pep517HookCaller.get_requires_for_build_sdist')
267-
mocker.patch('pep517.wrappers.Pep517HookCaller.get_requires_for_build_wheel')
266+
mocker.patch('pyproject_hooks.BuildBackendHookCaller.get_requires_for_build_sdist')
267+
mocker.patch('pyproject_hooks.BuildBackendHookCaller.get_requires_for_build_wheel')
268268

269269
builder = build.ProjectBuilder(package_test_flit)
270270

271271
side_effects = [
272272
[],
273273
['something'],
274-
pep517.wrappers.BackendUnavailable,
274+
pyproject_hooks.BackendUnavailable,
275275
]
276276

277277
builder._hook.get_requires_for_build_sdist.side_effect = copy.copy(side_effects)
@@ -293,7 +293,7 @@ def test_check_dependencies(mocker, package_test_flit):
293293

294294

295295
def test_build(mocker, package_test_flit, tmp_dir):
296-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
296+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
297297

298298
builder = build.ProjectBuilder(package_test_flit)
299299

@@ -314,37 +314,37 @@ def test_build(mocker, package_test_flit, tmp_dir):
314314

315315

316316
def test_default_backend(mocker, package_legacy):
317-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
317+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
318318

319319
builder = build.ProjectBuilder(package_legacy)
320320

321321
assert builder._build_system == DEFAULT_BACKEND
322322

323323

324324
def test_missing_backend(mocker, package_test_no_backend):
325-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
325+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
326326

327327
builder = build.ProjectBuilder(package_test_no_backend)
328328

329329
assert builder._build_system == {'requires': [], 'build-backend': DEFAULT_BACKEND['build-backend']}
330330

331331

332332
def test_missing_requires(mocker, package_test_no_requires):
333-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
333+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
334334

335335
with pytest.raises(build.BuildException):
336336
build.ProjectBuilder(package_test_no_requires)
337337

338338

339339
def test_build_system_typo(mocker, package_test_typo):
340-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
340+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
341341

342342
with pytest.warns(build.TypoWarning):
343343
build.ProjectBuilder(package_test_typo)
344344

345345

346346
def test_missing_outdir(mocker, tmp_dir, package_test_flit):
347-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
347+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
348348

349349
builder = build.ProjectBuilder(package_test_flit)
350350
builder._hook.build_sdist.return_value = 'dist.tar.gz'
@@ -356,7 +356,7 @@ def test_missing_outdir(mocker, tmp_dir, package_test_flit):
356356

357357

358358
def test_relative_outdir(mocker, tmp_dir, package_test_flit):
359-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
359+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
360360

361361
builder = build.ProjectBuilder(package_test_flit)
362362
builder._hook.build_sdist.return_value = 'dist.tar.gz'
@@ -367,7 +367,7 @@ def test_relative_outdir(mocker, tmp_dir, package_test_flit):
367367

368368

369369
def test_build_not_dir_outdir(mocker, tmp_dir, package_test_flit):
370-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
370+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
371371

372372
builder = build.ProjectBuilder(package_test_flit)
373373
builder._hook.build_sdist.return_value = 'dist.tar.gz'
@@ -437,7 +437,7 @@ def test_build_with_dep_on_console_script(tmp_path, demo_pkg_inline, capfd, mock
437437

438438

439439
def test_prepare(mocker, tmp_dir, package_test_flit):
440-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
440+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
441441

442442
builder = build.ProjectBuilder(package_test_flit)
443443
builder._hook.prepare_metadata_for_build_wheel.return_value = 'dist-1.0.dist-info'
@@ -447,17 +447,17 @@ def test_prepare(mocker, tmp_dir, package_test_flit):
447447

448448

449449
def test_prepare_no_hook(mocker, tmp_dir, package_test_flit):
450-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
450+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
451451

452452
builder = build.ProjectBuilder(package_test_flit)
453-
failure = pep517.wrappers.HookMissing('prepare_metadata_for_build_wheel')
453+
failure = pyproject_hooks.HookMissing('prepare_metadata_for_build_wheel')
454454
builder._hook.prepare_metadata_for_build_wheel.side_effect = failure
455455

456456
assert builder.prepare('wheel', tmp_dir) is None
457457

458458

459459
def test_prepare_error(mocker, tmp_dir, package_test_flit):
460-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
460+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
461461

462462
builder = build.ProjectBuilder(package_test_flit)
463463
builder._hook.prepare_metadata_for_build_wheel.side_effect = Exception
@@ -467,7 +467,7 @@ def test_prepare_error(mocker, tmp_dir, package_test_flit):
467467

468468

469469
def test_prepare_not_dir_outdir(mocker, tmp_dir, package_test_flit):
470-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
470+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
471471

472472
builder = build.ProjectBuilder(package_test_flit)
473473

@@ -479,7 +479,7 @@ def test_prepare_not_dir_outdir(mocker, tmp_dir, package_test_flit):
479479

480480

481481
def test_no_outdir_single(mocker, tmp_dir, package_test_flit):
482-
mocker.patch('pep517.wrappers.Pep517HookCaller.prepare_metadata_for_build_wheel', return_value='')
482+
mocker.patch('pyproject_hooks.BuildBackendHookCaller.prepare_metadata_for_build_wheel', return_value='')
483483

484484
builder = build.ProjectBuilder(package_test_flit)
485485

@@ -490,7 +490,7 @@ def test_no_outdir_single(mocker, tmp_dir, package_test_flit):
490490

491491

492492
def test_no_outdir_multiple(mocker, tmp_dir, package_test_flit):
493-
mocker.patch('pep517.wrappers.Pep517HookCaller.prepare_metadata_for_build_wheel', return_value='')
493+
mocker.patch('pyproject_hooks.BuildBackendHookCaller.prepare_metadata_for_build_wheel', return_value='')
494494

495495
builder = build.ProjectBuilder(package_test_flit)
496496

@@ -564,7 +564,7 @@ def mock_tomli_not_available(mocker):
564564

565565
@pytest.mark.skipif(sys.version_info >= (3, 11), reason='No need to test old toml support on 3.11+')
566566
def test_toml_instead_of_tomli(mocker, mock_tomli_not_available, tmp_dir, package_test_flit):
567-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
567+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
568568

569569
builder = build.ProjectBuilder(package_test_flit)
570570
builder._hook.build_sdist.return_value = 'dist.tar.gz'
@@ -575,7 +575,7 @@ def test_toml_instead_of_tomli(mocker, mock_tomli_not_available, tmp_dir, packag
575575

576576

577577
def test_log(mocker, caplog, package_test_flit):
578-
mocker.patch('pep517.wrappers.Pep517HookCaller', autospec=True)
578+
mocker.patch('pyproject_hooks.BuildBackendHookCaller', autospec=True)
579579
mocker.patch('build.ProjectBuilder._call_backend', return_value='some_path')
580580
caplog.set_level(logging.DEBUG)
581581

0 commit comments

Comments
 (0)