Better usage of Enum if typing.Self is availiable

Using Self will not report an override / incompatible error.
This commit is contained in:
Daniel 2024-07-29 15:19:38 +02:00 committed by Blyron
parent b061f9e951
commit a959577ccf
1 changed files with 10 additions and 5 deletions

View File

@ -1,14 +1,19 @@
from enum import Enum from enum import Enum
import sys
from typing import Callable, Iterable, Iterator, Union, Optional, overload, ClassVar, Any, Literal from typing import Callable, Iterable, Iterator, Union, Optional, overload, ClassVar, Any, Literal
if sys.version_info < (3, 11):
from typing_extensions import Self
else:
from typing import Self
class __CarlaEnum(Enum): class __CarlaEnum(Enum):
""" """
CARLA's Enums have a `values` entry that is not part of the python enum.Enum class. CARLA's Enums have a `values` and `names` attribute that are not part of the python `enum.Enum`
This abstract class adds this method. class. This abstract stub class adds these attributes.
""" """
values : ClassVar[dict[int, "__CarlaEnum"]] values : ClassVar[dict[int, Self]]
names : ClassVar[dict[str, "__CarlaEnum"]] names : ClassVar[dict[str, Self]]
def __init_subclass__(cls): def __init_subclass__(cls):
cls.values : dict[int, cls] cls.values : dict[int, cls]