Skip to content
Snippets Groups Projects
Commit f6ba342c authored by Marek Chrastina's avatar Marek Chrastina
Browse files

Fix requires-python

parent c9326b03
No related branches found
No related tags found
No related merge requests found
Pipeline #13061 failed
......@@ -341,40 +341,28 @@ def parse_metadata(metadata, extra):
arr = []
if metadata_version and \
packaging.version.Version(metadata_version) >= packaging.version.Version('2.0'):
py_ver = ", ".join([line.replace('Requires-Python:', '').strip() \
for line in metadata if re.search(r'^Requires-Python:', line)])
py_ver = py_ver.split(',')
print py_ver
if py_ver:
for sss in py_ver:
if sss.strip():
print sss.strip()
print packaging.specifiers.LegacySpecifier(sss.strip())
print is_in_specifiers(PY_VER, py_ver)
arr = []
lines = [line.replace('Requires-Dist:', '').strip() \
for line in metadata if re.search(r'^Requires-Dist:', line)]
for line in lines:
data = pkginfo(str(line), req_extra=extra, repair=True)
if data:
arr.append(pkginfo(str(line), req_extra=extra, repair=True))
arr.append(data)
return arr
def get_pkg_data():
"""
Return package data
"""
packages_data = {}
# pylint: disable=protected-access
for pkg in pip._internal.utils.misc.get_installed_distributions():
pkg_name, pkg_ver, _pkg_extra = pkginfo(str(pkg))
rev = {'installed_version': pkg_ver,
'requires': [pkginfo(str(dep), repair=True) for dep in pkg.requires()]}
packages_data[pkg_name] = rev
packages_data = insert_extras(packages_data)
packages_data = insert_availables(packages_data)
packages_data = insert_news(packages_data)
while True:
new_packages_data = new_packages(packages_data)
if not new_packages_data:
break
new_packages_data = insert_availables(new_packages_data)
new_packages_data = insert_news(new_packages_data)
packages_data = merge_two_dicts(packages_data, new_packages_data)
check_new_extras(packages_data)
return packages_data
def pkginfo(data, req_extra=None, repair=False):
"""
Return parsed pkginfo
......@@ -418,6 +406,31 @@ def pkginfo(data, req_extra=None, repair=False):
return None
return (pkg_name.lower(), pkg_ver, pkg_extra)
def get_pkg_data():
"""
Return package data
"""
packages_data = {}
# pylint: disable=protected-access
for pkg in pip._internal.utils.misc.get_installed_distributions():
pkg_name, pkg_ver, _pkg_extra = pkginfo(str(pkg))
rev = {'installed_version': pkg_ver,
'requires': [pkginfo(str(dep), repair=True) for dep in pkg.requires()]}
packages_data[pkg_name] = rev
packages_data = insert_extras(packages_data)
packages_data = insert_availables(packages_data)
packages_data = insert_news(packages_data)
while True:
new_packages_data = new_packages(packages_data)
if not new_packages_data:
break
new_packages_data = insert_availables(new_packages_data)
new_packages_data = insert_news(new_packages_data)
packages_data = merge_two_dicts(packages_data, new_packages_data)
check_new_extras(packages_data)
return packages_data
def insert_extras(data):
"""
Insert extras
......@@ -474,8 +487,8 @@ def get_available_vers(package):
if requires_python:
requires_python = list(set(requires_python))
if len(packagetype) == 1 and packagetype[0] == 'bdist_wheel' and len(python_version) == 1:
pyt_ver = re.search(r"^py([0-9])", python_version[0])
if pyt_ver is not None and not is_in_specifiers(PY_VER, [">= %s" % pyt_ver.group(1)]):
py_ver = re.search(r"^py([0-9])", python_version[0])
if py_ver is not None and not is_in_specifiers(PY_VER, [">= %s" % py_ver.group(1)]):
continue
if is_version(release) and is_in_specifiers(PY_VER, requires_python):
versions.append(release)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment