Loading CHANGELOG.md +7 −0 Changes for CHANGELOG.md: 7 added lines, 0 removed lines. Original line number Diff line number Diff line # Change Log ## [Unreleased] ### Changed - Improved dependency resolution to avoid unnecessary operations. ## [0.6.5] - 2018-03-22 ### Fixed Loading poetry/installation/installer.py +15 −5 Changes for poetry/installation/installer.py: 15 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -28,7 +28,8 @@ class Installer: venv, package: Package, locker: Locker, pool: Pool): pool: Pool, installed: InstalledRepository = None): self._io = io self._venv = venv self._package = package Loading @@ -47,6 +48,7 @@ class Installer: self._extras = [] self._installer = self._get_installer() self._installed_repository = installed or self._get_installed() @property def installer(self): Loading Loading @@ -116,11 +118,10 @@ class Installer: def _do_install(self, local_repo): locked_repository = Repository() # initialize locked repo if we are installing from lock if not self._update or (self._update and self._locker.is_locked()): if self._update: if self._locker.is_locked(): locked_repository = self._locker.locked_repository(True) if self._update: # Checking extras for extra in self._extras: if extra not in self._package.extras: Loading Loading @@ -152,6 +153,7 @@ class Installer: solver = Solver( self._package, self._pool, self._installed_repository, locked_repository, self._io ) Loading @@ -162,6 +164,11 @@ class Installer: ops = solver.solve(request, fixed=fixed) else: self._io.writeln('<info>Installing dependencies from lock file</>') locked_repository = self._locker.locked_repository( self.is_dev_mode() ) if not self._locker.is_fresh(): self._io.writeln( '<warning>' Loading Loading @@ -342,7 +349,7 @@ class Installer: def _get_operations_from_lock(self, locked_repository: Repository ) -> List[Operation]: installed_repo = InstalledRepository.load(self._venv) installed_repo = self._installed_repository ops = [] extra_packages = [ Loading Loading @@ -460,3 +467,6 @@ class Installer: def _get_installer(self) -> BaseInstaller: return PipInstaller(self._venv, self._io) def _get_installed(self) -> InstalledRepository: return InstalledRepository.load(self._venv) poetry/puzzle/solver.py +7 −2 Changes for poetry/puzzle/solver.py: 7 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -18,9 +18,10 @@ from .ui import UI class Solver: def __init__(self, package, pool, locked, io): def __init__(self, package, pool, installed, locked, io): self._package = package self._pool = pool self._installed = installed self._locked = locked self._io = io Loading Loading @@ -79,7 +80,7 @@ class Solver: operations = [] for package in packages: installed = False for pkg in self._locked.packages: for pkg in self._installed.packages: if package.name == pkg.name: installed = True # Checking version Loading @@ -100,8 +101,12 @@ class Solver: break if remove: for locked in self._locked.packages: if locked.name == pkg.name: operations.append(Uninstall(pkg)) break return list(reversed(operations)) def _get_tags_for_vertex(self, vertex, requested): Loading poetry/utils/venv.py +0 −1 Changes for poetry/utils/venv.py: 0 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ class Venv: if self._venv: self._venv = Path(self._venv) self._windows = sys.platform == 'win32' self._bin_dir = None Loading tests/installation/test_installer.py +3 −3 Changes for tests/installation/test_installer.py: 3 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -115,8 +115,8 @@ def venv(): @pytest.fixture() def installer(package, pool, locker, venv): return Installer(NullIO(), venv, package, locker, pool) def installer(package, pool, locker, venv, installed): return Installer(NullIO(), venv, package, locker, pool, installed=installed) def fixture(name): Loading Loading @@ -461,7 +461,7 @@ def test_run_installs_extras_with_deps_if_requested(installer, locker, repo, pac assert len(installer.installs) == 4 # A, B, C, D def test_run_installs_extras_with_deps_if_requested_locked(installer, locker, repo, package, installed): def test_run_installs_extras_with_deps_if_requested_locked(installer, locker, repo, package): locker.locked(True) locker.mock_lock_data(fixture('extras-with-dependencies')) package.extras['foo'] = [ Loading Loading
CHANGELOG.md +7 −0 Changes for CHANGELOG.md: 7 added lines, 0 removed lines. Original line number Diff line number Diff line # Change Log ## [Unreleased] ### Changed - Improved dependency resolution to avoid unnecessary operations. ## [0.6.5] - 2018-03-22 ### Fixed Loading
poetry/installation/installer.py +15 −5 Changes for poetry/installation/installer.py: 15 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -28,7 +28,8 @@ class Installer: venv, package: Package, locker: Locker, pool: Pool): pool: Pool, installed: InstalledRepository = None): self._io = io self._venv = venv self._package = package Loading @@ -47,6 +48,7 @@ class Installer: self._extras = [] self._installer = self._get_installer() self._installed_repository = installed or self._get_installed() @property def installer(self): Loading Loading @@ -116,11 +118,10 @@ class Installer: def _do_install(self, local_repo): locked_repository = Repository() # initialize locked repo if we are installing from lock if not self._update or (self._update and self._locker.is_locked()): if self._update: if self._locker.is_locked(): locked_repository = self._locker.locked_repository(True) if self._update: # Checking extras for extra in self._extras: if extra not in self._package.extras: Loading Loading @@ -152,6 +153,7 @@ class Installer: solver = Solver( self._package, self._pool, self._installed_repository, locked_repository, self._io ) Loading @@ -162,6 +164,11 @@ class Installer: ops = solver.solve(request, fixed=fixed) else: self._io.writeln('<info>Installing dependencies from lock file</>') locked_repository = self._locker.locked_repository( self.is_dev_mode() ) if not self._locker.is_fresh(): self._io.writeln( '<warning>' Loading Loading @@ -342,7 +349,7 @@ class Installer: def _get_operations_from_lock(self, locked_repository: Repository ) -> List[Operation]: installed_repo = InstalledRepository.load(self._venv) installed_repo = self._installed_repository ops = [] extra_packages = [ Loading Loading @@ -460,3 +467,6 @@ class Installer: def _get_installer(self) -> BaseInstaller: return PipInstaller(self._venv, self._io) def _get_installed(self) -> InstalledRepository: return InstalledRepository.load(self._venv)
poetry/puzzle/solver.py +7 −2 Changes for poetry/puzzle/solver.py: 7 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -18,9 +18,10 @@ from .ui import UI class Solver: def __init__(self, package, pool, locked, io): def __init__(self, package, pool, installed, locked, io): self._package = package self._pool = pool self._installed = installed self._locked = locked self._io = io Loading Loading @@ -79,7 +80,7 @@ class Solver: operations = [] for package in packages: installed = False for pkg in self._locked.packages: for pkg in self._installed.packages: if package.name == pkg.name: installed = True # Checking version Loading @@ -100,8 +101,12 @@ class Solver: break if remove: for locked in self._locked.packages: if locked.name == pkg.name: operations.append(Uninstall(pkg)) break return list(reversed(operations)) def _get_tags_for_vertex(self, vertex, requested): Loading
poetry/utils/venv.py +0 −1 Changes for poetry/utils/venv.py: 0 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ class Venv: if self._venv: self._venv = Path(self._venv) self._windows = sys.platform == 'win32' self._bin_dir = None Loading
tests/installation/test_installer.py +3 −3 Changes for tests/installation/test_installer.py: 3 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -115,8 +115,8 @@ def venv(): @pytest.fixture() def installer(package, pool, locker, venv): return Installer(NullIO(), venv, package, locker, pool) def installer(package, pool, locker, venv, installed): return Installer(NullIO(), venv, package, locker, pool, installed=installed) def fixture(name): Loading Loading @@ -461,7 +461,7 @@ def test_run_installs_extras_with_deps_if_requested(installer, locker, repo, pac assert len(installer.installs) == 4 # A, B, C, D def test_run_installs_extras_with_deps_if_requested_locked(installer, locker, repo, package, installed): def test_run_installs_extras_with_deps_if_requested_locked(installer, locker, repo, package): locker.locked(True) locker.mock_lock_data(fixture('extras-with-dependencies')) package.extras['foo'] = [ Loading