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

Improve CLI reactivity by deferring imports

parent af3b46d7
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@

- Improved dependency resolution to avoid unnecessary operations.
- Improved dependency resolution speed.
- Improved CLI reactivity by deferring imports.

### Fixed

+1 −7
Changes for poetry/__init__.py: 1 added line, 7 removed lines.
Original line number Diff line number Diff line
from poetry.console import Application
from .poetry import Poetry

__version__ = Poetry.VERSION


console = Application()
from .__version__ import __version__
+4 −0
Changes for poetry/console/__init__.py: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
from .application import Application


def main():
    Application().run()
+6 −3
Changes for poetry/console/application.py: 6 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -4,8 +4,9 @@ from cleo import Application as BaseApplication
from cleo.inputs import ArgvInput
from cleo.outputs import ConsoleOutput

from poetry import __version__

from poetry.io.raw_argv_input import RawArgvInput
from poetry.poetry import Poetry

from .commands import AboutCommand
from .commands import AddCommand
@@ -28,13 +29,15 @@ from .commands.debug import DebugResolveCommand
class Application(BaseApplication):

    def __init__(self):
        super().__init__('Poetry', Poetry.VERSION)
        super().__init__('Poetry', __version__)

        self._poetry = None
        self._skip_io_configuration = False

    @property
    def poetry(self) -> Poetry:
    def poetry(self):
        from poetry.poetry import Poetry

        if self._poetry is not None:
            return self._poetry

+5 −4
Changes for poetry/console/commands/add.py: 5 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -3,10 +3,6 @@ import re
from typing import List
from typing import Tuple

from poetry.installation import Installer
from poetry.semver.version_parser import VersionParser
from poetry.version.version_selector import VersionSelector

from .venv_command import VenvCommand


@@ -28,6 +24,9 @@ If you do not specify a version constraint, poetry will choose a suitable one ba
"""

    def handle(self):
        from poetry.installation import Installer
        from poetry.semver.version_parser import VersionParser

        packages = self.argument('name')
        is_dev = self.option('dev')

@@ -142,6 +141,8 @@ If you do not specify a version constraint, poetry will choose a suitable one ba
                                       name,
                                       required_version=None
                                       ) -> Tuple[str, str]:
        from poetry.version.version_selector import VersionSelector

        selector = VersionSelector(self.poetry.pool)
        package = selector.find_best_candidate(name, required_version)

Loading