mirror of
https://github.com/Runnin4ik/dpi-detector.git
synced 2026-10-19 09:23:17 +00:00
27 lines
896 B
Python
27 lines
896 B
Python
"""Утилиты версионирования и сравнения semver."""
|
|
|
|
import re
|
|
|
|
|
|
def is_newer(latest: str, current: str) -> bool:
|
|
"""Semver-сравнение: latest > current. Устойчив к 'v', prerelease-суффиксам и мусору."""
|
|
try:
|
|
def parse(v: str) -> tuple:
|
|
clean = v.lstrip("vV").strip()
|
|
main_ver = re.split(r"[-+]", clean)[0]
|
|
parts = []
|
|
for part in main_ver.split("."):
|
|
m = re.match(r"^\d+", part)
|
|
if m:
|
|
parts.append(int(m.group(0)))
|
|
while len(parts) < 3:
|
|
parts.append(0)
|
|
return tuple(parts)
|
|
|
|
p_lat = parse(latest)
|
|
p_cur = parse(current)
|
|
if not any(p_lat) or not any(p_cur):
|
|
return False
|
|
return p_lat > p_cur
|
|
except Exception:
|
|
return False
|