# 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.

load("@bazel_skylib//:bzl_library.bzl", "bzl_library")

package(
    default_visibility = ["//:__subpackages__"],
)

bzl_library(
    name = "pip_repository_bzl",
    srcs = ["pip_repository.bzl"],
    deps = [
        "//python/private/pypi:group_library_bzl",
        "//python/private/pypi:package_annotation_bzl",
        "//python/private/pypi:pip_repository_bzl",
        "//python/private/pypi:whl_library_bzl",
    ],
)

bzl_library(
    name = "requirements_bzl",
    srcs = ["requirements.bzl"],
    deps = ["//python/private/pypi:pip_compile_bzl"],
)

filegroup(
    name = "distribution",
    srcs = glob(["**"]),
    visibility = ["//python:__pkg__"],
)

filegroup(
    name = "bzl",
    srcs = glob(["*.bzl"]),
    visibility = ["//:__subpackages__"],
)

exports_files(
    glob(["*.bzl"]),
    visibility = ["//docs:__pkg__"],
)
