Skip to content

Commit c752d0a

Browse files
committed
chore(ci): Don't try to upgrade uvloop until pproxy is updated
Unblock failing dependency updates by avoiding uvloop upgrades until pproxy is updated to support new versions of pproxy. See: qwj/python-proxy#202 Signed-off-by: Erik Swanson <[email protected]>
1 parent 542b424 commit c752d0a

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

ci/pip_compile.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,29 @@
55

66
# Run pip-compile to generate requirements.txt
77
subprocess.check_call(["/usr/local/bin/pip-compile", "requirements.in"])
8+
9+
10+
def needs_uvloop_restriction() -> bool:
11+
from pkg_resources import parse_requirements
12+
from packaging.version import parse as parse_version
13+
pproxy_upgraded = False
14+
uvloop_upgraded = False
15+
with open("requirements.txt") as requirements_txt:
16+
for requirement in parse_requirements(requirements_txt):
17+
match requirement.name:
18+
case "uvloop":
19+
uvloop_upgraded = parse_version(requirement.specs[0][1]) \
20+
>= parse_version("0.22")
21+
case "pproxy":
22+
pproxy_upgraded = parse_version(requirement.specs[0][1]) \
23+
> parse_version("2.7.9")
24+
return uvloop_upgraded and not pproxy_upgraded
25+
26+
27+
if needs_uvloop_restriction():
28+
# If pproxy is still 2.7.9 which is known to not work with uvloop >=0.22,
29+
# restrict the version of uvloop and re-generate requirements.txt.
30+
# See https://github.com/qwj/python-proxy/pull/202
31+
with open("requirements.in", "a") as requirements_in:
32+
requirements_in.write("uvloop<0.22\n")
33+
subprocess.check_call(["/usr/local/bin/pip-compile", "requirements.in"])

0 commit comments

Comments
 (0)