@@ -80,15 +80,15 @@ def _locate(bazel_runfiles, file):
80
80
81
81
82
82
@click .command (context_settings = {"ignore_unknown_options" : True })
83
- @click .argument ( "requirements_in" )
83
+ @click .option ( "--in" , "requirements_ins" , multiple = True , required = True )
84
84
@click .argument ("requirements_txt" )
85
85
@click .argument ("update_target_label" )
86
86
@click .option ("--requirements-linux" )
87
87
@click .option ("--requirements-darwin" )
88
88
@click .option ("--requirements-windows" )
89
89
@click .argument ("extra_args" , nargs = - 1 , type = click .UNPROCESSED )
90
90
def main (
91
- requirements_in : str ,
91
+ requirements_ins : Tuple [ str , ...] ,
92
92
requirements_txt : str ,
93
93
update_target_label : str ,
94
94
requirements_linux : Optional [str ],
@@ -103,7 +103,7 @@ def main(
103
103
requirements_darwin = requirements_darwin , requirements_windows = requirements_windows
104
104
)
105
105
106
- resolved_requirements_in = _locate (bazel_runfiles , requirements_in )
106
+ resolved_requirements_ins = [ _locate (bazel_runfiles , f ) for f in requirements_ins ]
107
107
resolved_requirements_file = _locate (bazel_runfiles , requirements_file )
108
108
109
109
# Files in the runfiles directory has the following naming schema:
@@ -120,8 +120,8 @@ def main(
120
120
# use the runfiles file first. Thus, we need to compute the relative path
121
121
# from the execution root.
122
122
# Note: Windows cannot reference generated files without runfiles support enabled.
123
- requirements_in_relative = requirements_in [ len (repository_prefix ): ]
124
- requirements_file_relative = requirements_file [len (repository_prefix ):]
123
+ requirements_ins_relative = [ f [ len (repository_prefix ) :] for f in requirements_ins ]
124
+ requirements_file_relative = requirements_file [len (repository_prefix ) :]
125
125
126
126
# Before loading click, set the locale for its parser.
127
127
# If it leaks through to the system setting, it may fail:
@@ -158,10 +158,15 @@ def main(
158
158
os .environ ["PIP_CONFIG_FILE" ] = os .getenv ("PIP_CONFIG_FILE" ) or os .devnull
159
159
160
160
argv .append (f"--output-file={ requirements_file_relative if UPDATE else requirements_out } " )
161
- argv .append (
162
- requirements_in_relative
163
- if Path (requirements_in_relative ).exists ()
164
- else resolved_requirements_in
161
+ argv .extend (
162
+ (
163
+ requirements_in_relative
164
+ if Path (requirements_in_relative ).exists ()
165
+ else resolved_requirements_in
166
+ )
167
+ for requirements_in_relative , resolved_requirements_in
168
+ in zip (requirements_ins_relative , resolved_requirements_ins )
169
+
165
170
)
166
171
argv .extend (extra_args )
167
172
@@ -196,7 +201,7 @@ def main(
196
201
print (
197
202
"pip-compile exited with code 2. This means that pip-compile found "
198
203
"incompatible requirements or could not find a version that matches "
199
- f"the install requirement in { requirements_in_relative } ." ,
204
+ f"the install requirement in one of { requirements_ins_relative } ." ,
200
205
file = sys .stderr ,
201
206
)
202
207
sys .exit (1 )
0 commit comments