Improvement of compat/LooseVersion

This commit is contained in:
Miroslav Štampar 2026-06-05 13:46:14 +02:00
parent 8a19966017
commit 899447fbae
3 changed files with 8 additions and 24 deletions

View file

@ -286,34 +286,18 @@ def LooseVersion(version):
True
>>> LooseVersion("1.0.1") > LooseVersion("1.0")
True
>>> LooseVersion("1.0.1-") == LooseVersion("1.0.1")
True
>>> LooseVersion("1.0.11") < LooseVersion("1.0.111")
True
>>> LooseVersion("foobar") > LooseVersion("1.0")
False
>>> LooseVersion("1.0") > LooseVersion("foobar")
False
>>> LooseVersion("3.22-mysql") == LooseVersion("3.22-mysql-ubuntu0.3")
>>> LooseVersion("8.0.22") > LooseVersion("8.0.2")
True
>>> LooseVersion("8.0.22-0ubuntu0.20.04.2")
8.000022
>>> LooseVersion("1.0alpha-beta-gama")
(1, 0)
"""
match = re.search(r"\A(\d[\d.]*)", version or "")
if match:
result = 0
value = match.group(1)
weight = 1.0
for part in value.strip('.').split('.'):
if part.isdigit():
result += int(part) * weight
weight *= 1e-3
return tuple(int(part) for part in match.group(1).strip('.').split('.') if part.isdigit())
else:
result = float("NaN")
return result
return ()
# NOTE: codecs.open re-implementation (deprecated in Python 3.14)

View file

@ -20,7 +20,7 @@ from lib.core.enums import OS
from thirdparty import six
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
VERSION = "1.10.6.47"
VERSION = "1.10.6.48"
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)