@@ -121,21 +121,32 @@ exports_files(["requirements.bzl"])
121
121
def _pip_repository_impl (rctx ):
122
122
python_interpreter = _resolve_python_interpreter (rctx )
123
123
124
- if rctx .attr .incremental and not rctx .attr .requirements_lock :
125
- fail ("Incremental mode requires a requirements_lock attribute be specified." )
124
+ # if rctx.attr.incremental and not rctx.attr.requirements_lock:
125
+ # fail("Incremental mode requires a requirements_lock attribute be specified.")
126
126
127
127
# We need a BUILD file to load the generated requirements.bzl
128
128
rctx .file ("BUILD.bazel" , _BUILD_FILE_CONTENTS )
129
129
130
130
pypath = _construct_pypath (rctx )
131
131
132
+ os = rctx .os .name .lower ()
133
+ requirements_txt = rctx .attr .requirements
134
+
135
+ if os .startswith ("mac os" ) and rctx .attr .requirements_darwin != None :
136
+ requirements_txt = rctx .attr .requirements_darwin
137
+ elif os .startswith ("linux" ) and rctx .attr .requirements_linux != None :
138
+ requirements_txt = rctx .attr .requirements_linux
139
+
140
+ if requirements_txt == None :
141
+ fail ("Expected platform specific requirements attribute, or requirements to be set" )
142
+
132
143
if rctx .attr .incremental :
133
144
args = [
134
145
python_interpreter ,
135
146
"-m" ,
136
147
"python.pip_install.parse_requirements_to_bzl" ,
137
148
"--requirements_lock" ,
138
- rctx .path (rctx . attr . requirements_lock ),
149
+ rctx .path (requirements_txt ),
139
150
# pass quiet and timeout args through to child repos.
140
151
"--quiet" ,
141
152
str (rctx .attr .quiet ),
@@ -153,7 +164,7 @@ def _pip_repository_impl(rctx):
153
164
"-m" ,
154
165
"python.pip_install.extract_wheels" ,
155
166
"--requirements" ,
156
- rctx .path (rctx . attr . requirements ),
167
+ rctx .path (requirements_txt ),
157
168
]
158
169
159
170
args += ["--repo" , rctx .attr .name , "--repo-prefix" , rctx .attr .repo_prefix ]
@@ -261,6 +272,12 @@ pip_repository_attrs = {
261
272
allow_single_file = True ,
262
273
doc = "A 'requirements.txt' pip requirements file." ,
263
274
),
275
+ "requirements_darwin" : attr .label (
276
+ allow_single_file = True ,
277
+ ),
278
+ "requirements_linux" : attr .label (
279
+ allow_single_file = True ,
280
+ ),
264
281
"requirements_lock" : attr .label (
265
282
allow_single_file = True ,
266
283
doc = """
0 commit comments