Add utils module

This commit is contained in:
2026-02-02 21:36:06 +00:00
parent aa0f5d00fd
commit 7882391009

37
depaudit/utils/version.py Normal file
View File

@@ -0,0 +1,37 @@
from __future__ import annotations
from packaging.version import Version
from typing import Optional
def parse_version(version_str: str) -> Optional[Version]:
try:
return Version(version_str)
except Exception:
return None
def compare_versions(v1: str, v2: str) -> int:
parsed_v1 = parse_version(v1)
parsed_v2 = parse_version(v2)
if parsed_v1 is None or parsed_v2 is None:
return 0
if parsed_v1 < parsed_v2:
return -1
elif parsed_v1 > parsed_v2:
return 1
return 0
def is_version_outdated(current: str, latest: str) -> bool:
return compare_versions(current, latest) < 0
def extract_version_from_specifier(specifier: str) -> Optional[str]:
if not specifier:
return None
operators = ["===", "==", ">=", "<=", "~=", "!=", ">", "<", "^", "~"]
for op in operators:
if specifier.startswith(op):
return specifier[len(op):].strip()
return specifier.strip()