1
1
#!/usr/bin/env python3
2
2
3
- import argparse
4
3
import os
5
4
import sys
6
5
from pathlib import Path
@@ -20,26 +19,24 @@ def _run() -> None:
20
19
uv = os .fsdecode (uv_path )
21
20
env = os .environ .copy ()
22
21
23
- # TODO @aignas 2025-03-11: this does not work when we try to pass extra args via bazel run
24
- # The best way is to do a template expansion.
22
+ params = Path ( sys . argv [ 1 ])
23
+ sys_args = sys . argv [ 2 :]
25
24
26
- params = Path (f"{ sys .argv [0 ]} .params.txt" )
27
- assert params .exists (), f"{ params } does not exist"
28
- sys_args = params .read_text ().strip ().split ("\n " )
25
+ uv_args = params .read_text ().strip ().split ("\n " )
29
26
30
27
# Let `uv` know that it was spawned by this Python interpreter
31
28
env ["UV_INTERNAL__PARENT_INTERPRETER" ] = sys .executable
32
29
args = []
33
- src_out = sys_args [1 ] if sys_args [0 ] == "--src-out" else None
30
+ src_out = uv_args [1 ] if uv_args [0 ] == "--src-out" else None
34
31
if src_out :
35
- sys_args = sys_args [2 :]
32
+ uv_args = uv_args [2 :]
36
33
37
- if sys_args [0 ] != "--output-file" :
34
+ if uv_args [0 ] != "--output-file" :
38
35
raise ValueError (
39
- f"The first arg should be to declare the output file, got:\n { sys_args } "
36
+ f"The first arg should be to declare the output file, got:\n { uv_args } "
40
37
)
41
38
else :
42
- out = sys_args [1 ]
39
+ out = uv_args [1 ]
43
40
44
41
# this is set under bazel run
45
42
workspace = env .get ("BUILD_WORKSPACE_DIRECTORY" )
@@ -51,9 +48,11 @@ def _run() -> None:
51
48
import shutil
52
49
53
50
shutil .copy (src , dst )
54
- sys_args [1 ] = str (dst )
51
+ uv_args [1 ] = str (dst )
55
52
56
- uv_args = ["pip" , "compile" ] + args + sys_args + uv_args
53
+ args += uv_args + sys_args
54
+ uv_args = ["pip" , "compile" ] + args
55
+ print ("Running 'uv pip compile' with args:\n \t {}" .format ("\n \t " .join (args )))
57
56
58
57
if sys .platform == "win32" :
59
58
import subprocess
0 commit comments