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

Fix handling of extras in wheels metadata

parent aa740147
Loading
Loading
Loading
Loading
+7 −0
Changes for CHANGELOG.md: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Change Log

## [Unreleased]

### Fixed

- Fixed handling of extras in wheels metadata.


## [0.6.4] - 2018-03-21

### Added
+3 −3
Changes for poetry/installation/installer.py: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ from typing import List
from poetry.packages import Dependency
from poetry.packages import Locker
from poetry.packages import Package
from poetry.packages.constraints.platform_constraint import PlatformConstraint
from poetry.packages.constraints.generic_constraint import GenericConstraint
from poetry.puzzle import Solver
from poetry.puzzle.operations import Install
from poetry.puzzle.operations import Uninstall
@@ -398,11 +398,11 @@ class Installer:
                    continue

            if 'platform' in package.requirements:
                platform_constraint = PlatformConstraint.parse(
                platform_constraint = GenericConstraint.parse(
                    package.requirements['platform']
                )
                if not platform_constraint.matches(
                        PlatformConstraint('=', sys.platform)
                        GenericConstraint('=', sys.platform)
                ):
                    # Incompatible systems
                    op.skip('Not needed for the current platform')
+3 −1
Changes for poetry/masonry/builders/sdist.py: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -226,7 +226,9 @@ class SdistBuilder(Builder):
                for extra_name, reqs in package.extras.items():
                    for req in reqs:
                        if req.name == dependency.name:
                            extras[extra_name].append(dependency.to_pep_508())
                            extras[extra_name].append(
                                dependency.to_pep_508(with_extras=False)
                            )
                continue

            requirement = dependency.to_pep_508()
+3 −2
Changes for poetry/masonry/builders/wheel.py: 3 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -311,6 +311,9 @@ class WheelBuilder(Builder):
        for classifier in self._meta.classifiers:
            fp.write(f'Classifier: {classifier}\n')

        for extra in self._meta.provides_extra:
            fp.write(f'Provides-Extra: {extra}\n')

        for dep in self._meta.requires_dist:
            fp.write(f'Requires-Dist: {dep}\n')

@@ -318,7 +321,5 @@ class WheelBuilder(Builder):
            fp.write(f'Description-Content-Type: '
                     f'{self._meta.description_content_type}\n')

        # TODO: Provides extra

        if self._meta.description is not None:
            fp.write('\n' + self._meta.description + '\n')
+4 −2
Changes for poetry/masonry/metadata.py: 4 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ class Metadata:
    maintainer_email = None
    requires_python = None
    requires_external = ()
    requires_dist = ()
    requires_dist = []
    provides_dist = ()
    obsoletes_dist = ()
    project_urls = ()
@@ -59,6 +59,7 @@ class Metadata:
        meta.maintainer = meta.author
        meta.maintainer_email = meta.author_email
        meta.requires_python = package.python_constraint

        meta.requires_dist = [d.to_pep_508() for d in package.requires]

        # Requires python
@@ -73,5 +74,6 @@ class Metadata:
            else:
                meta.description_content_type = 'text/plain'

        # TODO: Provides extra
        meta.provides_extra = [e for e in package.extras]

        return meta
Loading