Commit 288b2e6a by Sébastien Eustace

Fix handling of extras when resolving dependencies

parent c10742fd
......@@ -12,6 +12,10 @@
- Changed CLI error style.
- Improved debugging of dependency resolution.
### Fixed
- Fixed handling of extras when resolving dependencies.
## [0.8.6] - 2018-04-30
......
......@@ -85,6 +85,7 @@ class Package(object):
self.requires = []
self.dev_requires = []
self.extras = {}
self.requires_extras = []
self._parser = VersionParser()
......
......@@ -224,7 +224,10 @@ class Provider(SpecificationProvider, UI):
# Information should already be set
pass
else:
complete_package = self._pool.package(package.name, package.version)
complete_package = self._pool.package(
package.name, package.version,
extras=package.requires_extras
)
# Update package with new information
package.requires = complete_package.requires
......
......@@ -62,13 +62,13 @@ class Pool(BaseRepository):
def has_package(self, package):
raise NotImplementedError()
def package(self, name, version):
def package(self, name, version, extras=None):
package = poetry.packages.Package(name, version, version)
if package in self._packages:
return self._packages[self._packages.index(package)]
for repository in self._repositories:
package = repository.package(name, version)
package = repository.package(name, version, extras=extras)
if package:
self._packages.append(package)
......
......@@ -112,7 +112,11 @@ class PyPiRepository(Repository):
versions.append(version)
for version in versions:
packages.append(Package(name, version))
package = Package(name, version)
if extras is not None:
package.requires_extras = extras
packages.append(package)
self._log(
'{} packages found for {} {}'.format(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment