Refactoring for parameter extensions (#44)
diff --git a/defs.bzl b/defs.bzl
index 45bb84b..c956339 100644
--- a/defs.bzl
+++ b/defs.bzl
@@ -2,7 +2,6 @@
DEFAULT_REPOSITORY_NAME = "pip"
-
def _pip_repository_impl(rctx):
python_interpreter = rctx.attr.python_interpreter
if rctx.attr.python_interpreter_target != None:
@@ -25,33 +24,34 @@
]
pypath = ":".join([str(p) for p in [rules_root] + thirdparty_roots])
+ args = [
+ python_interpreter,
+ "-m",
+ "extract_wheels",
+ "--requirements",
+ rctx.path(rctx.attr.requirements),
+ "--repo",
+ "@%s" % rctx.attr.name,
+ ]
+
result = rctx.execute(
- [
- python_interpreter,
- "-m",
- "extract_wheels",
- "--requirements",
- rctx.path(rctx.attr.requirements),
- "--repo",
- "@%s" % rctx.attr.name,
- ],
- environment={
+ args,
+ environment = {
# Manually construct the PYTHONPATH since we cannot use the toolchain here
- "PYTHONPATH": pypath
+ "PYTHONPATH": pypath,
},
- timeout=rctx.attr.timeout,
+ timeout = rctx.attr.timeout,
)
if result.return_code:
fail("rules_python_external failed: %s (%s)" % (result.stdout, result.stderr))
return
-
pip_repository = repository_rule(
- attrs={
- "requirements": attr.label(allow_single_file=True, mandatory=True,),
+ attrs = {
+ "requirements": attr.label(allow_single_file = True, mandatory = True),
"wheel_env": attr.string_dict(),
- "python_interpreter": attr.string(default="python3"),
+ "python_interpreter": attr.string(default = "python3"),
"python_interpreter_target": attr.label(allow_single_file = True, doc = """
If you are using a custom python interpreter built by another repository rule,
use this attribute to specify its BUILD target. This allows pip_repository to invoke
@@ -61,11 +61,12 @@
# 600 is documented as default here: https://docs.bazel.build/versions/master/skylark/lib/repository_ctx.html#execute
"timeout": attr.int(default = 600),
},
- implementation=_pip_repository_impl,
+ implementation = _pip_repository_impl,
)
-
-def pip_install(requirements, name=DEFAULT_REPOSITORY_NAME, **kwargs):
+def pip_install(requirements, name = DEFAULT_REPOSITORY_NAME, **kwargs):
pip_repository(
- name=name, requirements=requirements, **kwargs
+ name = name,
+ requirements = requirements,
+ **kwargs
)
diff --git a/extract_wheels/__init__.py b/extract_wheels/__init__.py
index 390dcd0..89c7c59 100644
--- a/extract_wheels/__init__.py
+++ b/extract_wheels/__init__.py
@@ -65,9 +65,10 @@
)
args = parser.parse_args()
+ pip_args = [sys.executable, "-m", "pip", "wheel", "-r", args.requirements]
# Assumes any errors are logged by pip so do nothing. This command will fail if pip fails
subprocess.check_output(
- [sys.executable, "-m", "pip", "wheel", "-r", args.requirements]
+ pip_args
)
extras = requirements.parse_extras(args.requirements)