Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-poetry-core for openSUSE:Factory checked in at 2022-03-20 20:54:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-poetry-core (Old) and /work/SRC/openSUSE:Factory/.python-poetry-core.new.25692 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-poetry-core" Sun Mar 20 20:54:40 2022 rev:6 rq:962657 version:1.0.8 Changes: -------- --- /work/SRC/openSUSE:Factory/python-poetry-core/python-poetry-core.changes 2021-12-09 19:45:16.977123830 +0100 +++ /work/SRC/openSUSE:Factory/.python-poetry-core.new.25692/python-poetry-core.changes 2022-03-20 20:54:51.994467583 +0100 @@ -1,0 +2,6 @@ +Fri Mar 18 11:05:18 UTC 2022 - Ben Greiner <c...@bnavigator.de> + +- Update to 1.0.8 + * Add hooks according to PEP-660 for editable installs (#257). + +------------------------------------------------------------------- Old: ---- poetry-core-1.0.7-gh.tar.gz New: ---- poetry-core-1.0.8-gh.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-poetry-core.spec ++++++ --- /var/tmp/diff_new_pack.70zR87/_old 2022-03-20 20:54:52.698468596 +0100 +++ /var/tmp/diff_new_pack.70zR87/_new 2022-03-20 20:54:52.706468608 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-poetry-core # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define skip_python2 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-poetry-core -Version: 1.0.7 +Version: 1.0.8 Release: 0 Summary: Python poetry core utilities License: MIT ++++++ poetry-core-1.0.7-gh.tar.gz -> poetry-core-1.0.8-gh.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-core-1.0.7/CHANGELOG.md new/poetry-core-1.0.8/CHANGELOG.md --- old/poetry-core-1.0.7/CHANGELOG.md 2021-10-04 18:56:23.000000000 +0200 +++ new/poetry-core-1.0.8/CHANGELOG.md 2022-02-28 05:15:29.000000000 +0100 @@ -1,5 +1,12 @@ # Change Log +## [1.0.8] - 2022-02-27 + +### Added + +- Add hooks according to PEP-660 for editable installs ([#257](https://github.com/python-poetry/poetry-core/pull/257)). + + ## [1.0.7] - 2021-10-04 ### Fixed @@ -179,7 +186,8 @@ - Fixed support for stub-only packages ([#28](https://github.com/python-poetry/core/pull/28)). -[Unreleased]: https://github.com/python-poetry/poetry-core/compare/1.0.7...1.0 +[Unreleased]: https://github.com/python-poetry/poetry-core/compare/1.0.8...1.0 +[1.0.8]: https://github.com/python-poetry/poetry-core/releases/tag/1.0.8 [1.0.7]: https://github.com/python-poetry/poetry-core/releases/tag/1.0.7 [1.0.6]: https://github.com/python-poetry/poetry-core/releases/tag/1.0.6 [1.0.5]: https://github.com/python-poetry/poetry-core/releases/tag/1.0.5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-core-1.0.7/poetry/core/__init__.py new/poetry-core-1.0.8/poetry/core/__init__.py --- old/poetry-core-1.0.7/poetry/core/__init__.py 2021-10-04 18:56:23.000000000 +0200 +++ new/poetry-core-1.0.8/poetry/core/__init__.py 2022-02-28 05:15:29.000000000 +0100 @@ -7,7 +7,7 @@ # noinspection PyUnresolvedReferences from pathlib2 import Path -__version__ = "1.0.7" +__version__ = "1.0.8" __vendor_site__ = (Path(__file__).parent / "_vendor").as_posix() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-core-1.0.7/poetry/core/masonry/api.py new/poetry-core-1.0.8/poetry/core/masonry/api.py --- old/poetry-core-1.0.7/poetry/core/masonry/api.py 2021-10-04 18:56:23.000000000 +0200 +++ new/poetry-core-1.0.8/poetry/core/masonry/api.py 2022-02-28 05:15:29.000000000 +0100 @@ -77,3 +77,15 @@ path = SdistBuilder(poetry).build(Path(sdist_directory)) return unicode(path.name) + + +def build_editable( + wheel_directory, config_settings=None, metadata_directory=None, +): # type: (str, Optional[Dict[str, Any]], Optional[str]) -> str + poetry = Factory().create_poetry(Path(".").resolve(), with_dev=False) + + return unicode(WheelBuilder.make_in(poetry, Path(wheel_directory), editable=True)) + + +get_requires_for_build_editable = get_requires_for_build_wheel +prepare_metadata_for_build_editable = prepare_metadata_for_build_wheel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-core-1.0.7/poetry/core/masonry/builders/wheel.py new/poetry-core-1.0.8/poetry/core/masonry/builders/wheel.py --- old/poetry-core-1.0.7/poetry/core/masonry/builders/wheel.py 2021-10-04 18:56:23.000000000 +0200 +++ new/poetry-core-1.0.8/poetry/core/masonry/builders/wheel.py 2022-02-28 05:15:29.000000000 +0100 @@ -31,6 +31,7 @@ from ..utils.helpers import escape_name from ..utils.helpers import escape_version from ..utils.helpers import normalize_file_permissions +from ..utils.package_include import PackageInclude from .builder import Builder from .sdist import SdistBuilder @@ -52,8 +53,8 @@ format = "wheel" def __init__( - self, poetry, target_dir=None, original=None, executable=None - ): # type: ("Poetry", Optional[Path], Optional[Path], Optional[str]) -> None + self, poetry, target_dir=None, original=None, executable=None, editable=False, + ): # type: ("Poetry", Optional[Path], Optional[Path], Optional[str], bool) -> None super(WheelBuilder, self).__init__(poetry, executable=executable) self._records = [] @@ -61,13 +62,18 @@ self._target_dir = target_dir or (self._poetry.file.parent / "dist") if original: self._original_path = original.file.parent + self._editable = editable @classmethod def make_in( - cls, poetry, directory=None, original=None, executable=None - ): # type: ("Poetry", Path, Path, str) -> str + cls, poetry, directory=None, original=None, executable=None, editable=False, + ): # type: ("Poetry", Optional[Path], Optional[Path], Optional[str], bool) -> str wb = WheelBuilder( - poetry, target_dir=directory, original=original, executable=executable + poetry, + target_dir=directory, + original=original, + executable=executable, + editable=editable, ) wb.build() @@ -95,12 +101,16 @@ with zipfile.ZipFile( fd_file, mode="w", compression=zipfile.ZIP_DEFLATED ) as zip_file: - if not self._poetry.package.build_should_generate_setup(): - self._build(zip_file) - self._copy_module(zip_file) + if not self._editable: + if not self._poetry.package.build_should_generate_setup(): + self._build(zip_file) + self._copy_module(zip_file) + else: + self._copy_module(zip_file) + self._build(zip_file) else: - self._copy_module(zip_file) self._build(zip_file) + self._add_pth(zip_file) self._write_metadata(zip_file) self._write_record(zip_file) @@ -112,6 +122,23 @@ logger.info("Built {}".format(self.wheel_filename)) + def _add_pth(self, wheel): # type: (zipfile.ZipFile) -> None + paths = set() + for include in self._module.includes: + if isinstance(include, PackageInclude) and ( + include.is_module() or include.is_package() + ): + paths.add(include.base.resolve().as_posix()) + + content = "" + for path in paths: + content += path + os.linesep + + pth_file = Path(self._module.name).with_suffix(".pth") + + with self._write_to_zip(wheel, str(pth_file)) as f: + f.write(content) + def _build(self, wheel): # type: (zipfile.ZipFile) -> None if self._package.build_script: if not self._poetry.package.build_should_generate_setup(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-core-1.0.7/pyproject.toml new/poetry-core-1.0.8/pyproject.toml --- old/poetry-core-1.0.7/pyproject.toml 2021-10-04 18:56:23.000000000 +0200 +++ new/poetry-core-1.0.8/pyproject.toml 2022-02-28 05:15:29.000000000 +0100 @@ -1,6 +1,6 @@ [tool.poetry] name = "poetry-core" -version = "1.0.7" +version = "1.0.8" description = "Poetry PEP 517 Build Backend" authors = ["S??bastien Eustace <sebast...@eustace.io>"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-core-1.0.7/tests/masonry/test_api.py new/poetry-core-1.0.8/tests/masonry/test_api.py --- old/poetry-core-1.0.7/tests/masonry/test_api.py 2021-10-04 18:56:23.000000000 +0200 +++ new/poetry-core-1.0.8/tests/masonry/test_api.py 2022-02-28 05:15:29.000000000 +0100 @@ -4,6 +4,7 @@ import os import platform import sys +import zipfile from contextlib import contextmanager @@ -216,3 +217,22 @@ ): api.prepare_metadata_for_build_wheel(tmp_dir) assert "does not exist" in str(err.value) + + +def test_build_editable_wheel(): + pkg_dir = Path(fixtures) / "complete" + + with temporary_directory() as tmp_dir, cwd(pkg_dir): + filename = api.build_editable(tmp_dir) + wheel_pth = Path(tmp_dir) / filename + + validate_wheel_contents( + name="my_package", version="1.2.3", path=str(wheel_pth), + ) + + with zipfile.ZipFile(str(wheel_pth)) as z: + namelist = z.namelist() + + assert "my_package.pth" in namelist + assert pkg_dir.as_posix() == z.read("my_package.pth").decode().strip() + assert not any(file for file in namelist if file.startswith("my_package/"))