pyproject-api 1.11.6__tar.gz → 1.11.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.github/workflows/release.yaml +2 -2
  2. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/PKG-INFO +1 -1
  3. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/_backend.py +2 -1
  4. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/_version.py +2 -2
  5. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/test_frontend.py +16 -6
  6. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.github/FUNDING.yaml +0 -0
  7. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.github/SECURITY.md +0 -0
  8. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.github/dependabot.yaml +0 -0
  9. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.github/release.yaml +0 -0
  10. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.github/workflows/check.yaml +0 -0
  11. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.gitignore +0 -0
  12. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.pre-commit-config.yaml +0 -0
  13. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/.readthedocs.yml +0 -0
  14. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/CODE_OF_CONDUCT.md +0 -0
  15. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/LICENSE +0 -0
  16. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/README.md +0 -0
  17. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/docs/api.rst +0 -0
  18. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/docs/conf.py +0 -0
  19. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/docs/index.rst +0 -0
  20. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/pyproject.toml +0 -0
  21. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/__init__.py +0 -0
  22. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/__main__.py +0 -0
  23. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/_backend.pyi +0 -0
  24. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/_frontend.py +0 -0
  25. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/_util.py +0 -0
  26. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/_via_fresh_subprocess.py +0 -0
  27. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/src/pyproject_api/py.typed +0 -0
  28. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/_build_sdist.py +0 -0
  29. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/demo_pkg_inline/build.py +0 -0
  30. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/demo_pkg_inline/pyproject.toml +0 -0
  31. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/test_backend.py +0 -0
  32. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/test_frontend_setuptools.py +0 -0
  33. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/test_main.py +0 -0
  34. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/test_util.py +0 -0
  35. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tests/test_version.py +0 -0
  36. {pyproject_api-1.11.6 → pyproject_api-1.11.7}/tox.toml +0 -0
@@ -27,7 +27,7 @@ jobs:
27
27
  - name: Build package
28
28
  run: uv build --python 3.15 --python-preference only-managed --sdist --wheel . --out-dir dist
29
29
  - name: Store the distribution packages
30
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
30
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
31
31
  with:
32
32
  name: ${{ env.dists-artifact-name }}
33
33
  path: dist/*
@@ -43,7 +43,7 @@ jobs:
43
43
  id-token: write
44
44
  steps:
45
45
  - name: Download all the dists
46
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
46
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
47
47
  with:
48
48
  name: ${{ env.dists-artifact-name }}
49
49
  path: dist/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pyproject-api
3
- Version: 1.11.6
3
+ Version: 1.11.7
4
4
  Summary: API to interact with the python pyproject.toml based projects
5
5
  Project-URL: Changelog, https://github.com/tox-dev/pyproject-api/releases
6
6
  Project-URL: Homepage, https://pyproject-api.readthedocs.io
@@ -23,7 +23,8 @@ class BackendProxy:
23
23
  self.backend_object = backend_obj
24
24
  backend = importlib.import_module(self.backend_module)
25
25
  if self.backend_object:
26
- backend = getattr(backend, self.backend_object)
26
+ for name in self.backend_object.split("."):
27
+ backend = getattr(backend, name)
27
28
  self.backend = backend
28
29
 
29
30
  def __call__(self, name, *args, **kwargs):
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.11.6'
22
- __version_tuple__ = version_tuple = (1, 11, 6)
21
+ __version__ = version = '1.11.7'
22
+ __version_tuple__ = version_tuple = (1, 11, 7)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -232,19 +232,31 @@ def test_create_args_from_folder_rejects_bad_build_system_type(tmp_path: Path, t
232
232
  SubprocessFrontend.create_args_from_folder(tmp_path)
233
233
 
234
234
 
235
- def test_backend_obj(tmp_path: Path) -> None:
236
- toml = """
235
+ @pytest.mark.parametrize(
236
+ "backend_obj",
237
+ [
238
+ pytest.param("backend", id="attribute"),
239
+ pytest.param("backend:", id="trailing-colon"),
240
+ pytest.param("holder.backend", id="nested"),
241
+ pytest.param("holder.nested.backend", id="deeply-nested"),
242
+ ],
243
+ )
244
+ def test_backend_obj(tmp_path: Path, backend_obj: str) -> None:
245
+ toml = f"""
237
246
  [build-system]
238
247
  requires=[]
239
- build-backend = "build.api:backend:"
248
+ build-backend = "build.api:{backend_obj}"
240
249
  backend-path=["."]
241
250
  """
242
251
  api = """
252
+ from types import SimpleNamespace
253
+
243
254
  class A:
244
255
  def get_requires_for_build_sdist(self, config_settings=None):
245
256
  return ["a"]
246
257
 
247
258
  backend = A()
259
+ holder = SimpleNamespace(backend=backend, nested=SimpleNamespace(backend=backend))
248
260
  """
249
261
  (tmp_path / "pyproject.toml").write_text(dedent(toml))
250
262
  build = tmp_path / "build"
@@ -253,9 +265,7 @@ def test_backend_obj(tmp_path: Path) -> None:
253
265
  (build / "api.py").write_text(dedent(api))
254
266
  frontend = SubprocessFrontend(*SubprocessFrontend.create_args_from_folder(tmp_path)[:-1])
255
267
  result = frontend.get_requires_for_build_sdist()
256
- for left, right in zip(result.requires, (Requirement("a"),), strict=False):
257
- assert isinstance(left, Requirement)
258
- assert str(left) == str(right)
268
+ assert result.requires == (Requirement("a"),)
259
269
 
260
270
 
261
271
  @pytest.mark.parametrize("of_type", ["wheel", "sdist"])
File without changes
File without changes
File without changes