Unverified Commit 89208696 authored by Sébastien Eustace's avatar Sébastien Eustace
Browse files

Add experimental support for packages with C extensions

parent c467b34c
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGELOG.md: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,10 @@

## [Unreleased]

### Added

- Added experimental support for package with C extensions.

### Changed

- Added hashes check when installing packages.
+1 −1
Changes for poetry/console/commands/build.py: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ class BuildCommand(Command):
    Builds a package, as a tarball and a wheel by default.

    build
        { --f|format=* : Limit the format to either wheel or sdist}
        { --f|format= : Limit the format to either wheel or sdist. }
    """

    def handle(self):
+7 −3
Changes for poetry/io/null_io.py: 7 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -4,22 +4,26 @@ from poetry.utils.venv import Venv

class NullVenv(Venv):

    def __init__(self):
    def __init__(self, execute=False):
        super().__init__()

        self.executed = []
        self._execute = execute

    def run(self, bin: str, *args):
        self.executed.append([bin] + list(args))

        if self._execute:
            return super().run(bin, *args)

    def _bin(self, bin):
        return bin


class NullIO(PoetryStyle):

    def __init__(self):
        self._venv = NullVenv()
    def __init__(self, execute=False):
        self._venv = NullVenv(execute=execute)

    @property
    def venv(self) -> NullVenv:
+9 −2
Changes for poetry/masonry/builders/builder.py: 9 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -29,7 +29,9 @@ class Builder:
        self._io = io
        self._package = poetry.package
        self._path = poetry.file.parent
        self._module = Module(self._package.name, self._path.as_posix())
        self._module = Module(
            self._package.name, self._path.as_posix()
        )

    def build(self):
        raise NotImplementedError()
@@ -53,7 +55,7 @@ class Builder:

        return result

    def find_files_to_add(self) -> list:
    def find_files_to_add(self, exclude_build=True) -> list:
        """
        Finds all files to add to the tarball

@@ -102,6 +104,11 @@ class Builder:
                )
                to_add.append(readme.relative_to(self._path))

        # If a build script is specified and explicitely required
        # we add it to the list of files
        if self._package.build and not exclude_build:
            to_add.append(Path(self._package.build))

        return sorted(to_add)

    def convert_entry_points(self) -> dict:
+2 −1
Changes for poetry/masonry/builders/complete.py: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -26,7 +26,8 @@ class CompleteBuilder(Builder):
        dist_dir = self._path / 'dist'
        with self.unpacked_tarball(sdist_file) as tmpdir:
            wheel_info = WheelBuilder.make_in(
                poetry.Poetry.create(tmpdir), self._io, dist_dir
                poetry.Poetry.create(tmpdir), self._io, dist_dir,
                original=self._poetry
            )

        return SimpleNamespace(wheel=wheel_info, sdist=sdist_info)
Loading