Skip to content

Commit 103f418

Browse files
committed
install: verify python version requirements
Signed-off-by: Filipe Laíns <lains@archlinux.org>
1 parent a0ac94d commit 103f418

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

install/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import logging
99
import os
1010
import pickle
11+
import platform
1112
import re
1213
import shutil
1314
import sys
@@ -160,13 +161,21 @@ def _check_requirement(requirement_string): # type: (str) -> bool
160161

161162
def _verify_compability(dir, verify_dependencies=False): # type: (str, bool) -> None
162163
try:
164+
import packaging.specifiers
165+
163166
if sys.version_info >= (3, 8):
164167
from importlib import metadata as importlib_metadata
165168
else:
166169
import importlib_metadata
167170

168171
dist = importlib_metadata.Distribution.at(dir)
169172

173+
py_ver = dist.metadata['Requires-Python']
174+
if py_ver:
175+
py_spec = packaging.specifiers.Specifier(py_ver)
176+
if platform.python_version() in py_spec:
177+
raise InstallException('Imcopatible python version, needed: {}'.format(py_ver))
178+
170179
if verify_dependencies:
171180
for req in dist.metadata.get_all('Requires-Dist') or []:
172181
if not _check_requirement(req):

0 commit comments

Comments
 (0)