diff --git a/python/pip.bzl b/python/pip.bzl index 237b7d2baa..8a385ce166 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -23,13 +23,16 @@ def _pip_import_impl(repository_ctx): repository_ctx.file("BUILD", "") # To see the output, pass: quiet=False - result = repository_ctx.execute([ + result = repository_ctx.execute( + [ "python", repository_ctx.path(repository_ctx.attr._script), "--name", repository_ctx.attr.name, "--input", repository_ctx.path(repository_ctx.attr.requirements), "--output", repository_ctx.path("requirements.bzl"), "--directory", repository_ctx.path(""), - ]) + ] + repository_ctx.attr.extra_args, + environment = repository_ctx.attr.environment, + ) if result.return_code: fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) @@ -41,6 +44,8 @@ pip_import = repository_rule( mandatory = True, single_file = True, ), + "environment": attr.string_dict(), + "extra_args": attr.string_list(), "_script": attr.label( executable = True, default = Label("//tools:piptool.par"), diff --git a/rules_python/piptool.py b/rules_python/piptool.py index f5d504aa87..51525f61f8 100644 --- a/rules_python/piptool.py +++ b/rules_python/piptool.py @@ -151,10 +151,10 @@ def is_possible(distro, extra): } def main(): - args = parser.parse_args() + args, unkwown = parser.parse_known_args() # https://github.com/pypa/pip/blob/9.0.1/pip/__init__.py#L209 - if pip_main(["wheel", "-w", args.directory, "-r", args.input]): + if pip_main(["wheel", "-w", args.directory,] + unkwown + ["-r", args.input]): sys.exit(1) # Enumerate the .whl files we downloaded. diff --git a/tools/piptool.par b/tools/piptool.par index 11ec453cd7..76241ff61d 100755 Binary files a/tools/piptool.par and b/tools/piptool.par differ