From e400a5f39663919d9a79fe0267c5e2a9fe2bf78e Mon Sep 17 00:00:00 2001 From: NiceAesth Date: Fri, 23 Feb 2024 13:46:17 +0200 Subject: [PATCH] feat: add literal types for v3 and v4 versions can be used as helpers for type unions --- pomice/models/version.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pomice/models/version.py b/pomice/models/version.py index 6ea8bff..c95d465 100644 --- a/pomice/models/version.py +++ b/pomice/models/version.py @@ -1,4 +1,6 @@ -from typing import NamedTuple +from typing import Literal, NamedTuple, Union + +__all__ = ("LavalinkVersion",) class LavalinkVersion(NamedTuple): @@ -25,3 +27,18 @@ class LavalinkVersion(NamedTuple): if self.fix > other.fix: return False return True + + +class LavalinkVersion3Type(LavalinkVersion): + major: Literal[3] + minor: int + fix: int + + +class LavalinkVersion4Type(LavalinkVersion): + major: Literal[4] + minor: int + fix: int + + +LavalinkVersionType = Union[LavalinkVersion3Type, LavalinkVersion4Type, LavalinkVersion]