in azdev/operations/setup.py [0:0]
def _install_cli(cli_path, deps=None):
if not cli_path:
# install public CLI off PyPI if no repo found
pip_cmd('install --upgrade azure-cli', "Installing `azure-cli`...")
pip_cmd('install git+https://github.com/Azure/azure-cli@main#subdirectory=src/azure-cli-testsdk',
"Installing `azure-cli-testsdk`...")
return
if cli_path == 'EDGE':
# install the public edge build
pip_cmd('install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge',
"Installing `azure-cli` edge build...")
pip_cmd('install git+https://github.com/Azure/azure-cli@main#subdirectory=src/azure-cli-testsdk',
"Installing `azure-cli-testsdk`...")
return
# otherwise editable install from source
# install private whls if there are any
privates_dir = os.path.join(cli_path, "privates")
if os.path.isdir(privates_dir) and os.listdir(privates_dir):
whl_list = " ".join(
[os.path.join(privates_dir, f) for f in os.listdir(privates_dir)]
)
pip_cmd("install {}".format(whl_list), "Installing private whl files...")
# install general requirements
pip_cmd(
"install -r {}".format(os.path.join(cli_path, "requirements.txt")),
"Installing `requirements.txt`..."
)
cli_src = os.path.join(cli_path, 'src')
if deps == 'setup.py':
# Resolve dependencies from setup.py files.
# command modules have dependency on azure-cli-core so install this first
pip_cmd(
"install -e {}".format(os.path.join(cli_src, 'azure-cli-telemetry')),
"Installing `azure-cli-telemetry`..."
)
pip_cmd(
"install -e {}".format(os.path.join(cli_src, 'azure-cli-core')),
"Installing `azure-cli-core`..."
)
# azure cli has dependencies on the above packages so install this one last
pip_cmd(
"install -e {}".format(os.path.join(cli_src, 'azure-cli')),
"Installing `azure-cli`..."
)
pip_cmd(
"install -e {}".format(os.path.join(cli_src, 'azure-cli-testsdk')),
"Installing `azure-cli-testsdk`..."
)
else:
# First install packages without dependencies,
# then resolve dependencies from requirements.*.txt file.
pip_cmd(
"install -e {} --no-deps".format(os.path.join(cli_src, 'azure-cli-telemetry')),
"Installing `azure-cli-telemetry`..."
)
pip_cmd(
"install -e {} --no-deps".format(os.path.join(cli_src, 'azure-cli-core')),
"Installing `azure-cli-core`..."
)
pip_cmd(
"install -e {} --no-deps".format(os.path.join(cli_src, 'azure-cli')),
"Installing `azure-cli`..."
)
# The dependencies of testsdk are not in requirements.txt as this package is not needed by the
# azure-cli package for running commands.
# Here we need to install with dependencies for azdev test.
pip_cmd(
"install -e {}".format(os.path.join(cli_src, 'azure-cli-testsdk')),
"Installing `azure-cli-testsdk`..."
)
import platform
system = platform.system()
req_file = 'requirements.py3.{}.txt'.format(system)
pip_cmd(
"install -r {}".format(os.path.join(cli_src, 'azure-cli', req_file)),
"Installing `{}`...".format(req_file)
)