@@ -122,8 +122,8 @@ exports_files(["requirements.bzl"])
122
122
def _pip_repository_impl (rctx ):
123
123
python_interpreter = _resolve_python_interpreter (rctx )
124
124
125
- if rctx .attr .incremental and not rctx .attr .requirements_lock :
126
- fail ("Incremental mode requires a requirements_lock attribute be specified." )
125
+ # if rctx.attr.incremental and not rctx.attr.requirements_lock:
126
+ # fail("Incremental mode requires a requirements_lock attribute be specified.")
127
127
128
128
# We need a BUILD file to load the generated requirements.bzl
129
129
rctx .file ("BUILD.bazel" , _BUILD_FILE_CONTENTS )
@@ -133,13 +133,24 @@ def _pip_repository_impl(rctx):
133
133
annotations_file = rctx .path ("annotations.json" )
134
134
rctx .file (annotations_file , json .encode_indent (annotations , indent = " " * 4 ))
135
135
136
+ os = rctx .os .name .lower ()
137
+ requirements_txt = rctx .attr .requirements
138
+
139
+ if os .startswith ("mac os" ) and rctx .attr .requirements_darwin != None :
140
+ requirements_txt = rctx .attr .requirements_darwin
141
+ elif os .startswith ("linux" ) and rctx .attr .requirements_linux != None :
142
+ requirements_txt = rctx .attr .requirements_linux
143
+
144
+ if requirements_txt == None :
145
+ fail ("Expected platform specific requirements attribute, or requirements to be set" )
146
+
136
147
if rctx .attr .incremental :
137
148
args = [
138
149
python_interpreter ,
139
150
"-m" ,
140
151
"python.pip_install.parse_requirements_to_bzl" ,
141
152
"--requirements_lock" ,
142
- rctx .path (rctx . attr . requirements_lock ),
153
+ rctx .path (requirements_txt ),
143
154
# pass quiet and timeout args through to child repos.
144
155
"--quiet" ,
145
156
str (rctx .attr .quiet ),
@@ -159,7 +170,7 @@ def _pip_repository_impl(rctx):
159
170
"-m" ,
160
171
"python.pip_install.extract_wheels" ,
161
172
"--requirements" ,
162
- rctx .path (rctx . attr . requirements ),
173
+ rctx .path (requirements_txt ),
163
174
"--annotations" ,
164
175
annotations_file ,
165
176
]
@@ -277,6 +288,12 @@ pip_repository_attrs = {
277
288
allow_single_file = True ,
278
289
doc = "A 'requirements.txt' pip requirements file." ,
279
290
),
291
+ "requirements_darwin" : attr .label (
292
+ allow_single_file = True ,
293
+ ),
294
+ "requirements_linux" : attr .label (
295
+ allow_single_file = True ,
296
+ ),
280
297
"requirements_lock" : attr .label (
281
298
allow_single_file = True ,
282
299
doc = """
0 commit comments