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

Add debug:info command

parent e46d18c1
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGELOG.md: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@

## [Unreleased]

### Added

- Added a `debug:info` command to get information about current environment.

### Fixed

- Fixed Python version retrieval inside virtualenvs.
+2 −0
Changes for poetry/console/application.py: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ from .commands import RunCommand
from .commands import ShowCommand
from .commands import UpdateCommand

from .commands.debug import DebugInfoCommand
from .commands.debug import DebugResolveCommand


@@ -99,6 +100,7 @@ class Application(BaseApplication):

        # Debug commands
        commands += [
            DebugInfoCommand(),
            DebugResolveCommand(),
        ]

+1 −0
Changes for poetry/console/commands/debug/__init__.py: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
from .info import DebugInfoCommand
from .resolve import DebugResolveCommand
+51 −0
Changes for poetry/console/commands/debug/info.py: 51 added lines, 0 removed lines.
Original line number Diff line number Diff line
import os
import sys

from ..venv_command import VenvCommand


class DebugInfoCommand(VenvCommand):
    """
    Shows debug information.

    debug:info
    """

    def handle(self):
        poetry = self.poetry
        package = poetry.package
        venv = self.venv

        poetry_python_version = '.'.join(str(s) for s in sys.version_info[:3])

        self.output.title('Poetry')
        self.output.listing([
            '<info>Version</info>: <comment>{}</>'.format(poetry.VERSION),
            '<info>Python</info>:  <comment>{}</>'.format(poetry_python_version)
        ])

        self.line('')

        venv_python_version = '.'.join(str(s) for s in venv.version_info[:3])
        self.output.title('Virtualenv')
        self.output.listing([
            '<info>Python</info>:         <comment>{}</>'.format(
                venv_python_version
            ),
            '<info>Implementation</info>: <comment>{}</>'.format(
                venv.python_implementation
            ),
            '<info>Path</info>:           <comment>{}</>'.format(
                venv.venv if venv.is_venv() else 'NA'
            )
        ])

        self.line('')

        self.output.title('System')
        self.output.listing([
            '<info>Platform</info>: <comment>{}</>'.format(sys.platform),
            '<info>OS</info>:       <comment>{}</>'.format(os.name),
        ])

        self.line('')