aboutsummaryrefslogtreecommitdiff
path: root/python/pip_install/private/generate_group_library_build_bazel.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'python/pip_install/private/generate_group_library_build_bazel.bzl')
-rw-r--r--python/pip_install/private/generate_group_library_build_bazel.bzl105
1 files changed, 0 insertions, 105 deletions
diff --git a/python/pip_install/private/generate_group_library_build_bazel.bzl b/python/pip_install/private/generate_group_library_build_bazel.bzl
deleted file mode 100644
index c122b04..0000000
--- a/python/pip_install/private/generate_group_library_build_bazel.bzl
+++ /dev/null
@@ -1,105 +0,0 @@
-# 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.
-
-"""Generate the BUILD.bazel contents for a repo defined by a group_library."""
-
-load(
- "//python/private:labels.bzl",
- "PY_LIBRARY_IMPL_LABEL",
- "PY_LIBRARY_PUBLIC_LABEL",
- "WHEEL_FILE_IMPL_LABEL",
- "WHEEL_FILE_PUBLIC_LABEL",
-)
-load("//python/private:normalize_name.bzl", "normalize_name")
-
-_PRELUDE = """\
-load("@rules_python//python:defs.bzl", "py_library", "py_binary")
-"""
-
-_GROUP_TEMPLATE = """\
-## Group {name}
-
-filegroup(
- name = "{name}_{whl_public_label}",
- srcs = [],
- data = {whl_deps},
- visibility = {visibility},
-)
-
-py_library(
- name = "{name}_{lib_public_label}",
- srcs = [],
- deps = {lib_deps},
- visibility = {visibility},
-)
-"""
-
-def _generate_group_libraries(repo_prefix, group_name, group_members):
- """Generate the component libraries implementing a group.
-
- A group consists of two underlying composite libraries, one `filegroup`
- which wraps all the whls of the members and one `py_library` which wraps the
- pkgs of the members.
-
- Implementation detail of `generate_group_library_build_bazel` which uses
- this to construct a BUILD.bazel.
-
- Args:
- repo_prefix: str; the pip_parse repo prefix.
- group_name: str; the name which the user provided for the dep group.
- group_members: list[str]; the names of the _packages_ (not repositories)
- which make up the group.
- """
-
- lib_dependencies = [
- "@%s%s//:%s" % (repo_prefix, normalize_name(d), PY_LIBRARY_IMPL_LABEL)
- for d in group_members
- ]
- whl_file_deps = [
- "@%s%s//:%s" % (repo_prefix, normalize_name(d), WHEEL_FILE_IMPL_LABEL)
- for d in group_members
- ]
- visibility = [
- "@%s%s//:__pkg__" % (repo_prefix, normalize_name(d))
- for d in group_members
- ]
-
- return _GROUP_TEMPLATE.format(
- name = normalize_name(group_name),
- whl_public_label = WHEEL_FILE_PUBLIC_LABEL,
- whl_deps = repr(whl_file_deps),
- lib_public_label = PY_LIBRARY_PUBLIC_LABEL,
- lib_deps = repr(lib_dependencies),
- visibility = repr(visibility),
- )
-
-def generate_group_library_build_bazel(
- repo_prefix,
- groups):
- """Generate a BUILD file for a repository of group implementations
-
- Args:
- repo_prefix: the repo prefix that should be used for dependency lists.
- groups: a mapping of group names to lists of names of component packages.
-
- Returns:
- A complete BUILD file as a string
- """
-
- content = [_PRELUDE]
-
- for group_name, group_members in groups.items():
- content.append(_generate_group_libraries(repo_prefix, group_name, group_members))
-
- return "\n\n".join(content)