Skip to content

Commit d3d1e47

Browse files
CyberDem0navandras
authored andcommitted
Limit py-consul version depending on python version (patroni#3336)
Latest release is incompatible with python < 3.9
1 parent 78d8607 commit d3d1e47

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

.github/workflows/install_deps.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,17 @@ def install_requirements(what):
2727
requirements += ['psycopg[binary]'] if sys.version_info >= (3, 8, 0) and\
2828
(sys.platform != 'darwin' or what == 'etcd3') else ['psycopg2-binary==2.9.9'
2929
if sys.platform == 'darwin' else 'psycopg2-binary']
30+
31+
from pip._vendor.distlib.markers import evaluator, DEFAULT_CONTEXT
32+
from pip._vendor.distlib.util import parse_requirement
33+
3034
for r in read('requirements.txt').split('\n'):
31-
r = r.strip()
32-
if r != '':
33-
extras = {e for e, v in EXTRAS_REQUIRE.items() if v and any(r.startswith(x) for x in v)}
34-
if not extras or what == 'all' or what in extras:
35-
requirements.append(r)
35+
r = parse_requirement(r)
36+
if not r or r.marker and not evaluator.evaluate(r.marker, DEFAULT_CONTEXT):
37+
continue
38+
extras = {e for e, v in EXTRAS_REQUIRE.items() if v and any(r.requirement.startswith(x) for x in v)}
39+
if not extras or what == 'all' or what in extras:
40+
requirements.append(r.requirement)
3641

3742
return subprocess.call([sys.executable, '-m', 'pip', 'install'] + requirements)
3843

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ boto3
33
PyYAML
44
kazoo>=1.3.1
55
python-etcd>=0.4.3,<0.5
6-
py-consul>=1.1.1
6+
py-consul>=1.1.1,<1.5.4; python_version=="3.6"
7+
py-consul>=1.1.1,<1.6.0; python_version>"3.6" and python_version<"3.9"
8+
py-consul>=1.1.1; python_version>="3.9"
79
click>=4.1
810
prettytable>=0.7
911
python-dateutil

0 commit comments

Comments
 (0)