1515"""Generate the BUILD.bazel contents for a repo defined by a whl_library."""
1616
1717load ("//python/private:text_util.bzl" , "render" )
18+ load (":labels.bzl" , "DATA_LABEL" , "DIST_INFO_LABEL" , "EXTRACTED_WHEEL_FILES" , "PACKAGE_METADATA_LABEL" )
1819
1920# These are functions on how to render particular args, should be reused across all rendering
2021# invocations to make things easier.
@@ -31,10 +32,11 @@ _RENDER_FNS = {
3132 "srcs_exclude" : render .list ,
3233 "tags" : render .list ,
3334}
35+
3436def _render (** kwargs ):
3537 return {
3638 arg : _RENDER_FNS .get (arg , repr )(value )
37- for arg , value in kwargs .items
39+ for arg , value in kwargs .items ()
3840 }
3941
4042# NOTE @aignas 2024-10-25: We have to keep this so that files in
@@ -50,11 +52,26 @@ package(default_visibility = ["//visibility:public"])
5052
5153def generate_whl_library_build_bazel (
5254 * ,
53- # TODO @aignas 2026-07-04: add extra args that are used in this function
55+ name ,
5456 annotation = None ,
5557 config_load ,
58+ copy_executables = {},
59+ copy_files = {},
60+ data_exclude = [],
61+ dep_template ,
62+ enable_implicit_namespace_pkgs = False ,
63+ entry_points = {},
64+ extras = [],
65+ group_deps = [],
66+ group_name = None ,
67+ metadata_name ,
68+ metadata_version ,
69+ namespace_package_files = {},
5670 purl = None ,
5771 requires_dist = [],
72+ sdist_filename = None ,
73+ srcs_exclude = [],
74+ visibility = ["//visibility:public" ],
5875 ** kwargs ):
5976 """Generate a BUILD file for an unzipped Wheel
6077
@@ -72,7 +89,7 @@ def generate_whl_library_build_bazel(
7289
7390 loads = [
7491 """load("@package_metadata//rules:package_metadata.bzl", "package_metadata")""" ,
75- """load("@rules_python//python/private/pypi:whl_library_targets.bzl", "whl_library_srcs", "whl_library_from_requires_dist")"""
92+ """load("@rules_python//python/private/pypi:whl_library_targets.bzl", "whl_library_srcs", "whl_library_from_requires_dist")""" ,
7693 ]
7794
7895 srcs_kwargs = dict (
@@ -90,13 +107,11 @@ def generate_whl_library_build_bazel(
90107 copy_files = copy_files ,
91108 copy_executables = copy_executables ,
92109 namespace_package_files = namespace_package_files ,
93- data = [],
94110 visibility = visibility ,
95111 )
96112 from_requires_kwargs = dict (
97- name = name ,
98- metadata_name = metadata_name ,
99- metadata_version = metadata_version ,
113+ name = metadata_name ,
114+ version = metadata_version ,
100115 requires_dist = requires_dist ,
101116 extras = extras ,
102117 group_deps = group_deps ,
@@ -121,15 +136,15 @@ def generate_whl_library_build_bazel(
121136 render .call (
122137 "package_metadata" ,
123138 ** _render (
124- name = "package_metadata" ,
139+ name = PACKAGE_METADATA_LABEL ,
125140 purl = purl ,
126141 visibility = ["//:__subpackages__" ],
127- ),
142+ )
128143 ),
129144 render .call (
130145 "whl_library_srcs" ,
131146 ** _render (** srcs_kwargs )
132- )
147+ ),
133148 ]
134149
135150 if config_load :
@@ -138,7 +153,7 @@ def generate_whl_library_build_bazel(
138153
139154 macro_parts .append (render .call (
140155 "whl_library_from_requires_dist" ,
141- ** _render (** from_requires_kwargs ),
156+ ** _render (** from_requires_kwargs )
142157 ))
143158
144159 contents = "\n " .join (
@@ -155,7 +170,15 @@ def generate_whl_library_build_bazel(
155170
156171def generate_whl_library_deps_build_bazel (
157172 * ,
158- # TODO @aignas 2026-07-04: add extra args that are used in this function
173+ name ,
174+ version ,
175+ config_load ,
176+ dep_template ,
177+ extras ,
178+ group_deps ,
179+ group_name ,
180+ requires_dist ,
181+ whl_library ,
159182 ** kwargs ):
160183 """Generate a BUILD file for an unzipped Wheel
161184
@@ -165,32 +188,32 @@ def generate_whl_library_deps_build_bazel(
165188 """
166189
167190 loads = [
168- """load("@rules_python//python/private/pypi:whl_library_targets.bzl", "whl_library_from_requires_dist")"""
191+ """load("@rules_python//python/private/pypi:whl_library_targets.bzl", "whl_library_from_requires_dist")""" ,
169192 ]
170193
171194 from_requires_kwargs = dict (
172195 name = name ,
173- metadata_name = metadata_name ,
174- metadata_version = metadata_version ,
196+ version = version ,
175197 requires_dist = requires_dist ,
176198 extras = extras ,
177199 group_deps = group_deps ,
178200 dep_template = dep_template ,
179201 group_name = group_name ,
202+ src_pkg = str (whl_library ),
180203 )
181204
182205 macro_parts = [
183206 render .call (
184207 "alias" ,
185- name = target ,
186- actual = whl_library .same_package_label (target ),
208+ ** _render (
209+ name = target ,
210+ actual = str (whl_library .same_package_label (target )),
211+ )
187212 )
188213 for target in [
189- # TODO @aignas 2026-07-04: use ./labels.bzl for the following
190- "package_metadata" ,
191- "data" ,
192- "dist_info" ,
193- "extracted_whl_files" ,
214+ DATA_LABEL ,
215+ DIST_INFO_LABEL ,
216+ EXTRACTED_WHEEL_FILES ,
194217 ]
195218 ]
196219
@@ -200,7 +223,7 @@ def generate_whl_library_deps_build_bazel(
200223
201224 macro_parts .append (render .call (
202225 "whl_library_from_requires_dist" ,
203- ** _render (** from_requires_kwargs ),
226+ ** _render (** from_requires_kwargs )
204227 ))
205228
206229 contents = _TEMPLATE .format (
0 commit comments