1 from abc import abstractmethod
2 from typing import Pattern, Tuple, TypeVar
4 _T = TypeVar("_T", bound=Version)
7 def __repr__(self) -> str: ...
8 def __eq__(self, other: object) -> bool: ...
9 def __lt__(self: _T, other: _T | str) -> bool: ...
10 def __le__(self: _T, other: _T | str) -> bool: ...
11 def __gt__(self: _T, other: _T | str) -> bool: ...
12 def __ge__(self: _T, other: _T | str) -> bool: ...
14 def __init__(self, vstring: str | None = ...) -> None: ...
16 def parse(self: _T, vstring: str) -> _T: ...
18 def __str__(self) -> str: ...
20 def _cmp(self: _T, other: _T | str) -> bool: ...
22 class StrictVersion(Version):
23 version_re: Pattern[str]
24 version: tuple[int, int, int]
25 prerelease: tuple[str, int] | None
26 def __init__(self, vstring: str | None = ...) -> None: ...
27 def parse(self: _T, vstring: str) -> _T: ...
28 def __str__(self) -> str: ...
29 def _cmp(self: _T, other: _T | str) -> bool: ...
31 class LooseVersion(Version):
32 component_re: Pattern[str]
34 version: Tuple[str | int, ...]
35 def __init__(self, vstring: str | None = ...) -> None: ...
36 def parse(self: _T, vstring: str) -> _T: ...
37 def __str__(self) -> str: ...
38 def _cmp(self: _T, other: _T | str) -> bool: ...