Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
mottosso committed Apr 24, 2019
1 parent 1d3b846 commit 870cb01
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 18 deletions.
6 changes: 5 additions & 1 deletion src/rez/cli/pip.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ def setup_parser(parser, completions=False):
parser.add_argument(
"PACKAGE",
help="package to install or archive/url to install from")
parser.add_argument(
"-va", "--variant", action="append",
help="Install package as variant, may be called multiple times.")


def command(opts, parser, extra_arg_groups=None):
Expand All @@ -43,7 +46,8 @@ def command(opts, parser, extra_arg_groups=None):
opts.PACKAGE,
pip_version=opts.pip_ver,
python_version=opts.py_ver,
release=opts.release)
release=opts.release,
variants=opts.variant)

# print summary
#
Expand Down
22 changes: 5 additions & 17 deletions src/rez/pip.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,8 @@ def create_context(pip_version=None, python_version=None):


def pip_install_package(source_name, pip_version=None, python_version=None,
mode=InstallMode.min_deps, release=False):
mode=InstallMode.min_deps, release=False,
variants=None):
"""Install a pip-compatible python package as a rez package.
Args:
source_name (str): Name of package or archive/url containing the pip
Expand All @@ -203,6 +204,7 @@ def pip_install_package(source_name, pip_version=None, python_version=None,
List of `Variant`: Installed variants;
List of `Variant`: Skipped variants (already installed).
"""

installed_variants = []
skipped_variants = []

Expand Down Expand Up @@ -240,7 +242,6 @@ def pip_install_package(source_name, pip_version=None, python_version=None,
cmd.append(source_name)

_cmd(context=context, command=cmd)
_system = System()

# Collect resulting python packages using distlib
distribution_path = DistributionPath([destpath], include_egg=True)
Expand Down Expand Up @@ -300,20 +301,7 @@ def make_root(variant, path):
shutil.copystat(source_file, destination_file)

# determine variant requirements
# TODO detect if platform/arch/os necessary, no if pure python
variant_reqs = []
variant_reqs.append("platform-%s" % _system.platform)
variant_reqs.append("arch-%s" % _system.arch)
variant_reqs.append("os-%s" % _system.os)

if context is None:
# since we had to use system pip, we have to assume system python version
py_ver = '.'.join(map(str, sys.version_info[:2]))
else:
python_variant = context.get_resolved_package("python")
py_ver = python_variant.version.trim(2)

variant_reqs.append("python-%s" % py_ver)
variants = variants or []

name, _ = parse_name_and_version(distribution.name_and_version)
name = distribution.name[0:len(name)].replace("-", "_")
Expand All @@ -323,7 +311,7 @@ def make_root(variant, path):
if distribution.metadata.summary:
pkg.description = distribution.metadata.summary

pkg.variants = [variant_reqs]
pkg.variants = [variants]
if requirements:
pkg.requires = requirements

Expand Down

0 comments on commit 870cb01

Please sign in to comment.