|
4 | 4 | import os
|
5 | 5 | import subprocess
|
6 | 6 | import sys
|
| 7 | +from functools import partial |
7 | 8 | from pathlib import Path
|
8 | 9 |
|
9 | 10 | if __name__ == "__main__":
|
10 | 11 | os.chdir(Path(__file__).parent)
|
11 |
| - os.environ["CUSTOM_COMPILE_COMMAND"] = "requirements/compile.py" |
12 |
| - os.environ["PIP_REQUIRE_VIRTUALENV"] = "0" |
13 | 12 | common_args = [
|
14 |
| - "-m", |
15 |
| - "piptools", |
| 13 | + "uv", |
| 14 | + "pip", |
16 | 15 | "compile",
|
| 16 | + "--quiet", |
17 | 17 | "--generate-hashes",
|
18 |
| - "--allow-unsafe", |
19 |
| - ] + sys.argv[1:] |
20 |
| - subprocess.run( |
21 |
| - [ |
22 |
| - "python3.8", |
23 |
| - *common_args, |
24 |
| - "-P", |
25 |
| - "Django>=3.2a1,<3.3", |
26 |
| - "-o", |
| 18 | + "--constraint", |
| 19 | + "-", |
| 20 | + "requirements.in", |
| 21 | + *sys.argv[1:], |
| 22 | + ] |
| 23 | + run = partial(subprocess.run, check=True) |
| 24 | + run( |
| 25 | + [ |
| 26 | + *common_args, |
| 27 | + "--python", |
| 28 | + "3.8", |
| 29 | + "--output-file", |
27 | 30 | "py38-django32.txt",
|
28 | 31 | ],
|
29 |
| - check=True, |
30 |
| - capture_output=True, |
| 32 | + input=b"Django>=3.2a1,<3.3", |
31 | 33 | )
|
32 |
| - subprocess.run( |
| 34 | + run( |
33 | 35 | [
|
34 |
| - "python3.8", |
35 | 36 | *common_args,
|
36 |
| - "-P", |
37 |
| - "Django>=4.0a1,<4.1", |
38 |
| - "-o", |
| 37 | + "--python", |
| 38 | + "3.8", |
| 39 | + "--output-file", |
39 | 40 | "py38-django40.txt",
|
40 | 41 | ],
|
41 |
| - check=True, |
42 |
| - capture_output=True, |
| 42 | + input=b"Django>=4.0a1,<4.1", |
43 | 43 | )
|
44 |
| - subprocess.run( |
| 44 | + run( |
45 | 45 | [
|
46 |
| - "python3.8", |
47 | 46 | *common_args,
|
48 |
| - "-P", |
49 |
| - "Django>=4.1a1,<4.2", |
50 |
| - "-o", |
| 47 | + "--python", |
| 48 | + "3.8", |
| 49 | + "--output-file", |
51 | 50 | "py38-django41.txt",
|
52 | 51 | ],
|
53 |
| - check=True, |
54 |
| - capture_output=True, |
| 52 | + input=b"Django>=4.1a1,<4.2", |
55 | 53 | )
|
56 |
| - subprocess.run( |
| 54 | + run( |
57 | 55 | [
|
58 |
| - "python3.8", |
59 | 56 | *common_args,
|
60 |
| - "-P", |
61 |
| - "Django>=4.2a1,<5.0", |
62 |
| - "-o", |
| 57 | + "--python", |
| 58 | + "3.8", |
| 59 | + "--output-file", |
63 | 60 | "py38-django42.txt",
|
64 | 61 | ],
|
65 |
| - check=True, |
66 |
| - capture_output=True, |
| 62 | + input=b"Django>=4.2a1,<5.0", |
67 | 63 | )
|
68 |
| - subprocess.run( |
| 64 | + run( |
69 | 65 | [
|
70 |
| - "python3.9", |
71 | 66 | *common_args,
|
72 |
| - "-P", |
73 |
| - "Django>=3.2a1,<3.3", |
74 |
| - "-o", |
| 67 | + "--python", |
| 68 | + "3.9", |
| 69 | + "--output-file", |
75 | 70 | "py39-django32.txt",
|
76 | 71 | ],
|
77 |
| - check=True, |
78 |
| - capture_output=True, |
| 72 | + input=b"Django>=3.2a1,<3.3", |
79 | 73 | )
|
80 |
| - subprocess.run( |
| 74 | + run( |
81 | 75 | [
|
82 |
| - "python3.9", |
83 | 76 | *common_args,
|
84 |
| - "-P", |
85 |
| - "Django>=4.0a1,<4.1", |
86 |
| - "-o", |
| 77 | + "--python", |
| 78 | + "3.9", |
| 79 | + "--output-file", |
87 | 80 | "py39-django40.txt",
|
88 | 81 | ],
|
89 |
| - check=True, |
90 |
| - capture_output=True, |
| 82 | + input=b"Django>=4.0a1,<4.1", |
91 | 83 | )
|
92 |
| - subprocess.run( |
| 84 | + run( |
93 | 85 | [
|
94 |
| - "python3.9", |
95 | 86 | *common_args,
|
96 |
| - "-P", |
97 |
| - "Django>=4.1a1,<4.2", |
98 |
| - "-o", |
| 87 | + "--python", |
| 88 | + "3.9", |
| 89 | + "--output-file", |
99 | 90 | "py39-django41.txt",
|
100 | 91 | ],
|
101 |
| - check=True, |
102 |
| - capture_output=True, |
| 92 | + input=b"Django>=4.1a1,<4.2", |
103 | 93 | )
|
104 |
| - subprocess.run( |
| 94 | + run( |
105 | 95 | [
|
106 |
| - "python3.9", |
107 | 96 | *common_args,
|
108 |
| - "-P", |
109 |
| - "Django>=4.2a1,<5.0", |
110 |
| - "-o", |
| 97 | + "--python", |
| 98 | + "3.9", |
| 99 | + "--output-file", |
111 | 100 | "py39-django42.txt",
|
112 | 101 | ],
|
113 |
| - check=True, |
114 |
| - capture_output=True, |
| 102 | + input=b"Django>=4.2a1,<5.0", |
115 | 103 | )
|
116 |
| - subprocess.run( |
| 104 | + run( |
117 | 105 | [
|
118 |
| - "python3.10", |
119 | 106 | *common_args,
|
120 |
| - "-P", |
121 |
| - "Django>=3.2a1,<3.3", |
122 |
| - "-o", |
| 107 | + "--python", |
| 108 | + "3.10", |
| 109 | + "--output-file", |
123 | 110 | "py310-django32.txt",
|
124 | 111 | ],
|
125 |
| - check=True, |
126 |
| - capture_output=True, |
| 112 | + input=b"Django>=3.2a1,<3.3", |
127 | 113 | )
|
128 |
| - subprocess.run( |
| 114 | + run( |
129 | 115 | [
|
130 |
| - "python3.10", |
131 | 116 | *common_args,
|
132 |
| - "-P", |
133 |
| - "Django>=4.0a1,<4.1", |
134 |
| - "-o", |
| 117 | + "--python", |
| 118 | + "3.10", |
| 119 | + "--output-file", |
135 | 120 | "py310-django40.txt",
|
136 | 121 | ],
|
137 |
| - check=True, |
138 |
| - capture_output=True, |
| 122 | + input=b"Django>=4.0a1,<4.1", |
139 | 123 | )
|
140 |
| - subprocess.run( |
| 124 | + run( |
141 | 125 | [
|
142 |
| - "python3.10", |
143 | 126 | *common_args,
|
144 |
| - "-P", |
145 |
| - "Django>=4.1a1,<4.2", |
146 |
| - "-o", |
| 127 | + "--python", |
| 128 | + "3.10", |
| 129 | + "--output-file", |
147 | 130 | "py310-django41.txt",
|
148 | 131 | ],
|
149 |
| - check=True, |
150 |
| - capture_output=True, |
| 132 | + input=b"Django>=4.1a1,<4.2", |
151 | 133 | )
|
152 |
| - subprocess.run( |
| 134 | + run( |
153 | 135 | [
|
154 |
| - "python3.10", |
155 | 136 | *common_args,
|
156 |
| - "-P", |
157 |
| - "Django>=4.2a1,<5.0", |
158 |
| - "-o", |
| 137 | + "--python", |
| 138 | + "3.10", |
| 139 | + "--output-file", |
159 | 140 | "py310-django42.txt",
|
160 | 141 | ],
|
161 |
| - check=True, |
162 |
| - capture_output=True, |
| 142 | + input=b"Django>=4.2a1,<5.0", |
163 | 143 | )
|
164 |
| - subprocess.run( |
| 144 | + run( |
165 | 145 | [
|
166 |
| - "python3.10", |
167 | 146 | *common_args,
|
168 |
| - "-P", |
169 |
| - "Django>=5.0a1,<5.1", |
170 |
| - "-o", |
| 147 | + "--python", |
| 148 | + "3.10", |
| 149 | + "--output-file", |
171 | 150 | "py310-django50.txt",
|
172 | 151 | ],
|
173 |
| - check=True, |
174 |
| - capture_output=True, |
| 152 | + input=b"Django>=5.0a1,<5.1", |
175 | 153 | )
|
176 |
| - subprocess.run( |
| 154 | + run( |
177 | 155 | [
|
178 |
| - "python3.11", |
179 | 156 | *common_args,
|
180 |
| - "-P", |
181 |
| - "Django>=4.1a1,<4.2", |
182 |
| - "-o", |
| 157 | + "--python", |
| 158 | + "3.11", |
| 159 | + "--output-file", |
183 | 160 | "py311-django41.txt",
|
184 | 161 | ],
|
185 |
| - check=True, |
186 |
| - capture_output=True, |
| 162 | + input=b"Django>=4.1a1,<4.2", |
187 | 163 | )
|
188 |
| - subprocess.run( |
| 164 | + run( |
189 | 165 | [
|
190 |
| - "python3.11", |
191 | 166 | *common_args,
|
192 |
| - "-P", |
193 |
| - "Django>=4.2a1,<5.0", |
194 |
| - "-o", |
| 167 | + "--python", |
| 168 | + "3.11", |
| 169 | + "--output-file", |
195 | 170 | "py311-django42.txt",
|
196 | 171 | ],
|
197 |
| - check=True, |
198 |
| - capture_output=True, |
| 172 | + input=b"Django>=4.2a1,<5.0", |
199 | 173 | )
|
200 |
| - subprocess.run( |
| 174 | + run( |
201 | 175 | [
|
202 |
| - "python3.11", |
203 | 176 | *common_args,
|
204 |
| - "-P", |
205 |
| - "Django>=5.0a1,<5.1", |
206 |
| - "-o", |
| 177 | + "--python", |
| 178 | + "3.11", |
| 179 | + "--output-file", |
207 | 180 | "py311-django50.txt",
|
208 | 181 | ],
|
209 |
| - check=True, |
210 |
| - capture_output=True, |
| 182 | + input=b"Django>=5.0a1,<5.1", |
211 | 183 | )
|
212 |
| - subprocess.run( |
| 184 | + run( |
213 | 185 | [
|
214 |
| - "python3.12", |
215 | 186 | *common_args,
|
216 |
| - "-P", |
217 |
| - "Django>=4.2a1,<5.0", |
218 |
| - "-o", |
| 187 | + "--python", |
| 188 | + "3.12", |
| 189 | + "--output-file", |
219 | 190 | "py312-django42.txt",
|
220 | 191 | ],
|
221 |
| - check=True, |
222 |
| - capture_output=True, |
| 192 | + input=b"Django>=4.2a1,<5.0", |
223 | 193 | )
|
224 |
| - subprocess.run( |
| 194 | + run( |
225 | 195 | [
|
226 |
| - "python3.12", |
227 | 196 | *common_args,
|
228 |
| - "-P", |
229 |
| - "Django>=5.0a1,<5.1", |
230 |
| - "-o", |
| 197 | + "--python", |
| 198 | + "3.12", |
| 199 | + "--output-file", |
231 | 200 | "py312-django50.txt",
|
232 | 201 | ],
|
233 |
| - check=True, |
234 |
| - capture_output=True, |
| 202 | + input=b"Django>=5.0a1,<5.1", |
235 | 203 | )
|
0 commit comments