"""Starlark representation of locked requirements.

@generated by rules_python pip.parse bzlmod extension.
"""

load("@rules_python//python:pip.bzl", "pip_utils")

all_requirements = %%ALL_REQUIREMENTS%%

all_whl_requirements_by_package = %%ALL_WHL_REQUIREMENTS_BY_PACKAGE%%

all_whl_requirements = all_whl_requirements_by_package.values()

all_data_requirements = %%ALL_DATA_REQUIREMENTS%%

def requirement(name):
    return "%%MACRO_TMPL%%".format(pip_utils.normalize_name(name), "pkg")

def whl_requirement(name):
    return "%%MACRO_TMPL%%".format(pip_utils.normalize_name(name), "whl")

def data_requirement(name):
    return "%%MACRO_TMPL%%".format(pip_utils.normalize_name(name), "data")

def dist_info_requirement(name):
    return "%%MACRO_TMPL%%".format(pip_utils.normalize_name(name), "dist_info")
