azure-devops/azext_devops/dev/common/pip_helper.py (15 lines of code) (raw):
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
from knack.log import get_logger
from knack.util import CLIError
from azure.cli.core.extension.operations import _run_pip
from azure.cli.core.extension import get_extension_path
logger = get_logger(__name__)
def install_keyring():
_install_package('keyring~=17.1.1')
def _install_package(package_name):
logger.debug('installing %s', package_name)
extensionPath = get_extension_path('azure-devops')
pip_args = ['install', package_name, '--target', extensionPath]
pip_status_code = _run_pip(pip_args) # pylint: disable=protected-access
if pip_status_code > 0:
raise CLIError('An error occurred. Pip failed with status code {} for package {}. '
'Use --debug for more information.'.format(pip_status_code, package_name))