diff options
author | Vinh Tran <vinhdaitran@google.com> | 2023-07-26 05:30:40 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-07-26 05:30:40 +0000 |
commit | 5c7cc0dce1331e9a2fcc166a80f4fab2c90ac590 (patch) | |
tree | acdcc148cabfb6f8242a6c83e37625eeaea4e628 /python/pip_install/tools/lib/arguments.py | |
parent | 62c90a8ca6aa21d4e60cfe32b3784609d80480f6 (diff) | |
parent | 3e21f23d9400ba51f10e9b76016ff6d472829b4e (diff) | |
download | bazelbuild-rules_python-5c7cc0dce1331e9a2fcc166a80f4fab2c90ac590.tar.gz |
Merge remote-tracking branch 'aosp/upstream-main' into main am: b14b3520de am: e398bc2bf7 am: a1ccc8dd9e am: f26ff44a64 am: 3e21f23d94android-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android-14.0.0_r28android14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Original change: https://android-review.googlesource.com/c/platform/external/bazelbuild-rules_python/+/2673976
Change-Id: Ib33cbb9758fb3c0287c21cf502885fec2f072343
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'python/pip_install/tools/lib/arguments.py')
-rw-r--r-- | python/pip_install/tools/lib/arguments.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/python/pip_install/tools/lib/arguments.py b/python/pip_install/tools/lib/arguments.py new file mode 100644 index 0000000..974f03c --- /dev/null +++ b/python/pip_install/tools/lib/arguments.py @@ -0,0 +1,76 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from argparse import ArgumentParser + + +def parse_common_args(parser: ArgumentParser) -> ArgumentParser: + parser.add_argument( + "--repo", + action="store", + required=True, + help="The external repo name to install dependencies. In the format '@{REPO_NAME}'", + ) + parser.add_argument( + "--isolated", + action="store_true", + help="Whether or not to include the `--isolated` pip flag.", + ) + parser.add_argument( + "--extra_pip_args", + action="store", + help="Extra arguments to pass down to pip.", + ) + parser.add_argument( + "--pip_data_exclude", + action="store", + help="Additional data exclusion parameters to add to the pip packages BUILD file.", + ) + parser.add_argument( + "--enable_implicit_namespace_pkgs", + action="store_true", + help="Disables conversion of implicit namespace packages into pkg-util style packages.", + ) + parser.add_argument( + "--environment", + action="store", + help="Extra environment variables to set on the pip environment.", + ) + parser.add_argument( + "--repo-prefix", + required=True, + help="Prefix to prepend to packages", + ) + parser.add_argument( + "--download_only", + action="store_true", + help="Use 'pip download' instead of 'pip wheel'. Disables building wheels from source, but allows use of " + "--platform, --python-version, --implementation, and --abi in --extra_pip_args.", + ) + return parser + + +def deserialize_structured_args(args): + """Deserialize structured arguments passed from the starlark rules. + Args: + args: dict of parsed command line arguments + """ + structured_args = ("extra_pip_args", "pip_data_exclude", "environment") + for arg_name in structured_args: + if args.get(arg_name) is not None: + args[arg_name] = json.loads(args[arg_name])["arg"] + else: + args[arg_name] = [] + return args |