Loading CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ - Fixed python restricted dependencies not being checked agaisnt virtualenv version. - Fixed python/platform constraint not being picked up for subdependencies. - Fixed skipped packages appearing as installing. - Fixed platform specification not being used when resolving dependencies. ## [0.4.2] - 2018-03-10 Loading poetry/packages/constraints/platform_constraint.py +4 −1 Changes for poetry/packages/constraints/platform_constraint.py: 4 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -50,11 +50,14 @@ class PlatformConstraint(BaseConstraint): return self._platform def matches(self, provider): if not isinstance(provider, PlatformConstraint): if not isinstance(provider, (PlatformConstraint, EmptyConstraint)): raise ValueError( 'Platform constraints can only be compared with each other' ) if isinstance(provider, EmptyConstraint): return True is_equal_op = self.OP_EQ is self._operator is_non_equal_op = self.OP_NE is self._operator is_provider_equal_op = self.OP_EQ is provider.operator Loading poetry/puzzle/provider.py +4 −1 Changes for poetry/puzzle/provider.py: 4 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -179,7 +179,10 @@ class Provider(SpecificationProvider): if not any([r.allows_prereleases() for r in vertex.requirements]): return False return self._package.python_constraint.matches(package.python_constraint) return ( self._package.python_constraint.matches(package.python_constraint) and self._package.platform_constraint.matches(package.platform_constraint) ) def sort_dependencies(self, dependencies: List[Dependency], Loading tests/puzzle/test_solver.py +30 −0 Changes for tests/puzzle/test_solver.py: 30 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -326,6 +326,36 @@ def test_solver_solves_optional_and_compatible_packages(solver, repo, package): ]) def test_solver_solves_while_respecting_root_platforms(solver, repo, package): package.platform = 'darwin' package_a = get_package('A', '1.0') package_b = get_package('B', '1.0') package_b.python_versions = '^3.6' package_c12 = get_package('C', '1.2') package_c12.platform = 'win32' package_c10 = get_package('C', '1.0') package_c10.platform = 'darwin' package_b.add_dependency('C', '^1.0') repo.add_package(package_a) repo.add_package(package_b) repo.add_package(package_c10) repo.add_package(package_c12) request = [ get_dependency('A'), get_dependency('B') ] ops = solver.solve(request) check_solver_result(ops, [ {'job': 'install', 'package': package_c10}, {'job': 'install', 'package': package_b}, {'job': 'install', 'package': package_a}, ]) def test_solver_does_not_return_extras_if_not_requested(solver, repo): package_a = get_package('A', '1.0') package_b = get_package('B', '1.0') Loading Loading
CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ - Fixed python restricted dependencies not being checked agaisnt virtualenv version. - Fixed python/platform constraint not being picked up for subdependencies. - Fixed skipped packages appearing as installing. - Fixed platform specification not being used when resolving dependencies. ## [0.4.2] - 2018-03-10 Loading
poetry/packages/constraints/platform_constraint.py +4 −1 Changes for poetry/packages/constraints/platform_constraint.py: 4 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -50,11 +50,14 @@ class PlatformConstraint(BaseConstraint): return self._platform def matches(self, provider): if not isinstance(provider, PlatformConstraint): if not isinstance(provider, (PlatformConstraint, EmptyConstraint)): raise ValueError( 'Platform constraints can only be compared with each other' ) if isinstance(provider, EmptyConstraint): return True is_equal_op = self.OP_EQ is self._operator is_non_equal_op = self.OP_NE is self._operator is_provider_equal_op = self.OP_EQ is provider.operator Loading
poetry/puzzle/provider.py +4 −1 Changes for poetry/puzzle/provider.py: 4 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -179,7 +179,10 @@ class Provider(SpecificationProvider): if not any([r.allows_prereleases() for r in vertex.requirements]): return False return self._package.python_constraint.matches(package.python_constraint) return ( self._package.python_constraint.matches(package.python_constraint) and self._package.platform_constraint.matches(package.platform_constraint) ) def sort_dependencies(self, dependencies: List[Dependency], Loading
tests/puzzle/test_solver.py +30 −0 Changes for tests/puzzle/test_solver.py: 30 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -326,6 +326,36 @@ def test_solver_solves_optional_and_compatible_packages(solver, repo, package): ]) def test_solver_solves_while_respecting_root_platforms(solver, repo, package): package.platform = 'darwin' package_a = get_package('A', '1.0') package_b = get_package('B', '1.0') package_b.python_versions = '^3.6' package_c12 = get_package('C', '1.2') package_c12.platform = 'win32' package_c10 = get_package('C', '1.0') package_c10.platform = 'darwin' package_b.add_dependency('C', '^1.0') repo.add_package(package_a) repo.add_package(package_b) repo.add_package(package_c10) repo.add_package(package_c12) request = [ get_dependency('A'), get_dependency('B') ] ops = solver.solve(request) check_solver_result(ops, [ {'job': 'install', 'package': package_c10}, {'job': 'install', 'package': package_b}, {'job': 'install', 'package': package_a}, ]) def test_solver_does_not_return_extras_if_not_requested(solver, repo): package_a = get_package('A', '1.0') package_b = get_package('B', '1.0') Loading